英国在2014年发布的教育大纲中规定,5-16岁的中小学教育中计算机编程列入必修课程。在英国的计算机课程中,包含了计算机课程、信息技术、数学基础等三方面,在课堂中系统地培养孩子的计算机知识和编程能力。

当英国孩子在学计算机编程时,我们的孩子在学什么?-少儿编程教育网

反观我国,中小学的计算机教育还停留的打字上,教师的能力也十分欠缺,没有办法开展更深入的计算机科学教育。我国的中小学计算机课程急需改革,要将计算思维作为核心主线,培养孩子的计算思维和创造力。

中小学阶段的计算思维教育,主要还是教会孩子从计算机的角度去看问题。也就是说,面对问题时,他们需要考虑这两点:如何让计算机帮助我解决?计算机是以什么顺序和方法解决这个问题的?要锻炼这种思维方式,不仅是在电脑课上学编程,还要鼓励孩子多将它应用到其他学科和实际生活问题的解决当中。

当英国孩子在学计算机编程时,我们的孩子在学什么?-少儿编程教育网

那么,计算思维教育如何贯穿到中小学课程教育中去呢?

1、算法设计

用简单的话来说,算法就是用一个步骤、一个步骤的指令去完成某件事,或者规定某种情况运行的规则。一份食谱、一组舞步动作、一个话剧脚本,这些都是广义上的“算法”。教孩子“算法”,就是在教他们思考:当计算机或者孩子自己要去某件事、解决某个问题时,都需要哪些步骤?

计算机科学面临的日常挑战之一就是找到更高效的算法(即使是针对同样的问题),举个例子,将它应用到课堂中,每天上学、放学时分,时间紧张,上学时爸爸妈妈催,放学时自己在教室待不住,但要做整理书本、记录作业、理清一天的事情等等一堆琐事儿,问问孩子,怎样才能最高效地度过?

2、逻辑推理

计算机最大的特点就是“确定性”,你给它什么代码,它就执行什么程序,你输入什么,就会得到对应的结果。因此,只要看看算法代码,孩子们就能够预测到计算机将要做什么事儿。让孩子们学会去预测代码运行效果就是一个培养逻辑能力的好方法。

在这个过程中,他们需要整合和利用已知信息,通过逻辑去推断结果。另外,当孩子们自己写程序时,代码中往往会出现很多小错误,需要不断地“debug”,进行调试。解决这些bug并不是靠运气或者偶然,靠的就是通过逻辑推断去“模拟运行”这段程序,看看程序跑到那里会出现问题。

3、分解问题

我的老同事曾经说过一句名言,如何吃掉一只大象?一次一口!其实,开发软件也是同样的道理。不管是解决问题还是开发系统,都需要把整个大项目分成很多小部分来一一击破,这样通过调用不同的函数、算法、对象等就能使这些问题很快得到解决。

这种分解问题的方法不仅用在编程中,孩子们不管是学习什么科目,或是在日常生活中碰到什么问题,都可以用上这个“套路”,很快就能理顺问题,提高解决效率。

4、模式认知

孩子们在学习一段时间的编程后也会发现,他们经常一次又一次地再写一些重复的代码块,程序员们往往把这叫做“模式”,也可以说是“通用解法”,它们就是标准代码库里每个人都能用到的那几行。

当孩子们在学习编程时,不免会学习并模仿别人写的代码,使用Scratch这样的编程入门软件让这一点变得很容易。而且,软件开发的大环境也是倾向于会开放源代码给编程爱好者们来改进测试的。孩子们会发现,编程里“模式”复制的这一套在每个学科里都很适用,不管是学语法造句还是学乐理编曲,这种认知模式可谓是文理通吃。

5、抽象思维

我认为,抽象思维是计算思维的核心。抽象思维是要让孩子们去抓取一个问题或者系统的核心或者主要架构,而不是过于纠结细节。孩子们在美术、建筑相关课程中接触到的管道示意图就是个很好的例子,它完全忽略了实地距离,只是强调了各节点的连接方式和走向。

孩子们在学习编程的时候,就需要这样抓着一条主干线,一开始可能是弄清楚自己要做什么功能,然后寻找实现的方法,至于如何表达数据,用什么硬件展示,如何提高CPU利用效率这些则都可以后续进行完善。有效的编程学习,就是这样从大的层面展开,再去调整细节,最后,孩子们将学会:既能顾全大局,又能有的放矢,粗中有细。

 

最后我想说,毫无疑问地,少儿编程教育将成为中小学教育体系中非常重要的一部分,孩子们从编程中学习到的计算思维模式可以辐射到各个不同学科领域。而且,学习编程还有一个很大的原因是它非常有趣,能给孩子带来成就感。无论如何,对于中小学生来说,学习少儿编程可能是进入计算思维最有效、最适合的方式了。