预告 | 学习编程是我们给孩子的一个礼物:三款帮孩子理解计算机原理的编程启蒙玩具

网友投稿 2018-08-25 13:57

今天给大家来介绍编程玩具,美国益智玩具大拿ThinkFun推出的一套叫做//CODE的编程玩具;对,就是工程师爸爸@周花卷 做过详细测评的那三款!

学编程现在有多火,花生君就不多说啦!很多爸爸妈妈都想让小朋友早点接触编程,掌握这门未来世界的通用“语言”,但又怕太早使用电脑、iPad等电子产品,影响孩子视力。

而Thinkfun的这三款编程玩具,正好打消了大家这个顾虑,这系列编程游戏(Coding Games)的设计理念就是 - 不插电(unplugged)学编程,让孩子完全不受计算机软硬件的限制,直接进入编程世界(Jump into coding with these offline games)

它主要面向8岁以上的孩子,让他们在玩耍中领会到编程的基本原理。游戏自然不能使每个人变成专业编程者;在Thinkfun创始人Bill Ritchie看来,孩子可以从游戏中获得的理解和掌握“编程理念”,他说:

“编程就是组织你的思维,从头至尾的可视化,完成所有的细节,并练习专心工作、做计划、理解目标以及保持专注的能力。”

//CODE这个系列的三款新品,第一次来到中国,分别是:

  • On The Brink  - 主题是 Procedures(过程);

  • Rover Control - 主题是 Control Structures(控制结构);

  • Robot Repair - 主题是 Boolean Logic(布尔逻辑)

https://cdn.china-scratch.com/timg/180827/135KB134-0.jpg

这三款游戏的内容和玩法完全不重复,涵盖了包括模式识别、过程构建、控制流程、逻辑运算等对于学习编程非常重要的要素,如果吃透了这三款游戏,以后学编程必定事半功倍。此外通过解题的过程还能够锻炼孩子的逻辑推理、专注力等关键能力。

最吸引人的是,三款游戏价格都不高,尝试起来没负担!感兴趣的朋友可以点击文末阅读原文直接进入微店下单。

1

          全世界孩子都在开始学编程

在越来越多的场合,我们听到这种说法:不会使用计算机就是21世纪的文盲。未来,编程和英语会一样重要,都是孩子在这个世界上生存所必备的基础技能。

的确,这世界上的一流新富豪,比如脸书、微软、谷歌、优步这些公司的创始人,不少都是从编程开始创业的。

https://cdn.china-scratch.com/timg/180827/135K63H5-1.jpg

他们是时代先驱,也是寻常父母,深知编程对下一代的意义。从2014年开始,他们中不少人就积极为Code.org举行的“全球编程一小时”活动站台,鼓励全世界的孩子积极去学习编程、尝试编程!

前总统奥巴马也号召孩子们参与到编程学习中来,他说:

“不要只是买一个新的电脑游戏,自己做一个;不要只是下载最新的应用程序,帮助设计它;不要只是在手机上玩玩,编写它的代码。”

https://cdn.china-scratch.com/timg/180827/135K64J8-2.jpg

奥巴马花时间奔走与编程相关的活动,也在2015年签署了美国《STEM教育法案》。 这是一项鼓励学生主修科学、技术、工程和数学领域的计划,在国家实力的比较中,获得STEM学位的人数成为一个重要的指标。

该方案生效后,计算机方面的学科教育也作为STEM教育的一类,被纳入国家科学基金等机构的资助范围,目前美国有500万青少年在学编程。编程对于儿童思维培养及逻辑开发的意义,已成为世界性的共识。在英国,5岁以上孩子都会开始有计算机课 ... 

https://cdn.china-scratch.com/timg/180827/135KC914-3.jpg

法国也将编程列入初等教育中;这是芬兰小学在上编程课 ...

https://cdn.china-scratch.com/timg/180827/135KB214-4.jpg

2012年,日本中小学生开始学习编程;新加坡也宣布2017年起,将会在中小学考试中加入编程科目。此外,微软、苹果、谷歌等科技企业正在全球范围举办各种活动来推广编程教育。

