← StudyX Devlog

什么是计算思维:解谜游戏能培养什么

OBARA HirokiOBARA Hiroki · DeveloperMath Gates使用指南
什么是计算思维:解谜游戏能培养什么

2006年3月,计算机科学家 Jeannette Wing 在 Communications of the ACM(第49卷第3期)上发表了一篇只有三页的短文,题目叫“Computational Thinking”,也就是计算思维。她写道:计算思维是一种基本技能,属于每一个人,而不只是计算机科学家。她还说,在读、写、算之外,应该把计算思维加进每个孩子的分析能力里(原文 PDF)。

二十年后,这个词已经出现在许多国家的课程里,但传到家长耳中时,往往没有多少解释。它是指学写代码吗?还是会用电脑?这篇文章先读一读 Wing 原本写了什么,再看看日本小学是怎样定义类似概念的,最后试着把解谜游戏能培养的和培养不了的分开。

Wing 的意思

Wing 把计算思维描述为:借助计算机科学的基本概念来解决问题、设计系统、理解人的行为。她列举的工具中,有把大任务拆成小部分的“分解”,也有只留下问题中重要的部分、把其余放到一边的“抽象”。

她也说清楚了计算思维不是什么。她列出的第一个特点是“Conceptualizing, not programming”,重在概念上的思考,而不是编程。她写道,像计算机科学家那样思考,意味着不只是会给电脑编程。她还说,这是人的思考方式,不是让人像电脑那样思考。目的不是把孩子变成机器,而是给他们一种处理问题的方法。

日本的说法:编程式思维

日本在2020学年度全面实施的新课程中,把编程教育纳入了小学。日本文部科学省给教师的《小学校编程教育指南(第三版)》(2020年2月,日文)用的词是“プログラミング的思考”,可以译作“编程式思维”。指南引用专家会议的说明,大意是:为了实现自己想要的一连串活动,需要怎样的动作组合;对应每个动作的符号要怎样组合;怎样改进符号的组合,才能更接近想要的结果。能够有逻辑地思考这些,就是编程式思维。

慢慢读,这句话里有四件事:

  1. 先有自己的意图,想让什么发生
  2. 把它看成一个个动作的组合
  3. 把每个动作换成符号,也就是命令,再组合起来
  4. 不成功,就改进组合,直到接近意图

指南用在电脑上画正三角形作例子。通常没有“画正三角形”这条命令,所以要把“前进100”和“左转120度”组合起来,重复三次。改变转的角度,还能画出正六边形。

指南有一点说得很直接:孩子在过程中也许会学会某种编程语言,但那本身并不是目的。关于试错,它也有一段我觉得很重要的话:不是凭一时想到或乱猜去改命令的组合,而是在不成功时想一想哪里错了,修改,再确认结果。

我认为这正是核心。运行一下,不行就随便改改再运行,从外面看很像,其实是另一回事。先预测,再把结果和预测比较,找出差距的原因。这个往返,就是“有逻辑地思考”的内容。

日本的说法比 Wing 的范围窄。按我的理解,它把重点放在小学能教的部分:给动作排顺序、组合、修正。

解谜游戏能培养的

那么,解谜游戏能培养这种思维吗?我认为,能和不能的部分分得很清楚。

能培养的,首先是顺序感。先加2再乘3,和先乘3再加2,答案不一样。动作的组合,不只看用了什么,也看用的顺序。这对应定义的第2和第3点。

其次是运行前先预测的习惯。好的谜题靠乱猜解不开。先读懂盘面比乱试更快,孩子自然会开始预测。

再次是从失败里找原因。谜题失败时,原因通常很清楚。在哪里出错,为什么,想清楚再改。这正是指南看重的那个往返。

还有一点,是寻找更短的解法。不只要能成功,还要想能不能用更少的步骤做到。这对应定义最后的“改进”。

解谜游戏培养不了的

有些东西在谜题之外。

第一是意图。在谜题里,目标是题目定好的。定义一开头的“自己想要的活动”,从来不是孩子自己的。决定自己要做什么,更适合用 Scratch 这样从空白开始的工具,或者纸、剪刀和胶水。

第二是让真正的电脑动起来的体验。日本的指南承认,不用电脑也能进行一部分培养编程式思维的教学,但同时也说,整个编程教育中孩子几乎不用电脑是不理想的。解谜游戏代替不了这一点。

此外,没有唯一答案的问题,和别人一起合作做东西,也都在谜题之外。谜题是在规则固定的小世界里思考的练习。这种练习确实有用,但不能包揽一切。

在家可以试试

不需要特别的工具,写步骤就是很好的练习。

请孩子写下刷牙的步骤,大人只按写的去做,不多做一步。如果写了“把牙膏挤到牙刷上”,却没有写“打开盖子”,那就打不开盖子。要把意图传达给一个只照字面做事的人,孩子就得把事情拆成小动作,排好顺序。

不成功的时候,一起看看在哪里停住了,再改写步骤。这就是指南里那整个循环,只不过是在洗手间里完成的。

Math Gates 能帮上忙的地方

Math Gates 是我做的一款回路解谜游戏。在盘面的空格里放上改变数值的“门”和让路线转90度的“镜子”,然后按“运行”,带着数字的比特就会沿直线前进。终点的出口只接收满足条件的值。

比特只走直线,所以先经过哪道门,取决于门放在哪里、镜子朝哪个方向。用指南的话说,门和镜子是“符号”,摆法是“组合”。每放一个零件,比特要走的路就会马上用虚线画在盘面上,运行前就能对照自己的预测。失败时,游戏会告诉你原因,比如“会撞墙,用镜子把它折弯”,或者显示到达时的值和出口要求的条件。星星由用了几道门决定,用最少的门解开就是三颗星。最少的数目不会事先显示,过关后只会提示“还能用更少的门解开”,所以总有继续改进的理由。

上面说的“培养不了的”,对 Math Gates 同样适用。目标属于题目,孩子不是在做自己设计的东西。把它看作排顺序、组合、修正的练习,会比较准确。

一共7个世界140道题,从加减法开始,经过分数、平方,一直到真假与逻辑。面向8岁以上。可以免费玩,过关之间会有广告,一次性购买可以去除广告。

关于操作顺序为什么会改变答案,可以看计算顺序为什么会改变答案;Math Gates 和 Scratch 等其他选择的区别,写在 Math Gates 与其他选择的比较里。

计算思维不一定要坐在电脑前才能培养,但只靠解谜游戏也培养不全。顺序和改进可以来自谜题,意图和表达需要一张白纸。我认为两者都有,对孩子最好。

在 App Store 下载