面向3-8岁的幼儿儿童
免费编程入门启蒙网站

不需要电脑,IT工程师妈妈用迷宫让孩子Get编程思维!

你会发现从事IT行业的家长对孩子学编程这件事会更加重视,并不是他们希望子承父业,而是他们从学习编程中获益良多,才早早地给孩子布局编程学习。

就像Michelle说的那样:具备编程技能未来一定会帮助孩子获得更多的机会和可能性。

 

不需要电脑,IT工程师妈妈用迷宫让孩子Get编程思维!

 

Michelle是一位有四个孩子的IT工程师妈妈,她大学毕业于加州理工大学,之后攻读了斯坦福博士学位。她说自己学编程比较晚,直到18岁,才写出人生中第一个简单程序。如今科技飞速发展,学会和机器打交道,已成一项很重要的普通技能。

 

为了培养正在上幼儿园的儿子的编程思维,Michelle专门为孩子设计了“乐高迷宫编程”,并给游戏设计了难度等级,随着孩子年龄的增长,难度等级会一点点上升。

 

不需要电脑,IT工程师妈妈用迷宫让孩子Get编程思维!

 

她解释说,就如同婴儿学步,要学会像一个程序员那样思考,是需要训练很长时间的。对一个初学者而言,重要的不是某种编程语言的语法规则,而是要理解编程思维。理解所有编程语言的构成要素——即所有编程语言的共性。

 

所以,我设计的这款乐高迷宫游戏靠的是手写“代码”而不是机写“代码”,游戏有四个难度等级,囊括各种编程概念。我会一边介绍玩法,一边对设计理念和孩子的收获进行详尽描述。

推荐年龄段:幼儿园,小学,初高中

所需时间: 一个小时(包括制作素材的时间)

难点: 准备工作不难,等级3和等级4可能更适合五六年级和年龄更大一些的孩子。

材料: 打印纸、 剪刀、双面胶、 乐高小人(或其他类似尺寸的小人)、 乐高或得宝积木(可选)。

操作指南

打印“乐高迷宫编程”(在【宇航聊编程】对话框中回复“迷宫”,获得素材),并把编程指令裁剪出来。

 

不需要电脑,IT工程师妈妈用迷宫让孩子Get编程思维!

 

接下来,孩子就可以建立自己的迷宫了。共有5个迷宫可以选择, 或者也可以用提供的空白方格制作一个自己的迷宫。 确定要选的迷宫类型后,有三种构建方式:

选项1——直接用打印出来的迷宫

如果孩子没有乐高或得宝小人儿,Ta可以原封不动地使用PDF提供的迷宫。只需选一个自己喜欢的小人儿来完成“走迷宫”的过程。类似下图这样:

不需要电脑,IT工程师妈妈用迷宫让孩子Get编程思维!

 

选项2——用乐高积木搭迷宫

如果孩子是个乐高迷,Ta 也可以发挥创意用乐高把迷宫中灰色部分挡住,就像这样:

 

不需要电脑,IT工程师妈妈用迷宫让孩子Get编程思维!

 

选项3——用德宝板子搭建迷宫

如果你有得宝的话,可以把迷宫剪出来,放在得宝板上,然后在迷宫通道旁用得宝积木盖满该板以形成墙壁。注意,要让部件连接在一起,又要方便小人移动。

 

不需要电脑,IT工程师妈妈用迷宫让孩子Get编程思维!

 

完成后,你的迷宫可能就是下图这个样子:

 

不需要电脑,IT工程师妈妈用迷宫让孩子Get编程思维!

造好迷宫后,我们还需要制作一些“指令卡片”。像是这样:

不需要电脑,IT工程师妈妈用迷宫让孩子Get编程思维!

这些标签上的指令都是编程过程中的常用指令,比如:向前移动、向左转、开始、结束等等。

制作完成后,游戏就可以正式开始了。

 

 