https://cdn.china-scratch.com/timg/180827/135KC1K-5.jpg

那么不会编程,会不会成为一个新时代的文盲呢?程序员爸爸 - 花友@周花卷说:

这我不好说,我只能说编程的意义并不仅限于编程本身。编程是一件很有趣的事情,我觉得主要能培养五个方面的能力:策划构思能力、逻辑分析能力、模式识别能力、问题分解能力、测试纠错能力。这些重要的思维能力,不光在编程上很重要,也适用于各行各业。

https://cdn.china-scratch.com/timg/180827/135K61411-6.jpg

和大人们学编程不一样,儿童编程,并不是直接从学习C++、Java等编程语言开始的。很多妈妈想到这些符号就头疼,其实大可不必。事实上,儿童编程已将英语的代码图形化、指令化,以游戏、情景动画、积木构建的形式呈现,符合孩子的成长发展特点,4至12岁的孩子都完全能handle,适合去学。

今天介绍的Thinkfun的这三款玩具就是基于“编程一小时”项目理念设计的,让孩子们在简单有趣的游戏中学习编程。

Thinkfun是美国儿童思维类玩具的著名品牌,成立于1985年,宗旨是将数学家、工程师、发明家的创意想法转换成孩子喜欢的玩具游戏。它家的玩具都有鼓励小朋友发挥想象力、挑战困难发挥潜力的特点,让孩子通过游戏的方式去学习知识、解决问题;这些产品在美国玩具教具界获奖无数,在花生团一直很受欢迎。

https://cdn.china-scratch.com/timg/180827/135K630Y-7.jpg

Thinkfun最擅长的是设计锻炼逻辑思考能力的闯关游戏。我试玩过多款他们的玩具,发现游戏设计师都很有来头,玩下来感受最深的是:游戏关卡设计很精妙,学习目的特别清晰。

为什么Thinkfun会专门推出这样的编程游戏呢?他们一款编程游戏 - Robot Turtle的设计者Dan Shapiro解释,“学习编程实际上是我们给孩子的一个礼物”:

这个世界上有两种人。一种把计算机看成主人,一种则把计算机当做帮手。未来将由程序员编写,给千万人阅读。我希望给自己的孩子能通过编程表达自己的天赋,以及能编写软件而带来的能力。

这并不意味着我想让他们成为程序员。拥有编程能力能让他们在任何领域做得更好。拥有这个能力,就像成为一个好作家,对学习充满热情,或者在数学方面打下坚实基础一样。不管你做什么,编程都会为你打开那扇门,帮你表达你自己,帮你在想要做的事情上更成功。这是你给孩子的礼物。

下面,我们详细介绍下要团购的3款玩具,看看到底怎么玩,为什么值得购买...

https://cdn.china-scratch.com/timg/180827/135K62014-8.jpg

2

         这三款编程玩具,为什么值得入?

我们请工程师爸爸做的评测报告里,他带着孩子一个个玩下来,凭借实际使用体验和自己的专业判断,给出了不错的建议。他说:

ThinkFun的这三款//CODE玩具,设计得非常科学和用心,可以说是诚意满满,对得起ThinkFun的招牌。下面说说我的推荐理由吧:

  • 这三款游戏的内容和玩法完全不重复,涵盖了包括模式识别、过程构建、控制流程、逻辑运算等对于学习编程非常重要的要素,如果吃透了这三款游戏,学编程必定事半功倍。此外通过解题的过程还能够锻炼孩子的逻辑推理、专注力等关键能力。

  • 难度配置合理,入门的题目非常简单,容易上手,而高级的题目又非常有挑战性,如果不是像我家Vita哥哥这种为了写评测突击填鸭的话,一盒玩具还是能玩上很久的。

  • 一物多玩,对于年龄较小又没接触过编程的孩子来说,可以采用变通的玩法(详见我在每款玩具里的说明),降低门槛,作为编程和逻辑思维的启蒙。

  • 和其他学习编程的电子产品不同,//CODE系列是不用电的桌游,不但打消了很多家长对电子屏幕的顾虑,而且相比电脑、机器人这些东西,价格便宜不知道多少倍了。

