经常有人在后台问果仁妈,要不要让孩子学编程?几岁开始学?.....
3月份的时候,童学馆分享过一篇编程启蒙避坑指南,从整体进行了探讨,并建议家长将小学作为学习编程的起点
其实除了编程语言,编程更需要的是逻辑能力。比如,描述、抽象并归纳问题;比如,把问题分解成能够精确、重复完成的小任务,等等。而这个能力,其实是可以从学龄前就可以开始培养的。
果仁妈今天的文章,就从编程的底层逻辑切入,探讨如何带孩子在玩和学中培养编程思维,并按照不同的年龄段推荐了一些编程玩具和网站文章浅显易懂,深入浅出,非常值得一读。
💻💻💻

 1 
编程,现代生活的魔法之源
许多小朋友,都有一个魔法梦。在那里,有可爱的精灵,有神奇的魔棒,更有无所不能的魔法师。你是否注意到,现代社会的科技发展已经让这些“魔法”变成了现实?
比如,谷歌的Google Home,苹果的Siri,还有小度、小爱、天猫精灵等各类智能家庭AI,就像一名永不疲倦的魔法管家,为你处理各种个人事务。
手机和移动通信技术的发展,已让我们能够通过一块轻巧的玻璃板获知天下事,还能和千里之外的朋友面谈。
增强现实(AR)和混合现实(MR)技术的普及,更是架起了连接魔法与现实世界的桥梁,挥挥手就能纵览悬浮在空中的文件报表,指指点点,口中念念有词,就完成了一份PPT!
👆微软 HoloLens 混合现实眼镜,图 | microsoft.com
是的,这些都已经是现实了,大人的魔法世界还真是……有点枯燥呢。
著名科幻作家亚瑟·克拉克在1973年就提出过:“在任何一项足够先进的技术和魔法之间,我们无法作出区分
可以说,我们现在都活在一个全新的魔法时代,使用着“魔法师”制造的“魔法物品”,见证着一个又一个的奇迹。
这一切的基础,现代社会的魔法之源,就是由人编写,由计算机执行的各种程序。编写这些程序的过程,也就是俗称的“编程”。
 2 
编程很有用,难学吗?
计算机和相关的信息系统已经成为了新一代的公共基础设施,未来的学习、工作和生活中,需要用到编程的地方越来越多。计算机快速而准确的计算能力能够高效地处理许多实际问题,使能够驾驭它的人如虎添翼。
此外,国务院2017年就已印发了《新一代人工智能发展规划》,国内许多省、市都正逐步将编程教育、智能教育纳入中小学的教育体系。如果能够在更轻松、活泼的环境下接触并熟悉编程,也能为未来的升学做好准备。
最后,在个人成长中,编程学习过程带来的分析能力、组织能力、逻辑思考能力的锻炼,也有助于培养孩子动手动脑能力,能为将来系统性地学习科学知识打下良好的思维习惯基础。
也许有的家长看到这里就忍不住开始焦虑:“编程啊,那不是只有那种修电脑的技术宅们才会的?要成天面对一行行密密麻麻的蝌蚪文,这怎么能学得来呀?”
请务必放心,其实编程不是什么高深莫测的天书,它本质上和你在手机上设了个闹钟差不多——也就是给电脑下达了一个命令,让它帮你完成某个特定的任务
只不过在手机上你是通过按钮指定时间发出提醒,而编写程序的时候你是通过一个编辑器,按照特定的规则,告诉电脑你要它做什么事。
和大多数人的直觉相反,这其中的“编辑器”和“规则”倒是次要的,真正关键的是知道自己应该如何告诉电脑该做什么——也就是学会“编程思维”。
只要掌握了这一点,一切都能触类旁通了。
 3 
