“别让孩子输在编程的起跑线上”
这是少年商学院(ID:youthmba)的第1213次分享。作者系少年商学院国际教育公开课嘉宾之一、清华大学工程学硕士、“编玩边学”教研总监刘畅。
所谓“不输在起跑线上”,并不是要逼着孩子3岁就学编程,而是家长心态要转变:不要一看到孩子上网或玩游戏就认定是“不务正业”。
今年母亲节的时候,同学们都在苦恼给妈妈送什么礼物,我有个学生很神秘地说,他要送妈妈一件“很特别的礼物”。后来,他妈妈收到礼物时,很是感动,眼泪就要掉下来了。
▋ 为儿子编程做出的贺卡热泪盈眶
这是一件什么礼物呢。一张贺卡。贺卡本身听起来没什么特别,但却是孩子通过编程制作出来的。非常有创意。他是怎么做的呢?——在一个界面上,写Happy Mum Day,点击这句话的每个字母,都能对应弹出来另一个字母,比如点击H,就会出来I,点击A,就会出来L……最后,这句话变成了I love you and wish you happy everyday!把他妈妈感动坏了。
(孩子编出来的电子贺卡)
这个创造惊喜的过程,其实有很多步骤,我列了一下: 第一步,需要思考。思考一下,这个贺卡的内容是什么样子的,贺卡需要音乐吗?需要图片吗?是一个故事还是简简单单的一句什么话?……这个思考的过程,其实是训练他们提问,让他们非常明确地思考自己需要解决的问题是什么。 第二步,当他想好需要做什么内容的时候,他需要去收集一些素材,有许多同学就会在互联网上搜索相应的背景,相应的音乐,包括电子课堂上的一些人物吧,这其实锻炼的是资料检索的能力; 第三步,当所有资料收集完成之后,他们就开始编写程序,把收集到的各种素材整合在一起,在整合的过程中需要考虑各种素材的逻辑关系,这个过程可以锻炼孩子的逻辑思维能力; 第四步,有的孩子在创造的时候会不断迭代改进,这个时候,他需要和老师、同伴交流、反馈,其实是锻炼了沟通能力; 第五步,当作品完成之后,他要送给自己的妈妈,或者是通过妈妈分享到朋友圈去,和其他的朋友在朋友圈里面进行交流,这锻炼他社交的能力。
哈佛大学曾经总结21世纪人才的基本素养,包括批判性思维、创造性思维、沟通力、全球化视野、发现问题的能力……还有利用互联网自学的能力。 充分利用互联网,自主获取、筛选学习资源的能力,对孩子们的要求其实更高,学习编程恰好打开了一个口。做一个编程作业,其实就把这些能力综合训练了一遍。 ▋玩编程是治“网虫”的一剂良药 从2012年开始教孩子编程,我接触到的孩子没有哪一个是不爱玩电子产品的,其中有一些甚至可以说是“网虫”。家长一般会怎么做呢?严格控制孩子接触电脑的时间啦,给电脑设置密码啦,或者高级一点的,让电脑过多长时间关一次机啦……但最后的结果,都是控制不住(相关文章《从九岁就爱玩游戏,我为什么没变坏?》)。 其实退一步来讲,现在电子产品这么丰富,强迫孩子不去玩游戏根本就不可能,我们也得想一下,为什么他们喜欢玩游戏?好奇心嘛,孩子们都喜欢新鲜事物,玩游戏能满足他们的探索欲和成就感。而编程,能够带孩子去探索游戏里面的机制,让游戏不那么神秘。 美国总统奥巴马非常鼓励孩子学编程,他曾经说“玩游戏,不如做游戏”,我觉得特别有道理。如果你让孩子用编程做一个游戏,那他的重点可不再是玩游戏了,他只会想着怎么让更多同学来玩他做的游戏。这个时候,只要家长适当引导,孩子能对学习产生更多兴趣。 我的一个学生Jason,是一个资深游戏迷。我们就教他用编程写游戏,他就上瘾了,天天琢磨怎么做一个好玩的游戏,后来他做的那个游戏上架了,有2000多个人玩,他就特别有成就感。后来,他又做了一件事情,让我和他的父母都特别惊喜——他在网上录了个教学视频,告诉大家应该怎么编写一个好玩的游戏,影响了很多同学,其中有一个照着做,一共修改了8次才推出来,过程中,每一次修改他都要拉着身边的同学聊天,一下子就变得主动起来了,表达力也很快得到了提升。
(Jason同学创造的探索游戏,里面精心设计了十几道关卡)
所以说,通过编程可以让孩子从一个被动的游戏玩家,从很不喜欢学习、不懂学习变成主动的创造者,创造自己的游戏,如果家长引导得好,甚至是可以成为一个主动的学习者,能够在学习的其他方面得到很好的锻炼。
▋梦想推翻哥德巴赫猜想的小程序员 是的,编程能够很好地帮助到孩子其他学科的学习。还是拿我的一个学生举例,小张,他从很久以前开始上奥数班,有一次他和我分享了他一个有趣的发现——一个小程序员编了一个程序,能破解哥德巴赫猜想,就是在程序里,任意输入一个大于2的偶数,计算机就能自动把它分解成两个质数之和。
小张就说他特别受启发,他也想做一个程序,不用靠自己的小脑袋一个偶数、一个偶数去验证,而是用程序找到一个“不能分解成两个质数之和的”偶数,那他不就把哥德巴赫猜想给推翻了吗?那他不就是数学界的大牛人了吗?然后他那天晚上就一直在琢磨,做了个程序一直运行,那结果肯定是没找到啦,不过他对这个猜想有了更深层次的理解,我想他一辈子也不会忘记这个猜想。
还有一个姓黄的同学,他特别喜欢琢磨那些高科技硬件,比如谷歌无人驾驶汽车,其实就是编程和硬件的结合,他学编程的目的,就是要自己做一辆无人驾驶汽车。要做无人驾驶汽车是要用到非常多的传感器的,这里面需要非常多物理知识,他现在才读初二,知识储备远远不够,他怎么做呢?
(黄同学画的图纸和制作的底盘)
问老师,上网搜资料自学,自己上网买小车底盘……买了底盘他又发现,这个底盘不完全符合他的要求,要进行一些适应性的修改,他就自己画图纸,然后再接着动手制作这个底盘……然后裁减,底盘放电池……最后他真的写了个程序,实现了这辆小车的自动运行——小车遇到障碍物会自动停下来,或者转弯,避开这个障碍物,非常好。 他的主动性让我很有感触。很多家长会问,学编程好像没什么实际用途呀,这就是最大的好处了——它让孩子主动去发现问题并且解决问题。 ▋推荐一些编程工具给各年龄段的孩子 乔布斯有一句话我很喜欢,是Everybody in this country should learn to program a computer,because it teaches you how to think,它能澄清一些现在编程学习一个最常见的误区,很多人以为学编程就是学写代码,高深又不实用,其实,编程是让孩子学会思考的一个非常有用的方式,男同学、女同学都可以学。 现在很多欧美中小学已经把编程课列为必修课了,国内相信也会很快跟上,到时候,编程,不就和阅读、英文这些学科一样了吗?都是孩子必备的一种素养。 少年商学院微信分享过系列编程的文章、资源和公开课。我也给孩子们推荐些三个工具吧,可能不少同学和家长朋友已经熟悉了。首先是Scratch Jr,MIT(麻省理工)出的,主要用于制作游戏、动画、音乐以及一些艺术作品,小学以前的孩子用比较好,非常容易,方便上手。 稍微大一点的孩子,我建议使用Scratch,也是麻省理工出品,但更适合中小学生。如果孩子学得比较快,想挑战更高难度的话,APP Inventor也不错,这是一款图形化的手机编程工具,可以开发手机上的一些应用程序。 我看到今年8月,少年商学院引入了美国Design Future School(设计未来学校)创新实践项目,让小学生设计30年后的学校,然后用编程软件,来操控自己所“建造”的学校。这样的实践项目跳出编程本身,通过户外采访、头脑风暴,发现问题、解决问题;而课程的研发者之一还是MIT认证的全球40位移动编程教育专家,非常棒(即将报名截止,长按下方图片识别其中的二维码或点击本文左下“阅读原文”,进行最后的报名)。
另外给大家再介绍一个非常好的网站Code.org。这个网站大家可以关注下,上面有非常多的编程的教程,给不同年龄段的孩子,有阶梯性,而且各类语言都有。
最后给家长两个小建议。一是,学习编程入门比较简单,开学起来会非常有兴趣,但是学到一定程度之后会遇到一个瓶颈,那个时候,我们需要给孩子寻找一个比较好的导师;二是,一定要多鼓励孩子。还是那句话,重要的不是会通过编程编个小狗或是小猫,重要的是一种兴趣,一种锻炼逻辑思维的习惯的养成。
所以当我们说“别让孩子输在编程的起步线上”的时候,并不是要逼着孩子3岁就学编程,而是家长心态要转变:不要一看到孩子上网或玩游戏就认定是“不务正业”。家长的眼界决定孩子成长的边界。