下面再说几个需要注意的问题:

  • 玩具的适用年龄都是8岁+,但是其中简单的题目,特别是On The Brink那款,对于更小一点的孩子来说也适用,有兴趣的话不妨试试看。

  • 虽然官方没有刻意强调这三款游戏的顺序,但我建议按照上面给出的顺序来玩,因为这三款玩具的抽象程度是按顺序递增的(虽然抽象程度不代表难度),第一款On The Brink是规则最简单最容易上手的(Vita哥哥甚至不需要看说明书就会玩),而第三款Robot Repair则是最抽象的,需要把所有规则都搞懂才能玩起来。

  • 和其他桌游一样,由于一切都是全手动的,而且规则的设置又比较复杂,需要家长花时间陪玩,而且需要引导孩子的思路(详见对每款游戏的说明)。

  • 这套玩具培养的是编程的思维方式,尽管思维方式是编程的基础,但除了思维方式之外,编程还需要其他一些技能,比如学习编程语言、数据结构和算法,这些内容往往无法通过单纯的玩游戏来学习。如果发现孩子对这方面感兴趣,不妨继续深入学习吧。

下面,就来说说每款游戏的玩点和教育价值 ... 这些内容也选自工程师爸爸的测评。

3.1

           On the Brink:练手工运行程序

On the Brink (边沿编程)是Thinkfun //CODE系列玩具中的第一款。游戏规则是通过放置移动卡,使机器人沿正确方向移动,而不至于跌落下去。每次游戏的难度会一级级增加。

这款游戏的主题是Procedures(过程)。所谓“过程”就是一串命令的组合,通过它们来完成某个目标的意思。

https://cdn.china-scratch.com/timg/180827/135KJ316-9.jpg

这款游戏最大的亮点是什么呢?就是让孩子练习手工运行程序这个步骤。

你可能会说,手工运行程序有什么难的呢?不就是按照命令一个一个走吗?其实对于孩子来说,这个过程是非常需要专注力的,因为他需要看当前格子是什么颜色,再看好需要运行什么命令,然后再实际用棋子去完成相应的移动,很多孩子会觉得这个“按部就班”的过程很枯燥——要知道,看着说明书搭积木对孩子来说也没那么容易的,对吧。

由于有向左转向右转这种命令,孩子还得学会根据机器人当前面对的方向来分清往哪边转,实际玩的过程中,大人都难免在这个地方出错,更不要说孩子了。

为什么说这是这款游戏最大的亮点呢?因为在iPad或者电脑上编程的时候,运行程序是计算机的工作,人只要看结果就好了,但计算机运行得太快,孩子不太容易理解命令是怎样一条一条被执行的。

为什么需要理解程序运行的过程呢?因为当程序出现问题需要调试(debug)的时候,我们就需要一步一步排查问题到底在哪里,在这个过程中,单步模拟是一个很有用的技能。

当然了,就算孩子以后不去编程,这个过程也非常能锻炼孩子的耐心、专注力和空间方位感觉。我觉得,如果你发现解谜对于孩子来说有点难,完全可以先按照手册上的答案把命令摆好,让孩子练习自己运行一遍这些命令。

再说说解谜吧。这款游戏的解谜过程大致需要两种能力,一种是模式识别(pattern recognition),另一种是逻辑推理(logical reasoning)。模式识别简单来说就是找规律,找套路,比如说下面这个应该一眼就能看出来,橙色直走,红色右转,蓝色左转。

模式识别在实际的编程中也是一项重要的能力,因为计算机编程的一个关键方法就是尽量使用可重用的模式(reusable patterns),也就是说通过简单命令的组合和重用来完成复杂的工作。

在这款游戏中,基本命令只有三种:前进、左转、右转,而高级题目中使用的复合命令,其实都可以看成是一些函数,也就是多个基本命令的组合,比如Long Turn Left命令就等于前进→左转→前进(每张复合命令卡片下面都有基本命令的分解)。