难度等级1——学会坐标系概念

如果直接让孩子在电脑上学习坐标系,他们很难理解。因为他们的左边和游戏角色的左边并不是一回事,但玩熟练了第一个等级,他们就会学会怎么样去转换这个坐标的视角了,这是学编程最基本的技能。

不需要电脑,IT工程师妈妈用迷宫让孩子Get编程思维!

那怎么样教会他们用迷宫里的小人的视角(坐标系)思考呢?首先,把小人摆在迷宫入口处,将所有绿色卡片分成三摞(向前走,向右转,向左转)。

不需要电脑,IT工程师妈妈用迷宫让孩子Get编程思维!

 

孩子需要把自己认为小人需要遵从的指令列成长长一条。例如,在上面所示乐高迷宫里,建筑工人埃米特需要:向前走,向前走,向前走,向右转,向前走……我让6岁的儿子将这些编程指令排成长长一列。

不需要电脑,IT工程师妈妈用迷宫让孩子Get编程思维!

本来我打算用儿子排好的“代码”,直接把小人儿移出迷宫,不过他想自己来移动小人。于是,我想了个办法,让他一次只完成一个指令,然后边执行指令,边把卡片翻过来。这样做的效果非常好,不会让指令混乱。

我唯一提醒孩子的是要注意向左转和向右转的问题。当埃米特在最后一个拐角处,出现了BUG,他放了一个“向右转”的牌子,但其实埃米特需要的是“向左转”。我让他把卡片放到埃米特手中,他立马明白过来并改正了错误。如果不会英语的孩子玩这个游戏,需要先认识一些简单的英语。

 

 

难度等级2——“FOR”循环语句

 

 

在等级1中,告诉埃米特向前走5步,需要5张“向前走”指令。这一关中指令升级了,告诉孩子用“FOR循环”指令会方便很多。

比如向前走3步,原本需要3张向前走的卡,用“FOR”循环指令,只要在空格中写上3,在“FOR”循环指令下接上“向前走”的指令,就代表“向前走”重复3次,如下图。

这里还要说一下格式。编程语言都会有格式要求。跟在“FOR”循环语句后的指令缩进了一些,这样做让代码更容易读。“FOR”循环语句的结尾需要一个“end”,表示该循环语句到此结束。虽然不是所有编程语言都需要这样,但这样做会让孩子更加严谨。

不需要电脑,IT工程师妈妈用迷宫让孩子Get编程思维!

难度等级3——“IF”条件语句

用“IF”条件语句可不是机械地指挥小人往前走,向左转或者向右转那么简单了。这个指令是要教小人“思考”问题了。需要将乐高小人在任意位置可能遇到的情况都考虑在内,决策出最佳通用动作指令。孩子们可以挑战自我,写一个尽量简短的程序解决迷宫难题。例如,左边有路可走小人儿该怎么办,要是碰到死胡同了有该怎么办?

这需要孩子们能进行更为抽象的思考,你才能教他们“IF”条件语句。我是在大学第一次接触到“IF”条件语句的,然后就一发不可收拾地将其应用到日常生活的方方面面。基本上,所有决定都能归为决策树。比如,我正拿不定主意去哪儿吃晚饭,我可能会这样思考:

  “IF 我朋友Mary有空,

—> then 我就和她一起吃泰国菜。

ELSE IF 公寓餐厅供应的餐食尚且说得过去,

—> then 我就去那儿随便吃点儿。

ELSE—> 我就窝在公寓里吃点儿麦片和冰淇凌。

END IF。”

谢天谢地,我后来改掉了这个“毛病”。

不过,学会这个思维方式的好处是,你考虑事情会更加全面,会把所有的可能性都考虑在内评估一下每种情况下应该做什么,以怎样的优先级顺序去做,明白什么才是当务之急。很多成年人都不一定能分得清事情的轻重缓急,这个技能要是提前教给孩子,他能获益终身。

