最近闲来和一位退休的小学老师聊天。他教数学,兼任信息学老师,便聊到小学阶段的计算机编程启蒙。聊的很有兴趣,也感慨科技的发展,现整理如下。

1 第一代儿童编程启蒙

改革开放之后,邓爷爷提出,计算机要从娃娃抓起。小学最早一批计算机教学,使用的是中华学习机,主要教学内容是计算机操作、打字以及简单的编程(LOGO、BASIC)。在教学实践中,考虑到学生语文、数学,尤其是英语(笔者是初一才开英语)基础都不好,基本面向的是少数5年级以上学有余力的学生。由于缺少图形化的编程教学工具,教育工作者的大部分精力用于教授基础的操作和语法。

展开来说,第一代编程教学使用的工具基于当时的工业水平,进行了可贵但非常有限的优化。LOGO、FC系列(如金字塔、后期的小霸王)图形、浮点Basic,以及少数的Z-80 Basic, 都是需要先打字,并会拼写诸如 if 这样的英文单词才能操作。编程以字符界面为代表,结果以简单图形、蜂鸣器声音、大量字符等形式呈现。部分环境人机界面也不是很好,有些只相当于DOS 3.0 之前的 Line Edit, 无法自由的跨行移动光标。

在1980-1990年代,电子线路、机械航模、计算机三者在当时的少年宫是分立的,基本没有太多交集。电子线路兴趣班主要制作鸟叫蜂鸣电路、晶体管收音机等等,面向的是初中高中生;机械航模,在省会城市比较常见,以机械小车(发条、电池)、船、橡筋动力飞机为主。回到计算机教学,对于这种实操性很强的学科,教学效果却很难提高——原因是80-90年代,能够购置学习机的家庭很少(计算机就更少了),依靠少量的课时、较为单调的UI和控制能力,很难把编程教学推广到大多数孩子。

2 翻天覆地的变化

随着科技进步与我们整体工业水平的提高,当前的小学编程教学已经从属于信息学教学,电子、机械、计算机三者的领域渗透,催生了如机器人、智能积木等等子方向。

抓住计算机编程的灵魂

计算机编程的灵魂是算法思想(这句话老爷子说的很好)。如何让小学生不用敲击键盘输入语句,就能编程?显然是图形化编程。最成功的范例是Scratch,MIT(没错,是MIT)的大作。Scratch使用积木化的流程模块,构造了通俗易懂、生动有趣的编程环境。更可贵的是,简单表象背后,其实际能力却一点也不简单。

  • 图灵完备:过程支持递归的哦!可以画出分形图案。
  • 并发:“逻辑上完全并发,程序可以任意安排多个起点,由不同的感知事件驱动。要在一般的语言上实现并发,需要较高的经验和试错——利用Scratch可以轻易构造一个打鱼游戏。
  • 事件驱动:这个字面意义已经够了。
  • 多媒体:播放叠加的素材;动画控制、图层与角色形象切换。
  • 扩展性:外部传感器、智能积木、绘图……

使用Scratch,可以通过简单的积木,实现递归算法,完成中华学习机LOGO语言进阶时的题目。

更具体有推广意义的是,结合RaspberryPI ,可以在有限的资源和场地下,实现成本控制,让经费有限的学校也能组织起有效的计算机教学。这使得计算机编程启蒙成为全民运动,而不是精英教育。仅从这一点,就可以说这是时代的进步,社会的进步。

融合机械与电子的奇迹

在步入21世纪的第二个十年后,智能积木开始全面取代单一的编程启蒙。这主要受惠于科技的进步:

  • 片上系统SoC技术的成熟:在功率、体积可控情况下的计算、控制能力跃升,允许在手掌大小的控制器中集成完整的工控系统。不管是乐高、Abilix以及其他机器人教学启蒙套件,如果按照30年前的标准,完成上述控制需要半个机柜、多个继电器组的支持。现在,传感、计算、控制、反馈高度集成并闭环在一起。
  • 深度工业化:工程塑料精密加工技术、低成本传感器与步进电机、系统工程学设计。实际上,积木的标准化设计、灵活重构,和当代真实工业领域的标准化是一致的——硬盘盒生产商不会自己生产电源模块,而是从标准化的列表中根据需求选取一种——基于相同的理念,人类的工业资源在全球科学的配置。