在实际的编程中,函数就是一种可重用的模式,而程序员的工作之一就是去设计和构建这样的模式,然后像搭积木一样把它们组合起来。

玩这款游戏的时候我们还能发现,大部分情况下机器人走的都不是最短路线,而是要绕来绕去好几圈才能到达终点,这是因为我们在尝试用非常有限的模式(3组命令)去完成任务。

实际的编程中情况也差不多,因为计算机的运行速度很快,我们往往不在乎让它多走一些冤枉路,正如我刚才提到的,我们的目标是重复使用最少的模式来完成任务孩子在玩这款游戏的时候,能够大量地接触这样的思维方式,对于真正学编程也是很有帮助的。


套装包括:

3个控制面板

1个机器人卡片

18张运动卡

1本关卡册子:40关

https://cdn.china-scratch.com/timg/180827/135KI156-10.jpg

简单来说,这个游戏的目标就是让机器人从起点走到终点,控制面板上有6个格子(红、蓝、橙各两个格子),我们要把命令卡片放在控制面板上,6个格子都要放满。

https://cdn.china-scratch.com/timg/180827/135KGS8-11.jpg

机器人站在什么颜色的格子上,就执行什么颜色格子里的全部两个命令,走到下一个格子之后,再根据所在的格子执行相应的命令,直到最后到达终点为止。

https://cdn.china-scratch.com/timg/180827/135KM5T-12.jpg

https://cdn.china-scratch.com/timg/180827/135KKY1-13.jpg

具体玩法…

https://cdn.china-scratch.com/timg/180827/135KH306-14.jpg

根据Thinkfun自己的介绍,他们认为On the Brink 比起之前他们家的获奖编程玩具Robot Turtles更有挑战性,适合8岁以上大孩子。

不过,做测评的工程师爸爸是带着6岁不到的儿子玩的,因为小男孩之前就在家学编程,有了一定的编程知识基础。以下是他的陪玩心得,供大家参考:

  • 正确运行程序是基础,提醒孩子运行程序时一定要仔细,执行了错误颜色格子的命令,漏掉了一个命令,或者左右搞反,都是孩子会常犯的错误。

  • 引导孩子仔细观察棋盘,寻找其中包含的模式和规律,以及寻找限制性的条件(比如长条路径、白格等)作为思考的突破口。

  • 引导孩子进行简单的逻辑思考,比如说从一个格子到另一个格子有几种走法?如果采用某一种走法,和其他相同颜色的格子之间是否会产生矛盾?注意提醒孩子在思考时遵循MECE(不重复、不遗漏)原则。

这是他们的试玩视频,真人演示如何手工运行程序 ... 

3.2

         Rover Control:构建控制路径

Rover Control是ThinkFun //CODE 编程系列中第二款游戏。这款游戏的主题是Control Structures(控制结构),所谓“控制结构”就是通过分支、循环等方式根据条件来控制程序的走向。

https://cdn.china-scratch.com/timg/180827/135KL1X-15.jpg

通常我们学编程的时候,都是学习如何自己编写这些控制结构,但这款游戏的思路却是反的,控制结构已经给我们了,而我们需要根据这些控制结构来构建满足条件的路径。

尽管我们不需要自己编写这些控制结构,但在构建路径的过程中,必须能够完全理解这些控制结构的工作方式,不然不可能构建出正确的路径,这就是这款游戏设计最巧妙的地方。

跟上一款游戏一样,“运行程序”其实是非常重要的一个环节。这款游戏的程序规则比上一款要复杂很多,因此对于孩子来说,就算不玩解题,如果能按照画好的路径正确说出程序的运行过程,也是非常非常不容易的一件事了。

我甚至可以毫不夸张地说,对于这款游戏,运行程序的过程比解谜的过程更像编程,连官方说明书里都说:这款游戏的意义在于“模拟真正的计算机运行程序的过程”,而“用眼睛和大脑模拟程序运行”是程序员的一项重要能力。

