人人都应具备的“计算思维”

现在,社会上让孩子学编程的声音风头正劲,针对小年龄段孩子学编程的课也越来越多。不少爸妈对此难免疑惑:6、7岁甚至更小的孩子学编程到底能学到啥?学编程就是为了学会写代码吗?

其实,所有想让孩子接受编程教育的爸爸妈妈们都应正确认识孩子和编程教育,再判断孩子适不适合进行编程思维训练的培养,因为不是所有的孩子都适合学习编程,不是所有的编程思维教育课程都适合孩子。

编程教育的真正目的,并不是让孩子当“码农”,而是把代码背后蕴含的“计算思维”教给孩子——这才是孩子适应21世纪人工智能时代的必备技能。

01

什么是计算思维?

如何做出一盘美味的红烧肉?如何为学校附近一个经常堵车的路口设计合理的交通方案?如何破解人类的遗传信息?在互联网普及、人工智能快速演进的今天,每天有越来越多的人使用计算思维来解决它们各自面对的大大小小的问题。

计算科学已经无处不在——改变人们的工作、合作、沟通、购物、衣食住行、学习等,一言蔽之,就是改变了人们的生活,从艺术到科学政治,没有任何领域不受影响。

那么,什么是计算思维呢?

计算思维是数理思维发展到一定程度的高级形态,是把一个看起来困难的问题通过问题的分析分解、联想等方法,分解成一个个简单、具体的问题。它对人思维能力的要求相比数理思维要更高。

我们来举个例子:

假设在现在你需要为4人家庭做一餐晚饭,要求有汤有素菜有荤菜,你应该怎么做?

这个日常的生活问题就应用到了“计算思维”

1、分析问题——分析确定要做什么菜,要有肉、素、汤,列举要做什么菜,比如做炖鸡汤,西红柿炒鸡蛋、爆炒羊肉、白灼菜心等几个菜,这些菜需要购买什么食材;

2、规律、模式识别——明确几道菜的做法和规律,羊肉要爆炒,出锅很快,白灼菜心也是快手菜,炖鸡汤需要时间,小火慢炖,西红柿炒鸡蛋需要事先打好鸡蛋,时间适中,他们大多数都需要油、盐、葱等佐料。

3、将问题抽象化——为了避免菜凉,几道菜都要差不多时间出锅,所以需要将菜品制作按时间排序,抽象为排序问题

4、算法开发和执行——最后列明制作菜品的一些细节,化为清晰明确的流程并执行,切鸡肉、姜——炖鸡汤——切蒜、葱、羊肉腌制——打鸡蛋、切西红柿、洗菜心等等。

就这样,准备家庭晚餐的日常问题,就应用计算思维解决了。

计算思维的应用不仅仅在日常的工作和学习中用到,科学研究中也是必不可少。

拿人类的遗传信息来说,在计算机工具出现之前,人们其实就已经开始运用计算思维研究遗传信息问题了。

在孟德尔的时代,人们至连遗传物质是什么都还没有概念。然而,孟德尔将复杂的遗传问题分解成独立的稳定性状(比如豌豆种子分类黄色与绿色,表面光滑的圆粒和表面发皱的皱粒)。通过对具有不同性状的豌豆进行杂交,他从统计数据中发现规律(如下图),识别遗传的模式,最终得出一般性的结论,即抽象化:一对基因共同决定性状,基因有显性和隐性之分。

孟德尔通过杂交观察后代性状

当今天我们面对人类基因组的近2.5万个基因时,使用的先进测序方法和超级计算机与孟德尔时代的简单实验工具当然不可同日而语,然而我们解决问题的思路仍然与他很相似,即分解问题——识别模式——找到一般原理——形成算法

计算思维不是一门学科,而是一种解决问题的方法,这种思维是将问题分解,并且利用所掌握的计算知识找出解决问题的办法。无论你是学校的学生还是资深的职业人士,无论你进行科学探索,还是从事文学艺术创作,计算思维都能助你一臂之力。

02

如何训练计算思维?

与许多技能一样,计算思维最好是在上下文情景中教授和学习,嵌入到具体的课堂科目中去。

在我们也开发了相关课程(L2级别)中,课程采用项目制学习(PBL)的方式,在问题解决中运用包括模运算等各种数学工具,体会到数学在编程中的基础性作用,并养成使用计算思维解决实际问题的习惯,对复杂的任务进行多层次的分解、模式识别、抽象化和完成初步的算法设计。

以我们其中一节课“世界的水,我们的水”单元为例:

课程故事背景:

我们将从微观水分子的运动变化开始,跟随主人公小水滴一起探索地球上的三种水循环,利用水循环原理挽救干旱的庄稼,分析进行家庭用水的数学建模,比较不同节水设备的节水效率,反思我们的生活方式,提出生活中的实际节水方案。

小码精灵学员“凡宇”同学的作品“水循环”

任务内容:

在这节课里,孩子们要通过分析家庭的用水情况,用一定的方式(例如更换节能的用水设备等)来改善家里的用水情况。

在这个任务中,孩子们需要运用计算思维将问题进行分解。先要模拟家庭用水状况,同时将节水任务分解到水龙头、淋浴头、马桶和按钮等多个用水设备上,然后再在每一个设备上设计多个不同功能的程序,比如水龙头中主要有显示用水程序、商店显示程序和购买程序三个模块。

计算用水量的部分程序

计算用水量动画

在分解问题的同时,学生们通过观察和思考发掘数据中的规律和趋势,并进行合理抽象,也就是模式识别抽象化

比如,在购买程序中,是否能够成功购买马桶需要进行逻辑判断,产生分支结构,判断的依据是“是否在商店”和“是否有足够钱”,如果条件满足就演示成功购买的一系列动画,如果条件不满足就演示购买失败的动画等等。

购买节水设备的程序运行效果

学生将程序运行的机制最终用具体的计算机指令表示出来,也就形成了算法

从课程中我们可以看出,计算思维就是像计算机科学家一样“思考”(或解决问题)而编程学习是开发计算思维技能非常有趣实用的方法。

在贴近现实情景的任务中,学生通过不断使用计算思维攻克看似复杂庞大的挑战,他们将会逐渐获得解决问题的自信和能力,为当下的学习和未来的工作生活做好心理和智力上的准备。

看完这篇科普,爸爸妈妈们是不是对计算思维有了更深的理解?

(0)

相关推荐