教你怎么不花钱给孩子入门少儿编程(上)——日常生活篇
给孩子入门少儿编程
(上)
不知道最近大家有没有看到这条新闻,华为天才少年稚晖君选择放弃百万年薪,离开华为自主创业。
当我们为孩子的前途担忧时,别人家的孩子已经可以在大厂百万年薪和创业当老板之间自主选择。
其实稚晖君并非计算机专业,却在大二时接触到了计算机科学相关课程,从此改变了人生。
回到自家娃,我们肯定不能拿这个标准要求孩子,给孩子压力过大,但纵观各大学科,编程教育和未来的职业能力颇为挂钩,如果能掌握一些这方面的技能,不说年薪多高,但有一技之长,至少能有稳定收入。也能更好地适应人工智能的时代,理解我们身边日新月异的科技变化。
不过,很多人对编程这件事情,有模糊的概念但又有点无从下手,机构学费又很贵,怕交了费孩子学习效果不好,无法轻易给孩子报名。
这篇就会跟大家说说,在日常生活中怎么潜移默化提升孩子的编程思维,不花冤枉钱,甚至不花1分钱,就给孩子编程启蒙。
培养编程思维,并不是非要去找个地方,报个大课包才能学,今天我们以日常的例子抛砖引玉,说说不花钱就能埋下兴趣种子、寓教于乐的学习方式。
编程往往被说得非常高大上,让很多家长听完后觉得晦涩难懂,其实编程思维并不复杂,这个名词也许是个新事物,但是这一类思维能力却是新瓶装旧酒,更多地被包含或者归类于数学思维、逻辑思维能力中,比如,如何拆解问题,如何处理问题,如何求最优解等。
一
生活中有趣的编程概念
有次周末出门放风,带我家孩子去外边,过马路时,问他:“红灯后面是黄灯,黄灯后面是绿灯,绿灯后面又会是什么呀?”他很有兴趣地进行了观察,然后告诉我又是红灯。
“循环”这个编程中最高频的词之一,其实在生活里随处可见。“红绿灯”就是我们身边的“循环”的例子。
其它涉及循环的概念还有很多,比如,周一到周日、一月到十二月、春夏秋冬四季,这些都是可以跟孩子讲,而且孩子也能懂的。
看了身边的例子,大家是不是已经放下一些孩子无法理解编程的刻板印象了呢?下面举例子,说说一些编程思维启蒙的核心。
二
编程思维启蒙核心之一:
拆解
先来一个经典的脑筋急转弯问题——“把大象放冰箱里,需要分几步呢?”
图片
可以分为三步:第一步,打开冰箱;第二步,把大象塞进去;第三步,关上冰箱门。
“那再把长颈鹿放进冰箱需要几步呢?还是三步么?”
多出来一步——要先把大象从冰箱里面拿出来。别看这个脑筋急转弯,难度很小,其实对应的思维能力是比较高级的。
再来个大家生活中的例子:吃饭。
01 准备工作
“想要满满一桌子好吃的菜,得先干啥?” 对,爸爸妈妈先得去买菜。
02 中间步骤
“菜是生的不能直接吃,怎么办呀?” 对,要把它们烧熟,那烧熟前还缺什么呢?对,要先把它们洗干净,切好,才能下锅炒。
03 最后成果
最后才可以吃上一桌丰盛的饭菜。
我们可以带着孩子,从准备食材开始,讨论每个具体步骤,理清每一个小任务,其实就是在无形之中教孩子如何把一个大的任务,“拆解”成各个互相有一定关系的小任务,掌握拆解的思维方法。
如果编程相关的逻辑思维能力,是一棵大树的话,基本的拆解能力就是大树的根基,是最底层的能力之一。
一个任务不论多复杂,都得“拆解”。
三
编程思维启蒙核心之二:
排序
说到“排序”,大家肯定都挺熟悉,比如,比东西的大小,按照高矮个子排队等等。不过编程思维中的“排序”概念,相对于“比大小”范围要更广。
将问题“拆解”成小任务后,再理清小任务之间的关系,是广义上的排序概念,它包含因果联系、时间顺序、空间顺序等等。这可能有点抽象,我们还以烧饭为例子,继续说下怎么教育孩子。
因果联系
因为我们等到水烧开了,所以我们可以把饺子放下锅;
因为我们看到饺子浮起来了,所以我们判断饺子熟了,可以捞起来。
时间、空间顺序中常见的顺序关系
就算是随手炒个小青菜,也要经历买菜、择菜、洗菜、切菜、下锅、加调料、装盘子等一系列小任务,它们都是按照一定顺序来的。
带孩子出门爬山时,可以讨论下,要登到山顶,要经过哪几个必经点,其实按顺序依次到达,就可以登顶。
聊聊这些,能潜移默化地提高孩子解决问题的底层思维能力。
四
编程思维启蒙核心之三:
迭代
前面说的拆解和排序能力决定了问题能不能被解决。“迭代”则是决定问题解决得好不好,是不是最优解。
所谓迭代,听起来有点难懂,举个生活中的小例子,大家就能理解了,等水烧开的过程中,去切菜,而不是等水烧开,再去切菜,两种做法结果相同,安排不同,经过优化迭代,花费的时间会更少。
平时休息的时候,我们可以让孩子试着规划自己一天,让他自己找到如何让自己在相同的时间内,去更多的地方玩,获得更多的快乐呢。
喜欢去动动脑筋,爱去思考哪里能更“省力”,这能培养孩子的钻研精神。
其实,说到真正的编程思维,目前学术界主流的观点是分为四个类目,分别是分解,抽象,模式识别和算法,其中对于启蒙阶段的孩子,主要还是聚焦在问题的分解上。抽象能力、模式识别和算法相关的内容,要等孩子有一定认知基础后再接触。
学习哪种语言是由小朋友的年龄,认知发展阶段,抽象思维能力来决定的,需要阶梯式循序渐进,一定要从最简单的语言学起的科目。
如果想要让孩子再进一步深入到编程中,觉得日常的启蒙并不足够,没关系,其实还有很多免费的工具可以用来让孩子进一步入门少儿编程,在下期总结给大家!