当今世界已然是科技驱动的社会。谁拥有核心科技硬实力,谁就能掌握主动。从国家到个人,均无例外。
以往教学的重点常常集中于如何让学生了解、记忆现有的体系知识。而世界信息体系已经发生了巨大的变化,我们的教学不可一成不变,也应该随之变化。
不能再只是让孩子们了解和记忆已有的这些信息,而应该教会他们分析、处理这些信息,并把它们融会贯通地用起来。
如今的孩子们不应该再过多地死记硬背已有的知识,而应更多的去思考,去分析,去创造。孩子们要避免形成思维定势,要多锻炼将所学知识应用到解决现实世界问题的能力。
通过培养计算思维,小朋友们可以掌握如何分析新信息和处理新问题,会带来解决问题能力的提升。
1.什么是计算思维
小朋友们可能会问:什么是计算思维?是用来做计算题的思维吗?
为了回答小朋友的问题,我先问小朋友们一个问题:如何把大象装进冰箱里?(这是一个脑筋急转弯题目哦)
可能有的小朋友已经知道答案了,对了,答案就是三步:
第一步:打开冰箱门
第二步:把大象装进去
第三步:把冰箱门关上
这其实就是一个典型的计算思维的题目。
计算思维简单来说,就是把一个困难的问题分解成几个简单的小问题,然后再有序地解决这些问题。
其实,我们每天都在用计算思维解决我们生活中遇到的问题。
计算思维分为4个组成部分:
1)解构
即把问题进行拆分,把一个复杂的大任务拆分成多个简单的小任务,小任务都完成了,大任务也就完成了。
比如把大象装进冰箱,是一个大任务,拆分成3个步骤,然后每个步骤按顺序完成,大任务就完成了。这个就叫做解构。
遇到任何难题,学会分析问题,拆分问题,简化问题,是最基础最重要的思维方法。这样,还能够建立解决问题的信心,勇敢地迈出解决问题的第一步,把难题当成一个闯关游戏,一步一步地闯过去。走完第一步,第二步可能就没有那么难了。
比如写作文,给你一个作文题的时候,可能会很懵,不知道该如何下笔。但如果你学会分析题目,拆分题目,然后按顺序完成每一个小标题,可能就没那么难了。比如作文的题目是:上课睡觉对不对?
你可能就会写:上课睡觉当然不对,然后就写不下去了。可是如果你学会分析问题,拆分问题,就可以拆分成:时间,地点和事件三部分。1.睡觉的时间不对2.睡觉的地点不对3.上课做的事情不对。还可以继续拆分,上课睡觉有哪些坏处。1.错过了课程内容2.对老师很不礼貌3.对自己身体不好。如果还想写,还可以继续拆分,为什么上课想睡觉?1.晚上睡得太晚。2.上课内容很无聊。3.老师的声音很催眠。等等。
分析完题目之后,就可以按顺序把想写的东西都写上,文章就完成了,不仅内容丰富,而且非常有逻辑,有章法。
2)模式识别
用观察和归纳的方法,识别出拆分出来的问题是哪一类的问题。
请小朋友们看一下下面的图片,请找出哪些是食肉动物,哪些是食草动物。
根据动物吃肉还是吃草的特点,将动物进行分类,就是一种模式识别。
这样的辨别,即使是小朋友也能毫不费力地作出判断。为什么?因为我们人类很擅长对模式进行识别,这是人与生俱来的基本技能。
我们在观察事物或现象时,常常会发现它们与其他事物或现象的不同之处,并根据特定目的把相似但又不完全相同的事物或现象进行分类,总结出特定的模式。
把问题进行归类,也是为了简化问题。比如,把动物分成食肉动物和食草动物,就把图中的6种动物变成了2类,可以用于问题的抽象化。
3)抽象化
隐去问题的细节,找到问题的本质属性。
比如,虽然用的是不同的地图,有的是城市地图,有的是森林地图,但是从起点到终点的本质属性是一样的,可以抽象成同一类的问题,可以用相同的方法去解决。
抽象化的目的,就是为了用相似的方法去解决相似的问题。
很多问题表面上看起来是不一样的,但可能本质上却是非常相似的。
比如:商场的自动门可以感应到人以后会自动打开,公厕里的水龙头,手伸过去会自动出水。这两个现象很不一样,原理却是相似的,都是用了红外传感器,有红外感应的时候,就会驱动门打开,或者让水龙头出水。隐去了细节之后,我们可以将这些现象抽象成同一类问题。
4)算法设计
针对相似的问题,提供解决的办法。
经过上面三个步骤之后,最终还是为了解决问题。解决问题,就是要用一系列行动,来完成任务。
比如抽象化地图任务之后,要找出起点到终点的路线,找到正确的指令,按顺序执行,就是一种算法设计。
比如,我们隐去了不同地图的细节后,规划了机器人的行走路线,比如“前进2步”,然后“左转”,然后“前进3步”,将这个以流程图或者直接指令拼搭的方式呈现出来,就是我们的算法,也就是解决方案。
2.计算思维有什么用
了解了什么是计算思维,小朋友们肯定又要问了,计算思维有什么用呢?为什么我们要从小培养计算思维呢?
1)生活中的计算思维
在生活中,我们经常会用到计算思维。
运用计算思维,可以帮助我们有序高效地解决问题。
比如,妈妈的生日快到了,我们该如何给妈妈准备生日礼物呢?
第一步,我们把这个大任务进行拆分成几个小任务:
任务1,确定送什么礼物妈妈会喜欢。任务2,如何准备这个礼物,是让爸爸去买还是自己来做?任务3,如何送出礼物给妈妈一个惊喜。
这就是大任务拆分成小任务。
第二步,模式识别。比如解决给妈妈送什么礼物的问题,首先要判断的是:妈妈喜欢的东西一般是什么类型的,比如是衣服呢,还是小饰品呢,还是吃的东西呢。妈妈是喜欢买来的东西呢,还是喜欢自己做的东西呢。有了分类之后,就更容易找到答案了。
第三步,抽象化,除去细节,比如送生日礼物和送别的礼物,都是有相似性的,可以总结归纳为“送礼物”任务。回想一下以前是如何完成任务的,或者询问同学是如何完成任务的。如果有现成的操作流程,可以再用一次。
第四步,算法设计,找到每一个小任务的解决方案,然后按时间顺序依次完成。每完成一个小任务,在心里默默地打上一个“勾”。
其实在生活中,每当我们遇到比较复杂的问题的时候,我们都会需要这样的思维方式来帮助我们,熟练运用计算思维,可以让我们更高效更从容不迫地去解决每一个新面临的问题。所谓,授之以鱼不如授之以渔。家长亲自帮助孩子解决问题,还不如家长教会孩子解决问题的方法。
2)学习中的计算思维
学习中,我们也会经常遇到新问题,复杂的问题,难题。
因为学习,就是在不断地学习新的知识,并用新的知识去解决新的问题的过程。
比如,做应用题,很多孩子理解不了题意,即使已经学过了公式,但也不知道用哪个公式去解决当前的问题。
波利亚的名著《怎样解题》,就是在帮助孩子理清解题的思路。其实,这里面也是应用了计算思维。
第一步,就是拆解题目,将题目拆解为:任务1,找到所有的已知项。任务2,找到所有的未知项。任务3,找到已知项和未知项之间的关系。
第二步,就是模式识别。在找已知项和未执行之间的关系时,要通过模式识别,来判断是什么类型的问题。其实每个学习阶段的问题类型并不多,很容易进行匹配。
第三步,就是抽象化。不要被表面的假象所迷惑,到底是游泳池放水,还是看书的进度,还是船在水里开,这些都是表象。可能就是追及问题,或者相遇问题,抽象化之后,相似的问题,就可以用相同的方法进行解题。
第四步,算法设计。不同类型的问题,可以根据对应的公式列出等式,等式完成后,就可以把已知和未知带入,剩下的就是简单的计算了。
科学的学习,就更需要计算思维了。
比如:如何设计科学实验,科学实验,首先明确的,就是哪些条件是可变的,哪些条件是不可变的。科学实验,是要保证每次实验,只有一个条件不同,其他条件必须相同。
所以,第一步,就是拆分任务,把设计科学实验的任务拆分成:任务1:确定实验目标,任务2:确定可变条件,任务3:确定不可变条件,任务4:设计实验步骤。
第二步,模式识别,实验目标往往跟知识点相关,每个学习阶段的知识点都是确定的,只需要根据模式识别,将知识点与实验目标想匹配。
第三步,抽象化。知识点确定后,忽略具体的实验细节,要抓住实验目标的本质(知识点),确定可变条件和不可变条件。
第四步,算法设计。根据目标和条件,确定实验步骤。
培养计算思维,可以帮助孩子有序高效地学习。在培养学习兴趣的同时,还要培养正确的学习方法,做到事半功倍。没有必要盲目刷题,一个知识点,做几道典型的题目即可,最重要的,就是解题过程中的思维训练,熟练运用问题拆分、模式识别、抽象化和算法设计的计算思维。
3.如何培养计算思维
学龄前3-6岁的孩子主要以培养形象思维为主。所以,要用形象思维的方式进行学习,来培养计算思维。
1)如何培养解构思维
解构,就是把大任务拆分成小任务。
在实物编程课上,小朋友们通过完成编程任务,把大问题拆分成小问题。
比如运送垃圾:
机器小车要把不同种类的垃圾运到不同颜色的垃圾桶里。
可是有这么多垃圾桶,怎么才能完成任务呢?
哦,可以把一个大任务拆分成4个小任务来完成:
所有的小任务完成了,大任务也就完成了。这就是解构思维。
2)模式识别
实物编程的课程中,通过一些有趣的互动游戏,让小朋友们对于颜色、形状、图片、动作,找规律,找相同,找可重复执行的指令,进行各种模式识别的锻炼。比如:
a.找规律
课程里的互动游戏,让小朋友根据规律,填上正确的颜色。
b.找形状
课程里的互动游戏,让小朋友找找有多少个正方形,多少个长方形。
c.找相同
完成走正方形的任务时,要通过模式识别,找出哪些步骤是相同的。
相同的步骤,可以放在“重复”指令里,多次执行。
模式识别,也培养了一种秩序感,顺序执行,前后关系,因果关系和逻辑关系,在完成编程任务的过程中,这种秩序感被不断地培养和锻炼,慢慢地在生活中也会体现出来。
3)抽象化
抽象思维,就是要忽略细节,找到事物的本质属性。
孩子的学习都是从形象到抽象,需要一个漫长的过程,从形象思维入手,慢慢地培养抽象思维。
比如红色是一个概念,孩子慢慢地才能理解:草莓是红色的,苹果也是红色的,红旗是红色的,血也是红色的。红色这个概念,就是一个抽象。
从小通过形象思维的学习过程,来逐渐培养抽象化思维,会比孩子从幼儿园进入小学后,立刻就开始完全纯抽象的数学学习,更能让孩子接受。
a.不同的地图,相同的指令
实物编程课程中,会使用很多不同的地图,但编程任务可能是相同的。让孩子理解,地图不同,但路线相同,指令也是相同的。地图的内容本身不会影响指令,这是一种抽象。
b.不同的机器人,相同的指令
不同的机器人,也可以使用相同的指令,逻辑是相同的,表现是不同的。这也是一种抽象。“前进”,可以让小车前进,也可以让“悟空”前进,也可以让无人机前进。逻辑是抽象的,是一致的。
c.逻辑游戏
课程中有趣的逻辑游戏,让孩子们在快乐中锻炼抽象化思维。
比如:
如何下井字棋
通过抱团游戏,认识数字
请5个小朋友上来,老师说一个数字,小朋友们要根据这个数字来组队,手拉手组成一组。多出来的那个小朋友就被淘汰了,要回到座位。
比如老师说2,就是2个小朋友手拉手组成一组。如果老师说3,就是3个小朋友手拉手组成一组。
传感器学习
通过各种传感器的学习,将声、光、颜色、障碍物与数字相匹配,练习抽象化思维。
规划执行的顺序,辨认出其中的模式,评估解决方案,最终解决问题,实际上就是给自己武装了解决问题的技能,这些技能可以帮他们学习数学,科学和其它学科,甚至于解决日常生活问题。
4)算法设计
用指令卡片完成程序,就是算法设计的过程。
学习编程的过程中,会涉及很多的数学知识,比如等式、不等式,常量、变量,以及科学知识,比如红外感应,亮度测量,声音测量,颜色识别,反射光,倾斜角等等。
学习编程的过程,让孩子开始观察身边的颜色、形状、光线和声音,了解反射光的原理,颜色的形成,如何感知倾斜等等。
学习指令,学习算法,离不开数学和科学的知识,也加强了孩子对于数学和科学的热爱。
学习知识,更重要的,就是知识的运用,能将知识运用于解决实际的问题,才是真正地学会学懂。
大一些的孩子(小学),还可以接触流程图:
运用流程图,可以理清思路,帮助孩子解决更加复杂的问题。尤其是学习了自定义函数后,流程图就是不可或缺的辅助工具了。
4.总结
有了网络,有了搜索引擎以后,知识的积累已经变得越来越不重要。但是知识的分析、运用,能力的提升,思维的锻炼,却变得越来越重要。
规划执行的顺序,辨认出其中的模式,评估解决方案,最终解决问题,实际上就是给自己武装了解决问题的技能,这些技能可以帮孩子学习数学,科学和其它学科,甚至于解决日常生活问题。
计算思维,是可以受用终身的。