去年有一款名叫CoderMindz的棋类游戏在硅谷名声大噪,它的前身CoderBunnyz发布不到一年时间,销量超过1000余套,销售额以超35000美元,因此大家对新款CoderMindz充满期待。
而这款游戏的开发者,竟然是来自硅谷的10岁女童萨麦拉·梅塔(Samaira Mehta)。靠着自己出色的“编程”技术,被全球媒体誉为“硅谷未来之星”,连扎克伯格都赞她“年少有为”。
早在2015年,美国前总统奥巴马在接受媒体采访的时候就表示:“我们需要让孩子们参与数学和科学,这不仅仅是一小部分孩子,而应该是所有人。所有人都应更早地学习如何编程。”
在美国,STEAM教育理念受到普遍的重视和运用。孩子从比较小的年龄,就开始接受科学、技术、数学、艺术等方面的启蒙和熏陶。
在我国,特别是在一些经济比较发达的省份和地区,以中小学信息技术课程为基础的少儿编程教育也起步和发展较早。2014年,浙江省教育改革方案中,将信息技术科目(包含编程)纳入高考。
2018年,国务院发布《新一代人工智能发展规划》,提出完善人工智能教育体系,在中小学阶段设置人工智能相关课程,逐步推广编程教育。同年,全国计算机等级考试开始加入Python语言的内容。随后,一些省份在教育改革中加大了对编程的重视力度,山东省在小学六年级的信息技术教材中加入Python的内容,广东省也计划将信息技术纳入高考内容。
除了学校教育,校外的少儿编程培训也如雨后春笋般地迅速发展起来,很多培训机构都开设了少儿编程的相关课程。
1 为什么要学编程?
为什么人们对学习计算机编程的热情激增,尤其是对于孩子学习编程如此重视呢?
编程对孩子们想象力、创造力的启迪以及里面所呈现的对逻辑思维的探索精神,是其他任何阅读书籍都无法媲美的。
学习编程至少对孩子有以下几个方面的好处。
1.开发思维,增强逻辑思维能力
当学习编程的时候,孩子会成为一个很好的思考者。例如,孩子将学会如何把复杂的问题分解成简单的部分(也就是我们常说的分而治之的原理),学会如何找到问题并进行调试和解决,学会如何在一段时间内不断地迭代、完善和改进解决方案。而所有这些思维策略,一言以蔽之,就是“计算思维”的概念。在不知不觉之中,孩子的计算思维得到了开发,逻辑思维能力得到了增强。
学会了计算思维和逻辑思维,孩子们将会发现它不仅适用于计算机方面,而且也适用于所有的解决问题和设计活动中,甚至是生活的方方面面,例如,统筹烧开水沏茶的时间、确定按照菜谱炒菜的顺序、在超市中走最短的路径找到所有要买的东西等等。
2.培养孩子的专注力和细心程度
兴趣是最好的老师。一旦培养了对编程的兴趣,孩子就愿意投入时间、精力和热情来做这件事。此外,前面提到的查找问题并进行调试,几乎是编程过程中必不可少的步骤。有的时候,非常细微的错误,会导致程序无法运行。而无论是调试错误还是学会避免错误,都能够培养孩子的细致程度和耐性。
3.增加孩子的抽象思考能力
前面提到,编程和写作一样,是一种表达方式,更进一步来说,它们都是一种比较抽象的表达方式。具体来说,孩子需要把抽象的思路和想法,用有形的、具象化或符号化的东西表达出来。从这一点来说,编程是写作的一种延伸,它要求你“书写”出创新的东西,而这是以前所没有的东西,例如故事、游戏、动画、模拟等等。如果没有抽象思考的能力,不能充分发挥自己的想象力的话,是很难做到编程创新的。
4.增强孩子思考能力和动手解决问题的能力
编程的过程中,总是会面临一道道的关卡和挑战,这就要求孩子开动脑筋,积极思考,并且学会利用已有的知识、手边的资源、伙伴和老师或家长的帮助来解决问题。一旦养成这种思考和解决问题的习惯,给孩子带来的成长和收获是巨大的——当他们面对现实生活中形形色色的问题的时候,也将会积极思考,不断尝试和破解难题。
5.培养认同感和成就感
最后,学会编程还将给孩子带来巨大的认同感和成就感。在现代社会中,数字科学和信息技术已经相当普及,而且其发展日新月异,这些都极大地影响和改变着我们的社会和生活。一旦掌握了用数字技术表达自己和解决问题的能力,孩子就会用全新的视角来看待自己,并且会因为拥有这一技能且对社会做出贡献而获得极大的成就感。
编程竟然对孩子有这么多的好处,那么你还等什么呢?还不快抓住机会,让你的孩子来学习和掌握这种技能,以这种方式来进行流畅的表达!
2 孩子学编程为什么要学Scratch?
计算机编程语言的发展大概有几十年的历史。这期间,编程语言经历了从低级语言向高级语言发展的过程。我们这里所说的低级语言和高级语言,并不是指语言的功能和水平等,而且是指编程语言与人类自身语言的接近程度上的区别。低级的语言更加接近于机器语言,计算机理解起来比较容易,人类理解起来比较困难,这是比较底层的语言。而高级语言的语法和表达方式,更加接近于人类自身的语言,需要通过一种叫作编译器和解释器的东西(你可把编译器和解释器想象成翻译人员)将其转换为计算机比较容易理解的机器语言,然后机器才能执行。
各种编程语言的分类和层级如下图所示。
你一定已经听说过一些编程语言的名字,比如C、C++、Java、Python等等。我们现在所接触的这些现代编程语言,一般来说都是高级编程语言,其语法和人类自然语言比较接近,需要经过编译器或解释器才能转换为机器语言。还有一些更加易于学习的可视化语言,比如Scratch就是一种可视化语言,它们是在高级语言的基础上,经过包装或定制后,才成为更加容易学习和理解的编程语言的。
你可能会问,为什么不直接学习C、C++、Python这样的高级语言,而要学习Scratch这样的可视化语言呢?这主要是因为Scratch对于青少年来说更加容易理解和上手。Scratch包含了讲故事、做动画、设计游戏等功能元素,而这些元素都特别能够激发孩子的学习兴趣。等到他们通过Scratch逐渐熟悉和掌握了编程语言的一些基本原理,再去进一步学习Python或C++等高级语言,就会容易很多。
因此,学习编程需要一个从易到难的过程,而Scratch真的是一种更不错的入门语言,对于孩子来说更是最佳的选择。
2018年8月1日,Scratch 3.0测试版发布,这是自2013年Scratch 2.0问世以来的又一次升级。Scratch 3.0将能够在平板电脑和手机上使用,并且加入了更丰富的图像编辑、声音编辑、谷歌翻译等功能。另外,Scratch 3.0还可以与LEGO MINDSTORMS EV3和LEGO EDUCATION WeDo 2.0兼容。2019年1月3日,Scratch 3.0正式发布。
大部分教授编程的基础教程都是通关式的,孩子们创建一个程序,移动一个虚拟角色,让它做一些事情并达成目标。孩子们在编写程序解决问题的过程中,就学习到了编码的技能和计算机科学的概念。
但Scratch不同。作为Scratch的缔造者,米切尔·雷斯尼克及其团队认为Scratch不仅是一种编程语言,更是一个在线学习社区。Scratch专注项目,而不是问题解决,它鼓励孩子们创造自己的互动故事、游戏和动画,从创意开始,把这些想法实现为项目,然后再和其他人分享。
考虑到Scratch线上社区里不同受众的特点,围绕Scratch衍生的内容也日渐增多。ScratchEd是为教育者专门开发的独立线上资源社区,支持故事分享、互动教育资源、线上讨论等功能。目前,ScratchEd上的教育者资源覆盖幼儿园到大学全学段,内容类型包括教案、课程、评测、教材等,涉及的学科领域有数学、音乐、社会科学、视觉艺术等。
Scratch主要面向8~16岁儿童,而ScratchJr则主要针对5~7岁低龄儿童。相比Scratch,ScratchJr以平板电脑为载体,编程模块的体积更大、素材库中的图片更多、拼插方式也更直接。ScratchJr的界面示意图如下。
除了线上学习社区,Scratch还在世界各地举办名为“Scratch Day”的线下交流活动。2017年,全球举办了超过1000场Scratch Day活动。在各种社交媒体的Scratch社区和论坛,人们用各种语言记录着Scratch Day的编程、分享和游戏体验。
未来的世界充满了新鲜的事物。今天绝大多数的孩子,未来所从事的工作都离不开创造力和创造性。不管是什么年龄段的孩子,学习Scratch不仅能够培养他们的计算思维和创造能力,还能让他们和同龄人、老师和家长分享和沟通。Scratch是孩子们走向未来的一个“创造力游乐场”。
3 学习编程要学哪些书?
- END -