教你怎么不花钱

给孩子入门少儿编程

(上)

不知道最近大家有没有看到这条新闻,华为天才少年稚晖君选择放弃百万年薪,离开华为自主创业。

当我们为孩子的前途担忧时,别人家的孩子已经可以在大厂百万年薪和创业当老板之间自主选择。

其实稚晖君并非计算机专业,却在大二时接触到了计算机科学相关课程,从此改变了人生。

回到自家娃,我们肯定不能拿这个标准要求孩子,给孩子压力过大,但纵观各大学科,编程教育和未来的职业能力颇为挂钩,如果能掌握一些这方面的技能,不说年薪多高,但有一技之长,至少能有稳定收入。也能更好地适应人工智能的时代,理解我们身边日新月异的科技变化。

不过,很多人对编程这件事情,有模糊的概念但又有点无从下手,机构学费又很贵,怕交了费孩子学习效果不好,无法轻易给孩子报名。


这篇就会跟大家说说,在日常生活中怎么潜移默化提升孩子的编程思维,不花冤枉钱,甚至不花1分钱,就给孩子编程启蒙。

培养编程思维,并不是非要去找个地方,报个大课包才能学,今天我们以日常的例子抛砖引玉,说说不花钱就能埋下兴趣种子、寓教于乐的学习方式。

编程往往被说得非常高大上,让很多家长听完后觉得晦涩难懂,其实编程思维并不复杂,这个名词也许是个新事物,但是这一类思维能力却是新瓶装旧酒,更多地被包含或者归类于数学思维、逻辑思维能力中,比如,如何拆解问题,如何处理问题,如何求最优解等。


生活中有趣的编程概念

有次周末出门放风,带我家孩子去外边,过马路时,问他:“红灯后面是黄灯,黄灯后面是绿灯,绿灯后面又会是什么呀?”他很有兴趣地进行了观察,然后告诉我又是红灯。

“循环”这个编程中最高频的词之一,其实在生活里随处可见。“红绿灯”就是我们身边的“循环”的例子。

其它涉及循环的概念还有很多,比如,周一到周日、一月到十二月、春夏秋冬四季,这些都是可以跟孩子讲,而且孩子也能懂的。

看了身边的例子,大家是不是已经放下一些孩子无法理解编程的刻板印象了呢?下面举例子,说说一些编程思维启蒙的核心。



编程思维启蒙核心之一:

拆解

先来一个经典的脑筋急转弯问题——“把大象放冰箱里,需要分几步呢?”

图片
可以分为三步:第一步,打开冰箱;第二步,把大象塞进去;第三步,关上冰箱门。

“那再把长颈鹿放进冰箱需要几步呢?还是三步么?”

多出来一步——要先把大象从冰箱里面拿出来。别看这个脑筋急转弯,难度很小,其实对应的思维能力是比较高级的。

再来个大家生活中的例子:吃饭。

01 准备工作

“想要满满一桌子好吃的菜,得先干啥?”  对,爸爸妈妈先得去买菜。


02 中间步骤

“菜是生的不能直接吃,怎么办呀?”  对,要把它们烧熟,那烧熟前还缺什么呢?对,要先把它们洗干净,切好,才能下锅炒。

03 最后成果


最后才可以吃上一桌丰盛的饭菜。

我们可以带着孩子,从准备食材开始,讨论每个具体步骤,理清每一个小任务,其实就是在无形之中教孩子如何把一个大的任务,“拆解”成各个互相有一定关系的小任务,掌握拆解的思维方法。

如果编程相关的逻辑思维能力,是一棵大树的话,基本的拆解能力就是大树的根基,是最底层的能力之一。

一个任务不论多复杂,都得“拆解”。



编程思维启蒙核心之二:

排序


说到“排序”,大家肯定都挺熟悉,比如,比东西的大小,按照高矮个子排队等等。不过编程思维中的“排序”概念,相对于“比大小”范围要更广。

将问题“拆解”成小任务后,再理清小任务之间的关系,是广义上的排序概念,它包含因果联系、时间顺序、空间顺序等等。这可能有点抽象,我们还以烧饭为例子,继续说下怎么教育孩子。

因果联系

因为我们等到水烧开了,所以我们可以把饺子放下锅;

因为我们看到饺子浮起来了,所以我们判断饺子熟了,可以捞起来。

时间、空间顺序中常见的顺序关系

就算是随手炒个小青菜,也要经历买菜、择菜、洗菜、切菜、下锅、加调料、装盘子等一系列小任务,它们都是按照一定顺序来的。

带孩子出门爬山时,可以讨论下,要登到山顶,要经过哪几个必经点,其实按顺序依次到达,就可以登顶。

聊聊这些,能潜移默化地提高孩子解决问题的底层思维能力。



编程思维启蒙核心之三:

迭代

前面说的拆解和排序能力决定了问题能不能被解决。“迭代”则是决定问题解决得好不好,是不是最优解。

所谓迭代,听起来有点难懂,举个生活中的小例子,大家就能理解了,等水烧开的过程中,去切菜,而不是等水烧开,再去切菜,两种做法结果相同,安排不同,经过优化迭代,花费的时间会更少。

平时休息的时候,我们可以让孩子试着规划自己一天,让他自己找到如何让自己在相同的时间内,去更多的地方玩,获得更多的快乐呢。

喜欢去动动脑筋,爱去思考哪里能更“省力”,这能培养孩子的钻研精神。

其实,说到真正的编程思维,目前学术界主流的观点是分为四个类目,分别是分解,抽象,模式识别和算法,其中对于启蒙阶段的孩子,主要还是聚焦在问题的分解上。抽象能力、模式识别和算法相关的内容,要等孩子有一定认知基础后再接触。

学习哪种语言是由小朋友的年龄,认知发展阶段,抽象思维能力来决定的,需要阶梯式循序渐进,一定要从最简单的语言学起的科目。

如果想要让孩子再进一步深入到编程中,觉得日常的启蒙并不足够,没关系,其实还有很多免费的工具可以用来让孩子进一步入门少儿编程,在下期总结给大家!