那迷宫游戏里怎么用这个“IF”语句呢?比如可以给小人儿下达这样的指令:“IF面前无墙,向前走,结束。”但对于一些需要小人儿转向的迷宫,那就需要下面这样的代码。

不需要电脑,IT工程师妈妈用迷宫让孩子Get编程思维!

图中的代码翻译过来,意思是:“若能左转,就向左转;否则若能右转,就向右转;再否则,若碰到了死胡同,则转180度。排查过所有情况后,向前走。重复(repeat)。”

红色代码“while”开头和红色代码“End”结尾,意味着是一个循环语句。只要小人还处在迷宫中,就会不停重复,然后执行一堆代码。一直重复这些代码直到走出迷宫才“End”。

这里还有一个ELSE语句。这就是一个优先级的顺序执行啦!“IF”后面跟的特定条件成立,就百分百执行IF部分的代码,后面的代码就废了,直接跳到“End”。

ELSE IF”语句指的是其后跟着的条件成立,并且之前出现的“IF”和“ELSE IF”之后的条件都不成立,就执行该“ELSE IF”部分的代码。

ELSE”指的是上述所有情况都不成立时,就执行该ELSE代码语句,我的麦片配冰淇淋晚餐就是这种情况。

蓝色“END”意味着“IF”条件语句的结束。

难度等级4——随机数字产生器函数

 

虽然等级3会让孩子们觉得自己很厉害,但是换个迷宫,这套“代码”可能就没用了。而且很有可能小人儿会被卡在“无限循环”中,一遍又一遍地重复着同一个行为,无从逃脱。这时候,如果引进一个随机数字产生器,让小人儿走出任何迷宫。

如果在程序中给了“向左转”优先选择,也许小人会卡住,陷入一个死循环中,一直在同一路径中重复向前走、向后走。要解决这一问题,但又能不引入诸如存储变量一类更为复杂的概念,这时候可以利用随机数字产生器移除优先选择项。

例如,不说“若能左转,就向左转”,取而代之,我可以说“若能左转,一半情况下向左转”。这个“一半情况”就是随机数字产生器函数,简单点就是扔骰子可以代替。引入随机性这一概念后,小人走的可能不是最符合逻辑的一条路,但是他也不会陷入死循环。

我“认为“这是一个适用于所有迷宫的可能的代码之一(如下图所示),但这并不是唯一“正确”的答案,可能也不是最佳正解。 在你家孩子尝试用自己的代码解决问题之前,我不建议你把该代码展示给孩子。 编码就是一个不断试错的过程,在程序员思考出新的可行代码前,一遍又一遍的试验和检测是必不可少的。

不需要电脑,IT工程师妈妈用迷宫让孩子Get编程思维!

四个等级都完成后,心智最成熟的孩子将会认识到:要是他们的乐高小人儿能记住自己走过的路,那他们就能系统前行,而不是漫无目的地瞎转了。这可能会引发有关更高级的编程概念的讨论,比如存储器和存储变量。

 

不需要电脑,IT工程师妈妈用迷宫让孩子Get编程思维!

 

这个游戏的价值就在于,孩子可以看到手头面临的特定问题,然后一步一步地让乐高小人儿走出迷宫。教会孩子从不同于自身坐标的角度思考问题。让孩子明白自己的左边和迷宫里乐高小人儿的左边不完全是一回事儿,就算是年龄最小的孩子也能学会转换坐标系的宝贵技能。

我们还可以通过这个游戏看到,如果能先让孩子了解手写“代码”,而不是机写“代码”,从数学的角度去真正了解编程,了解计算机,那么,孩子就能了解到所有编程语言共通的那一部分,为今后的编程学习打下非常好的基础。

好了,赶紧和孩子一起体验一下吧~

不需要电脑,IT工程师妈妈用迷宫让孩子Get编程思维!

 

分享到: 更多 (0)