学习编程不再独立。教学启发学生自觉寻找解决问题的途径,依靠基本的工具设计解决方案,实现并观察结果,思考并迭代优化,这是在训练科学思维本身。

3 进步:由单人技能培养到团体方法论塑造

这30多年间,小学计算机启蒙的最大变化,就是大大降低了学生的技能学习成本,把面向个人的编程启蒙,变成面向团队的方法论启蒙。

笔者属于第一代启蒙教育的产物,在没有学英语的情况下,IF、FOR一个学期也分不清楚。学LOGO,不懂为什么前进叫“FD”。80年代末,小学阶段的计算机编程启蒙主要集中在编程本身,竞赛的方法是单打独斗。事实上,即使到了高年级,小学信息学竞赛的题型主要都是技巧性的:

字符金字塔
   输入行数,输出金字塔
   3
     *
    **
   ***

为了解决这些问题,学生在没有学习英语的情况下,需要花费大量精力首先记忆PRINT、IF、FOR等语法,而后应对各种回车、TAB、换行、文件句柄的问题。——这些技能对于未来不学习计算机行业的学生来说,成本太高了,尤其对于五年级以上,等待升学考试的小学生而言,显得不切实际。

另一方面,单打独斗的训练,也影响到儿童参与团体活动的时间,娃娃编程高手都是带着眼镜、不爱说话、古里古怪的”离群小博士”,本身就是有问题的。


.现代的计算机编程启蒙,已经完全发展为不同的学科。为了制作一台垃圾回收小车,团队中的小朋友需要在规定的时间内各尽其职,并通力协作。有想法的小朋友,不但要有点子,还要会表达,能够正确的与团队同步自己的想法。当遇到困难,是互相责备还是努力寻找解决的途径?

我想,未来是乐观的。再过20年,当这一代小朋友走入社会,他们应该会比我们这一代饱含科学精神、人文精神;未来的顶级团队会越来越多,他们可以是攻克病毒的科学家、设计桥梁的建筑师、智能农场的经营者、决定资金流动的分析师……无论是什么职业,这些团队都有共同的特点,就是彼此充满信任、彼此认可角色、彼此相互支持。

4 多角度思考

除了赞美科技与理念的进步,也有一些其他角度值得思考。

工业化的过度代偿不可避免

30年前, 为了制作一个可以航行的船模,辅导老师要带领学生(往往是自己包办)动手打磨一块铁质易拉罐皮,并在铁丝拧成的龙骨上用烙铁焊接。学生使用涂满凡士林的圆珠笔作为轴套,自行车辐条作为传动轴,完成一个没有遥控能力的航模——整个过程持续一个学期。

30年后,孩子使用预制件的智能积木,可以在1天之内完成小车的搭建,并且具有智能寻向能力。但是,若搭一艘船呢? 小朋友便会要求辅导老师:" 船体的积木编号是多少?快联系厂家发几套过来“、”舵机的编号也要发过去。” 剩下的,则是等待。

工业化,是只能向前的单行道。人类不必再学纺纱织布,我们不需要DOS命令也能移动文件夹。当代生活越来越高效、舒适、方便的同时,我们要注意到,哪怕不起眼的生活小物件,从自然原料开始动辄涉及到上百个前后衔接的独立行业。保持基础的生活技能,也许是应对灾变的生存之道。

老一代人的未来——学习使人年轻
长江后浪推前浪,前浪死在沙滩上。这个命题对了一半。人不是水,是有动力的航模。保持动力,不断升级,就能够逆流而上。即使生理年龄很小,但不再学习,则会逆水行舟,不进则退,比老人更早的死在沙滩上。

作为一名教育工作者,我分享给各位父母的是,陪孩子学习和玩本身就是学习。每一代人的思考方式很不同——我是7080后,我觉得,90后、00后、10后各不相同,而且是越来越棒。对待自己孩子时,不站在威严的父母的角度,而是放低姿态,和孩子们打成一片,真正成为他们的朋友,就能发现30年时代进步不仅从物质上改善了我们,更从精神上重塑了我们。和孩子们在一起玩玩Scratch、智能积木,安静的思考,品味,你会穿越时空看到充满生机和希望的未来世界。

更多推荐

小学阶段计算机编程启蒙闲谈