编程思维又是啥?
电脑能理解的“工作”或“任务”,和人们通常思考的方式不太一样。
对于目前的电脑而言,它最擅长的是直截了当的读取、计算、存储工作,比如打开文件读取信息,按照公式对数字进行计算,将计算结果保存到文件里等等。此外,它还能快速而精确地将某个已知任务重复上许多次。
当然,随着人工智能领域的发展,电脑也逐渐开始拥有处理模糊概念、语义识别甚至一定程度上的预测分析之类的“高级能力”,但这一切归根结底还是建立在精密的数学和逻辑基础之上。
就目前而言,要驾驭我们日常接触到的编程语言,还是需要从这些直截了当的小任务入手。
为了让电脑能够“看懂”,人们将复杂的任务分解、组织成一系列小任务,让电脑运用强大的运算能力快速、多次地完成这些小任务,从而搞定整个复杂任务。
在这一过程中,描述、抽象并归纳问题是根本,把问题分解成能够精确、重复完成的小任务是手段,通过不断寻找、发现、解决问题,最终将看起来困难的工作转换成一系列已知问题,并加以解决。
这种分解、组织,并合理协调的思维方式,就是编程思维。编程思维的核心,就在培养和使用逻辑思维能力。
 4 
如何在玩和学中培养编程思维?


编程思维的核心——逻辑思维能力,其实从小就可以培养。
当然,三岁及以下的婴幼儿来说,要领会这些抽象概念和逻辑思考能力还是太早了点,甚至幼儿园中班的孩子也不一定能够掌握
所以,各位家长也不必强求,起码要等孩子明白“规则”、“指令”和“目标”的概念,有一定的思考解决问题的能力,再开始接触编程相关的游戏、教程也不迟
利用各种插电、不插电的游戏,锻炼孩子们思考、分析目标问题,分解规划解决方案,排查纠正误差的能力;通过成功解决问题的成就感和获得感,推动他们不断积极探索,培养编程思维。
下面根据个人经验,为不同年龄段的孩子,推荐一些能和家长一起玩的有趣编程游戏。
4-6岁
 1 
桌游《机器乌龟》
Robot Turtles
适合年龄:4岁+
👆图 | amazon.com
机器乌龟是一名计算机工程师设计的益智桌游,他的初衷就是用这套桌游教自家的娃儿学习编程游戏本身不太复杂,但很能体现编程所需的逻辑思维。
游戏中包括44张写有不同命令的卡片,由主持人(家长)设置棋盘内容,布置关卡,孩子们选择各种命令卡片,控制乌龟在棋盘上行动,穿越障碍,获得宝石。
我个人最喜欢的部分在于,游戏中还有一套特殊的“青蛙卡”,用一张青蛙卡可以代表一套需要重复使用的指令序列,方便在主序列中多次使用同一套指令——这是对编程中“函数”这一重复利用思想的绝妙体现
 2 
桌游《奶酪在哪里》
Mouse Mani
适合年龄:5岁+
👆图 | amazon.com
这款游戏可以看作是机器乌龟的回合制对战版本
同样是通过列出指令卡,控制角色(小老鼠)的移动,但每回合能放置的卡片数量是有限的,每个玩家需要投掷骰子,以决定当前回合能放置多少个指令。
游戏中,玩家还能互相给对方设置障碍,或是使用特殊卡片消除别人给自己设置的障碍,通过解决各种意料之外的麻烦,随机应变,才能收集到更多的奶酪。
 3 
点灯机器人·幼儿版
Lightbot Jr : Coding Puzzles
适合年龄:4~8岁
👆图 | amazon.com
这是一款支持iOS和Android平台的免费游戏,有简体中文版。玩家需要在有限的空间内设置各种移动、旋转、跳跃、电灯等指令,控制小机器人把关卡内的地灯全部点亮。
幼儿版的游戏关卡更简单,还有更多介绍和提示。函数和循环功能依旧保留,对于学有余力的孩子,依旧能玩出非常复杂的花样。
5~7岁
 1 
