培养孩子的编程思维,在家就能做到
来源:用户上传
作者:
希望那些不够了解编程的父母,能够重新思考编程思维,明白编程思维是一个可以融入日常生活的理念。
不打算做程序员,也要学编程吗
尤马可能不是世界上最小的程序员,但他一定是最受瞩目的程序员之一。11岁的他,已经连续参加了两届苹果公司组织的WWDC开发者大会,因为他已经在苹果的应用商城发布了7款应用。6岁时,尤马开始自学编程,并感到很有趣;8岁时,他就开始编程给同学制作贺卡,还会因为找不到合适的餐厅突发奇想设计一款软件。他的灵感,总是来源于生活。
很多父母羡慕别人家的孩子,于是急匆匆地把自家孩子送到编程班去学习。先别急!虽然各种编程早教班很热,但热潮背后,更需要父母冷静思考。程序是为生活服务的,比如那些App可以使生活更便利。既然如此,孩子学习程序的目的,也是为了能够用一些工具,来解决生活中的具体问题。比如,我们如果把大的问题分割成小的问题,并且思考如何把代码合理地安排在不同的位置,通过怎样的设定输出什么样的结果……这个过程中体现出的逻辑分析能力,比编程本身更有价值。
所以,程序并没有大多数人想象的那么神秘,我们甚至可以把它想象成一个普通的学习过程。小学的时候,我们查字典学习汉字、成语,之后学习用这些字词造句、撰写文章。编程也一样,孩子明白了“指令”,再用“指令”的各种组合方式拼成一整套程序,都是类似的过程。
在这个过程中,体现的是孩子整合信息和解决问题的双重能力。因为这两项能力对孩子很重要,所以借由这两个基本能力衍生出的编程思维,才对孩子更有帮助。但是,让孩子了解编程思维,不一定非报学习班,生活中的游戏和亲子互动,也可以达到同样的效果。
优爸是一名资深程序员,可能是受到熏陶,他不到3岁的女儿优优居然理解什么是“计算机语言”。优爸工作时,优优拿着爸爸的手机当玩具,无意间按出了Siri,小家伙愣了。“抱歉,我没有听清楚您的指令!”机器人的声音让优优既恐惧,又好奇,她把手机还给爸爸,眼巴巴地等待爸爸的解释。
“手机和你说话呢!”优爸对优优说,“但是,它只能说很少的话。她可以和你打招呼、给你播放音乐、回答简单的问题……”优优听懂了手机的话,然后试着说出“唱歌”和“你几岁了?”这样简单的话,听到Siri的回答后,优优高兴得不得了。
为了让孩子更好地明白“指令”的含义,优爸说:“爸爸平时会对你说‘穿衣服’或者‘吃饭’,你收到信息后就开始做事。手机也是这样的,如果你用它听得懂的话和它说话,它就能回答问题。”
接下来,优爸把孩子带到客厅,用地砖当棋盘,和孩子玩儿起了“指令”游戏。优爸当指挥者,给孩子示范了“向前走一格”“向后走一格”“向左走两格”“向右走两格”等动作,然后指挥优优在棋盘里走动。优爸每发出一格指令,孩子就要执行动作。轮到优爸当棋子时,优优就试着模仿爸爸发号施令。
慢慢地,父女玩儿熟了基本操作,优爸就试着把游戏升级:“优优,爸爸站在这个格子里,你能指挥我去摸一下跑步机吗?”优优指挥着爸爸先往前走,再往左移动,走到跑步机前停下来,顺利地完成任务。优爸又升级了游戏,让优优试着发出更复杂的指令,比如“先倒一杯水,再给妈妈送过去”。刚开始,优优难免会设计错程序,也会下错指令,但是,看到爸爸没有朝着自己想象的方向移动时,孩子能够及时地修改自己的指令,最后指挥爸爸完成任务。
反复游戏的过程中,孩子真正地理解了自己“指令”和爸爸“行动”之间的关系,下达的指令也越来越明确,不仅锻炼了自己的表达能力和思考能力,也对“结构化程序思维”有了更深的体会。孩子哪怕不知道这是什么,但是,只要她体会过,就会懂得这种思考的妙处。
理解“条件句”,用更多的程序设计生活
足够细心的父母们会发现,孩子们的生活中,很多时候会用到“编程语言”。优爸拉着优优的手过马路,优优念起了儿歌:“如果是绿灯,请走过去;如果是红灯,请等一等……”优爸笑了,这不是编程中的“if”条件语句吗?这小家伙,居然也知道“条件”是怎么回事。
于是,优爸在经常玩儿的“棋盘”游戏中,增加了一些设置。他在一些格子中放置了障碍物,并且规定路过某种障碍物时的相应动作:如果遇到帽子,跳过去;如果遇到的不是帽子,就捡起来。优优很快理解了“条件”的概念,模仿爸爸在游戏中增加条件指令:如果遇到红色的东西,向右转;如果遇到绿色的东西,倒退一步。
经过改良的游戏,变得更有趣。优爸经常带着一群小朋友,在宽敞的地方玩儿这个游戏。每个人都有自己的条件设置,大家把所有的条件画在纸上,用简单的图标表示,小朋友也看得懂。谁在游戏中迷路了,就去看“游戏手册”,或者在大人的帮助下完成任务。每个孩子都很有热情,他们可以把自己的想法加入游戏中,亲自设计游戏,这种成就感是没有人能够取代的,这也是编程思维的魅力所在!
几轮下来,优爸被孩子们的创意打动,他们不仅会设计“if”语句,表示如果某个小朋友做什么动作,大家都要做同样的动作。孩子们还会设计相反的动作,一个小朋友居然说:“如果我站着,你们就要蹲下;如果我蹲下,你们就要跳起来!”这个细节让优爸相当惊讶,能够设计出这样的游戏,证明孩子已经理解了條件的含义。有时候,游戏结果和孩子们设想的不一样时,他们会主动改变条件。看似在修改游戏,其实是在修改自己的思考方式。在一次次修改中,他们的思维更加灵活、缜密,也更有逻辑性。
有一天,优爸意外地发现了编程思维的另一个好处。在编程中,有一种程序模式叫作顺序执行,就是将命令一条条地依次去做,直到执行完。这个理解起来容易,做起来却有难度。比如,我们会发现,幼儿园阶段的孩子,每天早晨如果没有大人帮忙,都会非常忙乱。不是忘记刷牙,就是忘记带书包、水壶。优爸和孩子玩儿编程游戏时,突然想“为何不把每天早晨要做的事情设计成一个顺序执行的程序呢?”想到这儿,他先画了一个大人版的流程图,列举了大人每天早晨要做的几件事,按照顺序画给孩子看。其中,他还故意画错了一步,问优优:“你看,这是每天早晨妈妈要做的事,你能找出这个过程中的错误吗?”
优优看了看,对爸爸说:“妈妈说起来第一件事是去卫生间上厕所,然后是刷牙!所以不能是先吃饭后刷牙。”孩子能明显地指出“bug”,证明她懂得什么是顺序执行。而且,她有时能够记住妈妈的点滴吩咐,只是不能把所有的事情统合起来思考,往往会有漏洞。所以,大人的任务就是要修补一个个漏洞,辅助孩子将程序执行得更好。
优爸先是用画图的方式,把早晨要做的事画出流程,然后邀请优优在铅笔画上涂色,加深印象。最后,他们一同把这幅画贴在儿童房的门上,孩子起床后第一时间就能看到,然后自然会开始行动。用编程整理忙乱的早晨,原来这样简单。
希望那些不够了解编程的父母,能够重新思考编程思维,明白编程思维是一个可以融入日常生活的理念,是可以通过反复设计优化,把生活变得更有趣的一项工具。
转载注明来源:https://www.xzbu.com/1/view-14733464.htm