不久前,一篇题为《哪一瞬间你后悔让孩子学了编程?》的文章在网络平台引发热议。文章中吐槽的“985毕业教得了小学生各类课业,却辅导不了编程”,一方面让人哭笑不得,另一方面也折射出一个困境:编程教育越来越多出现在中小学阶段,经历应试教育长大的家长们,难以应对新时代孩子们创新发展的需求。
不久前刚结束的2019 年高考,编程相关试题出现在高考数学全国卷、北京卷、江苏卷中,而这已经不是编程第一次被纳入高考考察范围:2018年的高考数学江苏卷首次出现了编程题,考生们需要通过阅读伪代码理解程序逻辑,并根据算法得出结果;同年的天津卷也出现了编程题。
政策也为这场“编程热”加了一把火:2017年7月,国务院印发的《新一代人工智能发展规划》中,明确“鼓励社会力量参与寓教于乐的编程教学软件、游戏的开发和推广。”;2018年1月,教育部“新课标”改革,正式将人工智能、物联网、大数据处理等划入新课标;山东、浙江、重庆等地教委也相继下发推动编程课普及的通知。
学习编程不止是为满足应试需求。牛津大学在2013年发布的一份报告中预测,未来20年里,有将近一半的工作可能被机器所取代,编程不仅有助于激发孩子创造性、锻炼逻辑思维、提高解决问题的能力,也将成为未来人工智能时代人与机器沟通的“通用语言”。
“编程从娃娃抓起”不再只是一句口号,这个暑期,编程课程在跆拳道、轮滑、钢琴等传统课外项目中抢占一席之地,站在了课外活动鄙视链的顶端。青少年编程,已经不止是噱头。
编程——提供一种解决问题的新思维
尽管很多家长和孩子已经在日常生活中频频听到“编程”一词,但很多人并不懂编程到底是什么。
编程语言可以理解为人类与机器对话的一种语言,是按照一定的语法规则、由表达各种意义的运算对象和运算方法构成的计算机高级语言。
青少年编程教育,通常是通过设计简单的游戏、完成特定的目标任务,达到学习编程语言的目的。在这个过程中,结合诸如设计思维、基于问题的学习、基于项目的学习(Project-Based Learning)、“做中学”等新教育理念及模式,以培养计算思维。
卡内基-梅隆大学计算机科学家周以真曾这样解释计算思维:就是把一个看来困难的问题重新阐述成一个我们知道怎样解的问题,如通过约简、嵌入、转化和仿真的方法。计算思维是一种递归思维,也是并行处理,同时还关注分离,采用了抽象和分解来迎战浩大复杂的任务或者设计巨大复杂的系统。
简单来说,编程要做的一项重要工作就是把大问题切割成小问题,青少年在完成设计任务的过程中,要去思考如何把代码合理安排在全局,这一过程中可以锻炼逻辑思维能力。
来自上海的 12 岁中学生小妍已经通过学习编程设计出了圣诞滑雪大冒险、游园一梦、小王子等18个作品。“编程提高了我的逻辑思维能力,整个人有了更多的奇思妙想,数学也比以前好多了。”小妍在接受媒体采访时表示,通过对编程作品制作过程的了解,她在做一些推导几何图形的题时更容易分析原理。另外,写程序过程中找bug、修复、调试也很锻炼人的耐心和纠错能力。
有教育从业者向记者介绍,就像学习一门外语可以了解一种新文化,学习编程语言也可以让青少年多一种看待问题、解决问题的能力。此外,复杂的程序需要多人协作,可以锻炼孩子的团队协作能力;解决具体问题的程序还将引导青少年向外拓展知识边界,学习编程之外的知识,比如如果要做一款逼真的赛车游戏,就需要学习物理学原理,以使赛车运动轨迹更加真实。