而且,游戏题目中给出的“路线”,实际上就是真正的编程中经常使用的“流程图”(flow chart),通过玩这款游戏,孩子就潜移默化地记住了流程图是长啥样的,是干啥用的,即便将来不去学编程,流程图在很多其他方面也都可以派上用场,比如项目管理、活动组织等等。

至于解谜,在这款游戏中,会大量运用回溯(backtracking)的方法。回溯不但是一种人类思考问题的方法,同时也是一种重要的计算机算法(algorithm)

简单来说,这款游戏的解谜过程就是从若干种可能的路径中搜索出正确的一种,而在搜索的过程中我们会遇到分叉,也就是从某一步开始可能有几种不同的走法,需要从其中一种开始尝试,如果尝试到最后不成功,就需要回退到分叉的地方,减掉错误的分叉,然后继续尝试其他的分叉,直到最终找出正确的解。这种方法也叫深度优先搜索(depth-first search, DFS)。

套装包括:

4张地形图

5个驻扎标记

4个开始和结束标记

2个探测器

样本储存卡

3支可擦记号笔

一本关卡册子:40关

https://cdn.china-scratch.com/timg/180827/135KMG6-16.jpg

游戏任务是,在地图上用彩色笔把路径涂上颜色,使得火星车可以按照规定好的路线(course)从起点走到终点,但是:每条路径只能涂一种颜色,且对于地图上任意一个格子,都不能连接两条颜色相同的路径。

https://cdn.china-scratch.com/timg/180827/135KG301-17.jpg

右上角的小图是地图初始配置,上面显示了起点在7号格,终点在9号格,以及4条已经规定好颜色的路径。如果我们要使火星车从7走到9,中间经过3条路径,显然只有一种走法:7→4→1→9,把这3条路径分别涂上红、蓝(初始已涂好)、红,就算是过关啦。

https://cdn.china-scratch.com/timg/180827/135KHT1-18.jpg

这款游戏里面的彩色笔是水性白板笔,地图板上有一层光滑的覆膜,因此玩好之后可以用笔盖子上的擦子把颜色擦掉,以便继续玩下一关。

工程师爸爸带儿子玩这款后,总结出来的使用经验:

  • 这款游戏需要频繁的画线和擦线,有些孩子(比如我家Vita哥哥)对这种工作表示厌倦,而且这种工作也确实会打断思路,所以画线擦线的事家长可以代劳,只要孩子说出正确的画法就好。

  • 运行程序的过程是这款游戏的精髓,最好让孩子在运行的时候说出每一步的走法,尤其是遇到判断和计数器检查的时候。说明书上建议运行的时候由一个人说出命令,另一个人来移动火星车,我觉得这也是一个好办法。

  • 检查点是解题的重要线索,不但能帮你判断目标,还能帮你判断什么时候该跳出循环(比如上面的第40题);回溯是解题的重要方法,做分叉标记能帮助你更好地使用回溯。

这是他们的试玩视频,真人演示如何正确运行带分支和循环的程序:

3.3

          Robot Repair:练习逻辑运算

这款Robot Repair是Thinkfun #Code 编程系列的第三款游戏,需要孩子使用逻辑推理,根据游戏提供的线索,正确插入电源并修复机器人。

https://cdn.china-scratch.com/timg/180827/135KG960-19.jpg

这款游戏的主题是Boolean Logic(布尔逻辑)。游戏的题目要和相对应的电路板放在一起用,游戏任务就是在电路板上写有数字的格子安装电池,打开(ON)其中某些线路的电源开关,使得整个电路的状态同时满足题目中规定的全部条件。

https://cdn.china-scratch.com/timg/180827/135KV021-20.jpg

https://cdn.china-scratch.com/timg/180827/135KU4E-21.jpg

整个游戏里面包含的逻辑运算种类除了AND、OR、NOT之外,还包括IFF(当且仅当)、XOR(异或)、NAND(与非)、NOR(或非)这些逻辑运算。