Scratch Jr
适合年龄:5~7岁
👆官方题图,图 | scratchjr.org
著名的图形化编程教学工具Scratch的幼儿版,支持iOS和Android平台,是一款免费软件。
ScratchJr 本身没有目标性很强的关卡,而是提供了一个能自由摆放各种角色的“舞台”,小朋友可以通过拖动、拼接命令方块,给舞台上的每个卡通角色编制程序。
👆游戏界面,图 | scratchjr.org
软件里提供了包括触发、判断、循环等控制选项,还有文字、录音等角色自定义功能,小朋友能尽情尝试,发挥自己的想象,让各种卡通角色表演一场舞台剧。
 2 
小鳄鱼的冒险
Crocro Adventure
适合年龄:6~12岁
👆游戏截图,图 | youtube.com
三星手机、平板的“儿童模式”中自带的一个免费游戏,只有Android平台,也是指令-过关类逻辑解谜游戏。
玩家需要在指令栏放置各种转向、移动指令,并按下运行键,控制主角小鳄和他的伙伴们穿越复杂的迷宫,取回丢失的甜点。
每个关卡都有指令使用限制,有些特殊障碍还必须调用小鳄和伙伴们的不同能力才能穿越。后期一些复杂的关卡,连成年人都得动一番脑筋才能过关呢!
 3 
Thinkfun“//CODE”编程桌游三剑客
适合年龄:8岁+
👆“//CODE”编程桌游,图 | thinkfun.com
这套桌游包含了三个面向不同方向的桌游:边缘地带(On The Brink)、探测器控制(Rover Control)和机器人修理(Robot Repair),每款桌游都能单独进行游戏。
它们分别以程序指令、控制结构、逻辑运算为主题,让玩家在游戏中熟悉模块化、循环计数、逻辑判断等编程思想,培养了分解问题、寻找重复规律、调试纠错等能力。
👆图 | thinkfun.com
这套桌游,每款都有40个关卡,基础规则简单易懂,上手快,但后期的复杂关卡可要烧脑得多,不单是孩子,连大人玩起来也颇有挑战性。
9岁+
 1 
《不插电的计算机科学》
适合年龄:9岁+
👆不插电的计算机科学主题页面,图 | csunplugged.org
这是一本开源的计算机书籍,里面含有21个无需用电脑就能玩的编程活动。分成六大部分,介绍了计算机科学方面的基本原理、概念,甚至一些著名的算法等,让大人和小孩都能边玩边学。
 2 
Scratch
适合年龄:8~16岁
链接:https://scratch.mit.edu/
👆Scratch控制积木,图 | scratch.mit.edu
Scratch是麻省理工媒体实验室开发的一套可视化积木式编程平台完全免费开源,支持MacOS、Windows、Linux系统的电脑,也支持Android平板,有简体中文。
和Scratch Jr类似,你只需要将代表各种变量、循环、控制指令的“积木”拼接在一起,就能控制角色在场景中进行复杂的动作。
和Scratch Jr不同的是,这里你用到的指令积木都能在真实世界的编程语言中找到对应,积木本身也支持复杂的嵌套、判断、触发和参数传递。
👆Scratch制作动画,图 | scratch.mit.edu
👆Scratch制作动画,图 | scratch.mit.edu
真正的编程语言
当孩子掌握了基本的英语单词(一般也不过就是40~50个词左右),熟悉了基本的编程思维方式,其实就可以放手让他学习真正的编程语言了。
这里我个人推荐人民邮电出版社出版的《和孩子一起玩编程(第二版)》,作者用风趣幽默的话语,深入浅出地介绍了编程的基本概念,给出了许多马上就能运行的好玩例子。
👆作者提供
附送的编程卡片上详细地注明了运行所需的代码,让不能独立阅读全书的孩子也能在大人的帮助下成功运行起自己写的程序。
👆作者提供
当我绞尽脑汁写出来的程序真的顺利运行之时,那种巨大的满足感是什么游戏都无可替代的。
最后,祝各位大朋友、小朋友们,都能在魔法世界里找到属于自己的乐趣!
- END -
作者丨欧剃,D&D骰子机器人,翻译爱好者,业余程序宅。
编辑 | 章鱼妈,一个2岁半男孩的妈妈,乐于研究各种育儿产品,经营个人公号「躲起来发呆」。
继续阅读
阅读原文