大人编程看薪水,孩子编程看兴趣。
有很多科技界的伟人和名人从小开始学习编程,如乔布斯11岁开始编程,创办了苹果公司,成为一代传奇领袖;比尔·盖茨13岁开始编程,创立了微软,31岁成为世界首富;扎克伯格10岁开始编程,高中开发的程序被50万美元收购,创立了Facebook,市值曾经突破4000亿美元;埃隆·马斯克10岁开始编程,12岁设计了名为Blastar的游戏,2004年创立了特斯拉公司。
尽管我不认为每个人都需要精通编程,不过我总鼓励身边的朋友在有空的时候学习编程,学习一些基本的逻辑分析技巧和程序排错思维。学习编程并非是为了成为程序员,而是培养人冷静的思考方式和严谨的逻辑化思维。要有冷静的思考方式,程序行为对与错的最终判定者是计算机,无论你怎么信誓旦旦地说自己的程序没问题,错了就是错了,不为人的主观意念所左右;要有严谨的逻辑化思维,程序里处处都是因果,环环相扣,因而需要思考各种因和所导致的各种果,需要全面思考、清晰分析。
学习编程对孩子的帮助很大,可以归纳为以下10点:
1 强化孩子的逻辑思维能力。
编写程序最重要的是如何把大问题不断分割成小问题。
如同计算这个加法题:9+8+7+4+5+9=?,如果你不能看一眼就得到答案,那么可以将它拆解成9+8、+7、+4、+5、+9五个加法题一个一个解决。
在编程中,孩子要思考如何把代码合理地安排在整个程序中,让程序流畅地处理输入、演算、输出,这个过程对孩子分析事物的逻辑性有极大的帮助。
2 培养孩子的专注力和细心度。
修改Bug是每一个编写程序的人的必经之事,无论是大人还是小孩都不例外。有时只是少输入了一个字母或在某一行末尾少了一个分号,就会造成程序大乱,更别说逻辑分析问题上忽略的某种状况和陷阱。所以,在编写程序的过程中,排错是无法敷衍了事的,这个过程能有效改正孩子马虎行事的毛病,避免当一个“差不多”先生。
3 提高孩子的耐心。
当父母的一定遇到过这种情况,带孩子去吃饭,孩子怎么也坐不住,总是跑来跑去,到处吵闹玩耍。这时,有的人会拿出手机当作游戏机,孩子的注意力瞬间就会被拉回来,开始安静地坐在位置上玩耍。以游戏项目作为课程就是运用这种特性,让孩子在游戏中学习,寓教于乐。但是编写游戏和玩游戏有很大区别:编写游戏可以很好地锻炼孩子延迟满足感的能力,提高耐心,从编写游戏到玩游戏需要经历一个比较长的过程。同时,学会编写游戏的小朋友会在游戏过程中融入更多的思考,游戏视角会有明显变化。
4 增加孩子的抽象思考能力。
其实学习编程就像学习外语一样。如果说学外语是为了跟外国人沟通,学习程序就是为了跟计算机沟通。更有趣的是,你碰到外国人不会说外语还可以用手比划,跟电脑可不行。这意味着孩子在学习的过程中需要一种化具体为抽象的能力,让程序能够按照孩子想象的方式运行,这是集思广益的过程。让孩子发挥无限想象并动手实践,让不懂得思考的电脑也能了解与表达抽象的事物。
5 提升孩子整理信息、融会贯通的能力。
程序是一堆电脑指令的组合,好比上小学时我们查字典学汉字、学成语,之后学习如何利用习得的汉字、成语组成句子,进而撰写文章一样。程序中的基本指令就像是汉字,可重复利用的方法或对象就像是成语。最终要完成项目,就必须融会贯通、学以致用,确保程序在执行中不会出现不可预期的错误。
6 提升孩子国际性的沟通能力和竞争力。
显而易见,现在哪一个行业可以不用电脑?如同先前提过的,编程语言已然成为一种重要的沟通工具,不但可以跟电脑沟通,还可以跟所有运用电脑的人沟通。孩子在幼时接触的环境往往跟以后的发展有极大的关联性,如果不想跟世界脱轨,那么最好尽早让他们了解程序或编程是怎么一回事,培养他们面对国际和未来竞争的能力。
7 让孩子学会团队合作和共同学习。
在适当的教学课程设计下,学写程序就像玩游戏闯关一样,同学彼此讨论破关攻略。结对编程,你不会,我教你;我卡关,你帮忙;我设计,你闯关。同时,在互动中增进情谊,学习如何利用团队的力量解决问题。比起老师在讲台上单方面的讲课,同学之间的探讨更容易提高学习效率。
8 训练孩子的空间思考能力。
在编程中,控制游戏人物的过程是训练空间思考能力的一个很棒的方式。仿佛孩子自己在高低起伏中身陷迷宫,在闯关角色中置身于编程世界,在游戏中学习,明白方向感和立体的空间架构。
9 增进孩子解决问题的能力。
面对一道道关卡的挑战,孩子会不断思考如何利用学到的知识、程序达到闯关的目的。一旦养成这样的习惯,在碰到生活中或其他课业的问题时,自然会试着自己解决。父母只要给予适当的工具和提示,让孩子自己动手、动脑去完成。
10 Learn to code, code to learn。
学习编程,训练编程的思考方式(Computational Thinking),如同学习阅读一样,在知识爆炸的时代,这是一种基本的能力。我们从小学习怎么阅读,并用阅读学习更多知识;而从小学习怎么写程序、控制电脑,了解的是一种新的学习方式,并且在学习写程序的过程中,刺激孩子的学习积极性。父母再也不用逼着孩子学习数学,因为当他要完成按钮、人物、得分、方向的同时必然需要用到许多数学的技巧,让孩子在编程的同时自主学习。另外,还可以提高孩子的英文能力,编程让接触英文成为自然而然的事情。其他的科目(如音乐、艺术、文学等)一样可以运用在编程的过程中,也就是我们所说的code to learn。
Scratch是一种全新的程序设计语言,你可以用它很容易地创造交互式故事情节、动画、游戏,还可以把你的作品分享给其他人。开发者表示,这种电脑编程语言的目的是帮助孩子发展学习技能,学习创造性思维、学习逻辑思考以及学习集体合作。MIT(麻省理工学院)媒体实验室的博士生凯伦·布雷南是Scratch项目的负责人,他说,“我们的目的不是要创办电脑程序编写大军,而是帮助电脑使用者表达自己”。
Scratch不是游戏,而是一款可以制作实用工具、文艺作品、游戏、动画等的编程工具。一旦掌握了这个工具,孩子们就能自由自在地挥洒他们无限的创意,享受创造的乐趣。Scratch由麻省理工学院媒体实验室开发出来至今,美国有超过100万的孩子在学习。而在中国台湾,中小学生的信息化课程是以Scratch为主的,也有许多Scratch教学网站。教育部门每年都会举行程序设计比赛。中小学通过Scratch扩展了语文、数学、外语、音乐、体育、科学等教学的深度。
Scratch与Java、Python、C、C++、C#不同,因为它的形式不是基于文本的,而是一种可视化的图形编程语言。无须输入任何复杂的命令和代码,孩子要做的仅仅是像搭建乐高积木一样搭建图形化的程序块。对于孩子来说,这样的编程模式可以完全避免语法错误,使其更注重逻辑思考和程序化的分析。
下面通过小例子看一看Scratch程序块是如何搭建的。
在模块区的外观模块中,找到 说 积木块。
单击运行 说“你好!” 积木块,运行结果:小猫咪说“你好!”。
下面这个例子稍微复杂一点。
用一段小程序出一个考题 “1+1等于几?” ,通过程序判断你的回答是正确的还是错误的,分别给出正确答案和错误答案,看看程序返回的结果是什么。
下面简单地讲解这个程序的积木块组合,逻辑思考部分在这里暂不涉及,将会在后面的章节详细讲解。
01 从侦测模块中找到 询问 积木块。
02 将积木块中的英文修改成“1+1等于几?”,然后将积木块拖曳到脚本区。
03 从控制模块中找到 如果,那么,否则 积木块,拖曳到脚本区并拼接在 询问 积木块的下方,凹槽与凸槽相结合。
04 从运算模块中找到 等于 积木块,并将它移动到脚本区 如果,那么,否则 积木块的方块框中。
05 在侦测模块中找到 回答 积木块,拖曳放入 等于 积木块左边白色椭圆框中,在 等于 积木块右边白色椭圆框中输入数字“2”。
06 从外观模块中找到 说 积木块,将“你好!”改成“回答正确!”,然后拖曳到“ 如果,那么,否则 ”中间。
07 重复第6步,将“回答正确!”改成“回答错误!要好好学习!”,然后拖曳到“ 否则 ”里面。
08 单击脚本区的整个积木块,小猫咪出了一个考题“1+1等于几?”,等待你的回答。
如果你回复的答案不是2,小猫咪会告诉你“回答错误!要好好学习!”。
如果你回复的答案是2,小猫咪会告诉你“回答正确!”。
这就是Scratch编程,是不是很神奇,很有趣?
看到这里,说明你是一个好学的小朋友,如果你是一个还没上三年级的小朋友,那么要叫上爸爸妈妈和你一起学习;如果你已经上了三年级,现在就开始学习吧!
相信你一定会爱上编程的,因为在这里没有枯燥的学习,只有一个个游戏。就像我们玩植物大战僵尸和愤怒的小鸟一样,把整个学习过程分解成一个一个的游戏关卡,然后奋勇向前闯关通关。
先看一个一个的单积木块,从动作模块到复杂积木块都需要不断尝试,单击运行积木块并观察舞台和角色的变化,并且了解每一个积木块在程序中所起到的作用。
1 需要知道每一个积木块所在的位置,但不是一个一个死记硬背。在编程中一定不能死记硬背,要理解性记忆,通过尝试、观察、修改、比较掌握每一个积木块的作用。
2 理解每一个模块所对应的含义,然后有针对性地寻找积木块,在这个过程中就会很自然地记下所有积木块的位置和功能。
3 暂时略过那些看不懂变化也看不懂书中解释的积木块,不需要着急,因为有些知识你还没有学习到。例如,运算模块中的平方根,可能你还没有学习到它的相关知识,可以先跳过这块的学习。到后面结合课堂学习,再回过头来体验之前不明白的积木块。
4 挑出你能明白作用的积木块,尝试修改其中的一些参数,再观察会有什么变化。
5 掌握了单独积木块的作用后,尝试将自己熟悉的积木块组合到一起,再观察有什么神奇的变化。
6 最后有针对性地选择积木块,并将其组合到一起,实现自己的想法。
“右转15度”积木块 的学习方法
1 阅读——积木块上的文字 右转15度 。
2 猜测——这是让小猫咪右转。
3 尝试——单击积木块,看看小猫咪有什么变化。
4 观察——小猫咪旋转了。
5 修改——修改积木中的数字15,继续观察。
6 总结——这是一个控制小猫咪右转的积木块,数字越大,小猫咪旋转幅度越大。
组合积木块 的学习方法
将“说你好!”积木块、“重复执行10次”积木块、“右转15度”积木块组合在一起。
观察小猫咪从单独积木块到组合积木块的变化。如果你已经可以自由组合积木块,并且可以达到你想要的效果,那么恭喜你已经入门了,基本掌握了简单的积木块。下面需要仔细地跟随章节内容制作一个个小游戏,培养逻辑思维能力。注意要多思考、多观察、大胆猜测。
如果你是一位家长,想教孩子学习编程,那么首先要把自己当成孩子,看完1.3节,掌握每一个积木块,做一个博学的家长,然后摇身一变成为一个好玩伴。
如果你教导的孩子还没有上小学,那么建议让宝宝通过“编程一小时”或者Scratch Jr学习。如果你的孩子已经在读小学了,那么按照书本章节的内容顺序学习就可以了,后面的章节都是以孩子的视角书写的。在教学过程中需要特别注意,在你看来十分简单的程序和过程,对于孩子来说或许并不简单,所以需要更多的耐心。收起你家长的角色,此时此刻你不是老师也不是家长,而是孩子的一个玩伴,陪伴孩子一起探索程序的奥秘、感受程序的神奇、体验游戏的乐趣。在教学过程中,不能用理念灌输,应该更多地演示,并让孩子自己动手修改程序,观察通过修改所带来的变化。
慢动作,不断单击外观模块中的 下一个造型 积木块。将看到小猫咪的样子不断在两个图片中来回切换,就像奔跑一样。
让孩子自己动手尝试这个积木块,感受积木对角色的作用。
然后提出问题:为什么会有两个造型,为什么只有这两个呢?
再带孩子来到造型界面,观察小猫咪拥有的造型,可以看到小猫咪有两个造型。
在造型界面,让孩子分别单击两个小猫咪造型,观察舞台中小猫咪的变化。
多次对比不同方式的单击带来的效果,让孩子明白原来 造型切换 就这样。
如果你是一名少儿编程老师,相信在程序知识方面就不需要我多说什么了。如果对程序还不是特别了解,那么可要下苦功夫了。自己拥有丰富的程序知识,才能更好地传递给孩子。但是只有丰富的程序知识还是远远不够的,如何将知识通过最好的方式让孩子接受更为重要。像给成人上课一样去解释坐标、变量、比较、判断等,孩子一定是两眼发呆地看着你,而不知所云。
对于编程的教学,我的建议是将自己的知识储备尽可能地放空,达到和孩子一样的知识量。然后在课堂上运用思维方式,和孩子一起去探索学习新的知识。因为真正要学习的更多是思维方式,而不仅仅是编程知识。
孩子的学习更多的是“知其然,而不知其所以然”,让他们理解这个事情为什么会这样,不只是纯粹的概念解释和灌输,保持孩子对世界的好奇心、想象力以及创造力很重要。所以,这需要我们站在孩子的视角思考问题、看待问题,减少书面式的告知,让孩子尽量动手尝试,去改变、去创造。
以项目为向导,完成一个个项目,在带给孩子学习的乐趣、活跃课堂气氛、吸引孩子注意力、让孩子融入其中的同时达到锻炼逻辑思维的效果。
在课程中加入更多角色,如奥特曼、铠甲勇士等动画片里的角色,相信孩子们会兴趣大增。
小朋友们,你们玩过植物大战僵尸吗?僵尸群里面哪个僵尸最厉害呀?这样两个问题下来,小朋友们一定可以热闹地进入联想。现在我们就用程序控制僵尸走路,首先添加小朋友们认为最厉害的僵尸角色(老师需要在电脑文件夹里准备3、4个僵尸角色,不能过多,否则孩子会选择困难)。
拖曳 移动10步 积木块控制僵尸行走,小朋友们动动脑筋,怎么控制僵尸走快点或走慢点呢?老师想让僵尸转晕,该怎么办呢?发动你们的小脑筋去寻找合适的积木块吧!
当孩子知道旋转后,我们就该再次提问了,让孩子去思考。
1 老师想让僵尸向左旋转,该怎么办呢?
2 让僵尸向右旋转90度,该怎么办呢?
3 让僵尸不停顿地旋转,该怎么办呢?
4 让僵尸一边走一边旋转,该怎么办呢?
不要低估孩子的想象力和学习能力,你会发现孩子其实都能完成,而且似乎不需要你的提示。就像你只要给孩子一个iPad,他就能很快地掌握如何使用一样。孩子都有一颗探索和尝试的心,大人反而会担心这样按键是不是会坏,所以请不要阻碍孩子去摸索和尝试。教学要注重孩子逻辑思维的培养、解决问题能力的提升、思考方式的养成,而不是为了完成作品给家长一个交代。
STEM教育其实是基于标准化考试的传统教育理念的转型,更注重学习的过程,而不是结果。从本质上来说,要敢于让孩子们犯错,让他们尝试不同的想法,让他们听到不同的观点。与考试相反,我们希望孩子们有与众不同的想法,并且创造能够应用于真实生活的知识。
教学需要注意以下5点:
1 联系(Connect),注重学习与现实世界的联系。
2 建构(Construct),“做中学”,逐渐学习建模的思考和概念的形成。
3 反思(Contemplate),反思编程过程,更深刻地理解概念。
4 延续(Continue),应用到生活中,去解决一些实际问题,不断挑战和积累。
5 注重学习的过程,而非体现在试卷上的知识结果和作品展示。