儿童编程语言的进化史
奥巴马提出“计算机从娃娃抓起”的倡议和人们对科学(Science)、技术(Technology)、工程(Engineering)、数学(Mathematics)教育日渐增长的关注都说明了一个问题,那就是,为了教导孩子们学习计算机知识,我们需要建立一套标准,还要找到好的教学方案。
从2014年12月,美国前总统奥巴马在“编程一小时”活动中写下自己人生第一行编程代码开始,青少年编程教育逐步成为公众关注的热点。2017年7月,国务院发布《新一代人工智能发展规划》,其中特别提到的在中小学阶段设置人工智能相关课程,逐步推广编程教育,给青少年编程教育的重要性一锤定音。
Logo 语言的更新换代
在过去50 年里,设计师们以 Seymour Papert 创造的Logo 语言为基础,造出了一大堆编程工具,它们虽然在界面上稍有不同,但其目的都是为了引导孩子们对编程进行思考。同时,由于 MIT 设计的 Scratch 的流行,基于模块的编程方法便成为了教学的标准。在 CSTA 为中小学生制定的计算机课程教学标准中,也明确地将“在基于模块的可视化编程语言上进行构建和测试的能力”用于评估小学 5 年级学生的编程水平。
趋向幼龄化
引入机器人技术
看着自己写的代码变成现实是件很神奇的事。在本世纪初,乐高和 MIT 合作了一个项目,致力于将基于模块的编程带入到现实世界中。学生可以在电脑上写程序,然后把代码下载到他们搭建的机器人上。早期的 RIS (机器人发明系统)和 Scratch 十分相似。
2013 年推出的乐高机器人虽然变得更加复杂,但工作原理仍然不变。现在学生们能够给组件增加输入参数,用来指定距离、时间、输出和其它的一些特性。
MartinExner 在 Logo 和更晚一些的 Scratch 的启发之下,发明了这种简单的信息图,它被用来描述可视化的编程工具。
事实上,Logo 语言的大部分衍生产品都是为了特定的场景而被设计出来的:用于游戏、创建 3D 场景、画图、对机器人进行编程甚至是用来操纵一个虚拟的鱼缸。
但即使这些东西能够吸引许多不同的孩子,很多小孩在之后学着编写语句时仍会觉得很难。
超越 Logo
在现实世界里,计算机程序总是需要考虑一大堆的输入,以及一个逻辑条件是否成立。举一个例子,我们要决定今天需不需要早起。如果今天是星期六或者星期天,那么我们就会出去外面玩。如果今天是星期一,我们就得去收拾运动服。如果是星期四,就得倒垃圾。另外除了周末之后的日子,都要上学。下面这幅图展示了如何使用 Scratch 对这个问题进行解答。