这张表在逻辑运算中叫真值表(truth table),其中T表示真,F表示假。以OR为例,两个输入值(P和Q)只要至少有一个是T,则P OR Q就是T,只有当两个都为F时,P OR Q才为F。只有把这个表搞清楚了,这个游戏才能玩下去。

https://cdn.china-scratch.com/timg/180827/135KR392-22.jpg

布尔逻辑运算在真正的编程中是非常重要的,因为我们在编程的时候经常要根据不同的条件进行判断,然后执行不同的逻辑,而条件判断使用的就是布尔表达式。

举个例子,对于一个红绿灯,如果我们需要在红灯的时候停下,那么我们实际告诉计算机的是:如果(红灯亮)为True,就停下。括号里面的内容就是布尔表达式,我们也可以管它叫一个命题(statement)。

如果我们说,红灯或者黄灯亮都要停下,那么就是:如果(红灯亮 OR 黄灯亮)为True,就停下。而我们知道红绿灯只有三种状态,那么上面的逻辑也可以说:如果(NOT 绿灯亮)为True,就停下。

这种逻辑思维的能力,不仅对编程有用,对于分析和解决任何问题都是非常重要的。

除了条件判断之外,布尔逻辑运算更是计算机进行各种计算的基础。我们知道计算机是用二进制来进行运算的,二进制的每一位(比特)都只有0和1两种状态,如果我们将0和1对应False和True,那么布尔逻辑运算就可以等价为数值运算。

事实上,计算机里的数值运算就是利用布尔逻辑运算(逻辑门)来完成的,比如说二进制的加法就是用一个AND运算和一个XOR运算来完成的。因此,掌握布尔逻辑运算也可以帮助孩子更好地理解计算机的工作原理。

这套游戏解题的过程是比较经典的逻辑推理过程,即通过已知条件和逻辑关系一步一步地推出其他条件,从而得到最终的解。

其实这个过程和我们学习数学时做证明题的过程是非常类似的。我们说数学能力绝不能等价于计算能力,其实有很多数学家都不善于计算,数学能力应该更偏重于逻辑推理能力,因为数学本身就是一个严密的逻辑体系。

很多孩子小学时数学成绩很好,到中学就渐渐不行了,主要是因为中学数学已经基本脱离了计算,逐渐进入推理和证明的阶段了。

因此,我认为这款游戏对逻辑推理能力的锻炼,也有助于培养真正的数学能力。

如果孩子觉得解题的过程太复杂,和前两款游戏一样,这款游戏也可以反过来玩。也就是先按照答案把电池在电路板上摆好,然后让孩子根据电池的位置先确定每条线路的开关状态,然后再根据这些状态判断题目中给出的条件的真假,并根据逻辑运算关系确定每一组条件的真假。

通过这个过程,孩子也能够学会布尔逻辑运算的规则,等到吃透这些规则之后,就可以尝试自己解题了。

套装包括:

4张电路板

20个真假标记

9个开关标记

10个电源标记

1本关卡册子:40关

1本答案册子

https://cdn.china-scratch.com/timg/180827/135KU053-23.jpg

来看看具体玩法…

https://cdn.china-scratch.com/timg/180827/135KR200-24.jpg

针对这款,工程师爸爸的攻略是这样的:

  • 逻辑推理是这款游戏的精髓,而且推理的过程比结果重要,尽量引导孩子说出每一步的推理过程,一定要注意推理当中每一步逻辑的严密性,只有当没有足够的已知条件继续推理时,才能做假设。

  • 对于没接触过逻辑运算的孩子,可以尝试通过一些具体的例子来说明NOT、AND、OR这些逻辑运算的意义,比如红绿灯就是一个不错的例子。

  • 对于年龄稍大,有一定逻辑思维能力的孩子,可以引导他们观察和计算布尔表达式之间的等式关系,比如:P NOR Q = NOT (P OR Q) = (NOT P) AND (NOT Q),以及给他们讲一讲如何通过逻辑门的组合来计算二进制加法,帮助他们发现逻辑运算的更多奇妙之处。

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com