没有电脑也能学编程:真正管用的不插电活动

不插电编程用身体和卡片、而不是屏幕来教编程背后的思想。什么时候它有效,哪三个活动真能留下东西,以及它什么时候沦为表演。
不插电编程,指的是用身体、卡片和粉笔而不是屏幕,去教编程背后的思想,比如顺序、循环、条件判断和排序。做得好,它把抽象的概念变得可触可感,记得牢的程度是教程很少能达到的。做得糟,它就是一个贴了编程标签的联谊游戏。区别不在活动本身,而在于孩子事后能不能说出自己刚才练的是什么。
不插电编程真正的长处
最大的收获是它把一切妨碍理解的东西都剥掉了。不用登录,不用打字,没有语法错误,不用等设备充电,也不会因为停电断电而报废一节课。孩子直接对逻辑本身进行推理,而不是跟工具较劲。
它还便宜,而且能铺开到一整个班。一副数字卡片,或者操场上用粉笔画出的一张格子,就能让三十个学生同时忙起来。因此它特别适合年龄最小的学习者,适合第一次接触某一个概念,也适合在任何人碰键盘之前的那几分钟热身。
三个真正管用的活动
这三个之所以站得住脚,是因为身体的动作就是概念本身,而不是概念外面的装饰。
- 排序网络。在地上用粉笔画出一张由线路和比较框组成的网络。每个学生手里拿一个数字,沿着线路走。在每个比较框处,相遇的两人比较大小并交换位置,小的那个往一边走,大的往另一边走。走出来的队伍正好是排好序的。它演示了基于比较的排序,也悄悄演示了很多次比较可以同时发生这件事。
- 人形机器人。一个孩子当机器人,只能严格执行指令。另一个孩子一步一步下命令,让他穿过教室,或者搭起一座积木塔。机器人做的是别人说出来的事,而不是别人想说的事,所以含糊的一步会当场失败。这教的是顺序,更重要的是调试:全班要修的是指令,不是机器人。
- 二进制游戏。发给学生五张卡片,上面分别画着 16、8、4、2 和 1 个圆点。把卡片翻到正面、把圆点相加,就能拼出 31 以内的任意数字。它把二进制计数变得具体,也回答了一台只有开和关的机器如何存下一个数字这个问题。
注意这三个活动的共同点:学习者能指着结果把规则讲出来。如果一个孩子只说得出好玩,那这个概念就没有落地。
不插电什么时候沦为表演
知道破绽在哪,这种失败一眼就能认出来。所有人都在动、在笑、在忙,可没有一个人说得出自己练的是哪个概念。通常是下面几种情况之一:
- 游戏的规则比它本该教的概念还多,于是规则本身成了这节课的内容。
- 思考全被大人包办了,孩子只是把步骤演一遍。
- 它被当成了课程的全部,而不是通往某个真能运行的东西的桥。
不插电是入口,不是终点。一个学期都在拍手游戏和卡片排序、却从来没有任何东西真正跑起来,留下的是一群能谈论编程、却从没看着自己的逻辑运行、失败、再被修好的孩子。
把桥搭回到能运行的东西上
不插电活动最好的用法是当开头的十分钟,而不是整整一小时。孩子刚用身体理解了顺序的那一刻,就把同一个想法搬到某个真会照做的东西上。那可以是一台共用笔记本电脑上的简单积木编辑器,也可以是sheenbot infinity这样的实体主板,同样一步一步的逻辑在这里会点亮一颗 LED 或者转动一个电机。当概念已经握在手里,从人形机器人跳到真机器人的距离很短。
如果你希望这座桥有人替你搭好,我们在开普敦的sheen academy 课程从身体上的概念开始,以能运行的代码收尾,而一节免费试听课是风险最低的方式,看看它适不适合你的孩子。暑期的假期工作坊在十二月假期里也按同样的路子进行:先用不插电热身引入一个概念,再让学习者把它真的做出来。
要点
当动作本身就是概念、并且孩子事后能把规则讲清楚时,不插电编程是真正有用的。排序网络、人形机器人和二进制游戏都通过了这一检验。把它们当成一道门,别拖太久,而且一定要走过去,走到某个能运行的东西上。这样用,没有电脑的编程就是让孩子为有电脑的编程做好准备的最佳途径之一。



