为什么要做让五岁小孩学代码这么残忍的事情?
听闻英国开始让五岁的孩子学代码了?为什么要做这么残忍的事情?听说国内也开始蠢蠢欲动了,所以我们为什么要让这么小的孩子学代码?
乔布斯曾说过“人人都应该学习一门计算机语言,因为它将教会你如何思考”。在美国的Hour of Code Week( 全民学编程周)中,总统奥巴马为了号召美国人民编程,还亲自写了一段java代码,并表示向美国学校资助40亿美元用于计算机科学教育。英国也将2014年设立为"Year of Code",规定所有5-16岁的学生都必须学习计算机编程。
由此可以看出,让孩子学习计算思维在美国法定教学大纲之计算机部分中占有重要的地位。
孩子在学习计算机启蒙中能收获到什么?
在早年对乔布斯的访谈中,似乎让大家更清楚的认识到计算机启蒙最大的好处是可以对人的思维方式进行训练,他是一个对思维完整性和逻辑性进行训练的过程,而在这个过程中我们可以培养一种新的看待问题和处理问题的方式。
由此看出,无论以后是否从事计算机行业,都应该具备这种基本素养。
然而我们并不是为了编程而学编程,不是为了敲代码在屏幕上画线。更重要的是学习编程中的思维和逻辑,也就是真正的计算机原理:信息是怎么存储在计算机里面的,算法是怎么让计算机工作的,让计算机运行的程序究竟包含些什么思想,在网络中计算机是如何用密码来保证自身信息安全的,在人与计算机交互时应该考虑到那些界面设计原理,这些最基本的计算机原理才是一切编程的基础,是孩子在现阶段最应该学习的东西。由此来开发孩子的计算机思维,这不仅为下一步学习编程打下了良好的基础,这种思维还将伴随孩子一生,有益于他高效率的解决生活中的各种问题。
计算机思维应该怎样培养?
注重从小学阶段的基础
现在很多家长所处的年龄段,在他们小时候也并没有普及计算机教育,所以现代家长会选择一些教授计算机知识或者编程的机构。但是如果家长盲目的直接选择少儿编程课程或机器人培训班,往往会事倍功半。
在新的英国国家教学大纲里,5-7岁的学生需要通过计算机课程掌握:
理解什么是算法,以及算法如何以程序的形式在电子设备上运行
创建和调试(debug)简单程序
用逻辑推理预测简单程序的执行结果
可见学习编程之前,应该让孩子首先学习的是计算机原理性课程。像建造房子一样,地基是房子的基础核心部分,一个房子的牢固性的关键所在就要看地基,在这里,计算机原理好比“房子的地基”,原理知识打牢,“房子”才能更牢固。
美国也要让小朋友学编程了
在2016年的1月30号,美国总统奥巴马对公众发布了“全民计算机科学行动计划(Computer Science for All)”项目,鼓励美国中小学生尽早地学习计算机科学的知识,为未来的大学学习和职业成功做准备。
在奥巴马的这个项目里,“计算机科学”其实就等同于“计算机编程”,由于很多学生家长并不了解计算机编程, 老师写了这篇科普文,希望能够解答广大学生家长心中的困惑。
那么中小学生学习计算机编程到底有什么好处呢?
1、出国留学,计算机编程能力是打动面试官的最佳捷径
据教育部数据显示,近几年我国出国留学人数逐年攀升,2015年度出国留学人员总数达52.37万人。申请人数的剧增,导致国外院校的录取门槛逐渐提高。
以美国为例,美国知名的私立高中和大学本科每年的招生名额几乎变化不大,对于国际生和各个国家的配额都有限制,有的学校每年录取的中国学生数量严格稳定在五个或者三个这样的个位数。
对于中国学生而言,大家的标准化考试成绩(SSAT/SAT、TOEFL)都是很优秀的,课外活动背景也差不多,让招生官在成千上万个类似的申请人当中录取3-5个学生,申请竞争的白热化程度可想而知。
|赴美校园面试场景|
此时,学生的特色就成了胜出的关键,在众多的特色当中,提供编程能力证明正成为打动面试官的最佳捷径。如:南京外国语学校的谢春阳因编程特长被耶鲁大学、哥伦比亚大学同时录取,武汉外校英中国际班学生沈凡具有编程特长被库珀联盟学院录取。
2、计算机编程是美国高中课程的组成部分,学习编程可以减轻留学后的学业负担
以美国TOP140寄宿高中为例,大部分寄宿高中的数学系都会开设不同操作系统下的编程课程,如iOS、Windows、Android以及游戏编程,还有不同的编程语言,如Java、C语言、Python等。
|美国某寄宿高中上课场景|
由于中、美教育制度的巨大差异,初到美国留学的中国学生都需要一段时间才能适应,而学生如果能够在赴美留学之前先学习一部分课程,比如计算机编程课程就可以减轻留学后的学业负担,为学生快速适应美国的学习节约时间。
3、对于很多职业来说,计算机编程成为必不可少的一个技能
大家还记得引力波吗?在今年的2月12号,美国科学家宣布,他们去年9月首次探测到引力波。这一发现印证了物理学大师爱因斯坦100年前的预言。宣布这一发现的,是激光干涉引力波天文台(LIGO)的负责人美国卡尔顿文理学院(Carleton College)的Nelson Christensen教授。
|美国卡尔顿文理学院召开发现引力波的新闻发布会|
这个机构诞生于上世纪90年代,进行引力波观测已经有近30年。那么观测到的引力波数据的量应该很大,科学家如何对这些数据进行分析呢?答案是前面提到的Python编程语言。
据LIGO团队成员、来自中国的留学生罗家伦介绍,引力波的探测实属不易,仪器会探测到成千上万的数据,“如果是人工一个个去看,需要很多年。”罗家伦说,其所在的小组需要运行用Python语言编写的程序来分析在探测到的引力波候选信号中,判定哪些是真正的引力波。经统计分析,他与团队寻找到统计显著的数据,最终找到信度高达99.99995%的《物理学评论通讯》中所介绍的引力波。
其实对于很多职业来说,编程成为一个必不可少的技能,例如生物学、金融学等等,他们需要编程技能,以让他们能够进行日常的研究和工作。
4、学习计算机编程可以训练学生的逻辑思维能力、创造力
我们都知道数学主要是开发人的逻辑思维能力,计算机编程可以说是数学的一个应用方向,那计算机编程怎么对人的逻辑思维进行训练呢?举个例子,大家都玩过俄罗斯方块这款小游戏,假如现在让你写一个俄罗斯方块游戏APP,你会怎么入手?
|俄罗斯方块游戏界面|
从编程思维的角度来看,我们需要将问题进行分解,将一个大问题拆解为一个个小问题,然后逐个完成。对于上面的游戏,我们大致可以将其分解为三个小问题:
a.游戏界面(速度和积分显示怎么处理?主游戏界面怎样显示?)
b.俄罗斯方块(一共有多少种方块?每种方块用数学坐标应该怎样表示?)
c.游戏逻辑(方块的下落,左右移动,上下翻转,掉落消除应该怎么处理?对应的数学坐标应该怎样计算)
编写这个游戏的过程充分应用了分类讨论,函数思维,问题抽象等多种思维方法。写完这个游戏之后你会发现原来一个看起来很简单的游戏竟然隐藏着如此多的细节,背后有那么多的复杂的逻辑需要处理,每一个软件和游戏其实都是逻辑思维的艺术品。
在这个过程中你会不断发现自己思维存在的缺陷和问题,并着手去进行完善。将这种编程逻辑应用到日常生活中,应用到读书写作中,你会有新的收获。
比如现在要写一篇议论文,但感到无从下手,我们就可以按照编程的方式将问题分解——是想不到论点,还是没有支持的论据?论点不足应该怎么办,论据不足又该怎么办?你手头有哪些工具可以利用?你期待写成什么样子?明确问题之后再将它们逐个击破,问题也就得到了解决。
总结
通过上面的介绍,相信各位家长朋友对于计算机编程、对于让孩子学习计算机编程所获得的益处有了比较全面的了解。我们每天上淘宝、天猫、京东购物,用滴滴打车,用支付宝、微信付款、理财,用百度地图导航,用12306手机APP购火车票,用携程订购酒店,用酷米客查公交车……
生活当中这些我们早已习以为常的智能手机、软件APP,以及作为纽带的互联网,无不依赖我们人类编写的程序驱动。另一方面,由于我们国家教育方面的原因,学生一般需要到大学一年级才开始学习计算机编程课程,但是在学生上大学之前的这十几年时间,他们与生俱来的天性——创造力却无法被激发出来(他们大多只会使用这些数字设备)而白白浪费了……
当今世界,全球一体化早已成为社会趋势。地区与地区之间,国家与国家之间,经济与经济体之间的交流和接触日益频繁,障碍逐个被扫除,资源和信息的流动变得前所未有的畅通。随着全球化步伐的不断迈进,国门不断打开,我们国家的年轻人已经和世界各国的年轻人走到了同一个舞台上,需要和全球同龄人去竞争。
在21世纪,计算机编程已成为除英语之外必须掌握的第二门外语,为了不白白浪费孩子创造力,为了让孩子能够在未来的全球化竞争中胜出,让孩子学习编程吧,越早越好……