本文主要针对少儿编程从业人员及正在学习编程的学生家长
大家好,我是C大叔,国内早期的少儿编程从业人员。一直以来都是在做scratch,JavaScript,python以及信息学奥赛C++的讲师,教研等工作,本文从少儿编程出发跟大家谈谈计算思维(Computational Thinking)。
计算思维(Computational Thinking),简称CT,主要培养学生的技能,态度以及途径。技能包括分解,模式识别,抽象,算法设计,评估等。态度包括自信,沟通,灵活等。途径包括修补,创造,调试,坚持不懈,合作等。
为什么计算思维对今天的学生来说非常重要,主要从下面几个方面分析:
- 计算思维可以用于解决任何领域或者学科的问题。
- 提升信息技术素养(将学生从技术的使用者变为技术的创造者)。
- 更好地理解计算。
- 为批判性地思考问题解决者提供一个跨所有职业领域的框架。
- 将创造力和效率融入解决问题的过程中。
- 发展工作技能(导致收入增加)。
需要告知大家的是我们从少儿编程中得以锻炼计算思维的各方面,但不仅限于少儿编程,也可以运用到生活各个方面,所以这里需要澄清的是:
- 计算思维可以包含计算机,但是不一定非要包含计算机。
- 是人的思维,而不是计算机的思维。
- CT for all,而不仅仅是计算机科学家、程序员。
- 应用于所有学科,而不是仅仅应用于计算机科学
现在我们简单地去解释计算思维的技能方面以及其在少儿编程领域的运用,从而通过少儿编程来培养学生计算思维方面的能力,希望这对于少儿编程讲师,少儿编程教研,甚至于其他学科的讲师教研们都有一定的用处:
分解:我们来理解下分解是什么意思。百度百科是这么解释的:分解,数学名词,即和差化积,其最后结果要分解到不能再分为止。对于一个大的问题,如果你解决不了,没关系,自己思考,这个大问题一定有它的子问题是你可以解决的。
举个简单的例子,对于一块大蛋糕,如果不切开,吃起来是非常困难的,所以你会想到把它分成一小块一小块来吃,一小块也不可能一次吃完,还要一口一口吃。
这就相当于,遇到一个复杂困难的问题,解决不了怎么办,分解它,然后再去解决分解的问题。就比如我们通过编程要去完成一个《合金弹头》的游戏制作,但面对这个庞然大物,我们无从下手,这时,我们就可以想到对这个游戏进行分解,怎么分解呢?
通过观察,我们会发现这个游戏有场景图(地图),主人公(人物),有敌方(炸弹,敌人,敌机),有子弹(包含主人公子弹及敌方子弹),分解完成之后才去解决问题,就会简单很多。注意分解不是步骤,不是解决问题的顺序。
模式识别:什么是模式?问题内或者子问题之间的模式、规律或者趋势。简单地来说,就是找规律。就比如天气预报,为何能够预报天气状况呢,便是通过以往的经验对未来进行预测。再比如一个不好好学习成绩很差的孩子,但是突然有一天开始奋发图强,成绩每次都会进步一点,我们可能会预测出下一次这个孩子还能再进一步。
当然这个归纳出来的模式也可能会出错,就看我们怎么去找这个模式了。比如我们知道一个苹果的价格是3元,3个苹果就是3*3等于9元,即单价乘上数量,那现在知道了一个梨子是4元,5个梨子多少钱?我们已经知道计算苹果总价的模式了,即单价乘上数量,我们通过归纳的这个模式来解决梨子价钱的问题就非常合适,4*5等于20元,也是梨子的单价乘上梨子的数量。
在少儿编程中培养这一技能就更显而易见了,很多编程问题都有一定模式可寻,比如我们要将《合金弹头》的地图,角色及敌机画在屏幕上,画画的方式基本一致,不一样的是图片名称及坐标。那我们学完地图绘制之后,再去解决类似的问题就可以想到用模式识别去思考。
抽象:在模式识别中其实就已经解释了抽象这一概念,通过以往的规律来预测未来,即归纳模式解决问题。要想解决此问题这其中既要处理过程,也要处理数据,即从具体实例概括出通用解决方案的技术,我们把它称作抽象。再模式识别中,关于去求各种水果总价这一问题,我们可以归纳出很多模式,比如这里都是去问总价,总价都是等于单价乘以数量, 水果的单价都是固定的,但买的水果的数量可变等,但是我们要去求水果总价,我们需要丢掉其他问题,只去找有用的信息即可,及总价等于单价乘以数量这一模式,即要概括出合适的模式,隐藏不必要的模式。
算法设计:之前说到分解是将复杂问题分成很多小块去解决,而不是解决问题的步骤,而算法设计恰恰是解决问题的步骤。其中步骤中又包含分解,抽象,及模式识别,它就像一条线,串起计算思维在各个领域的应用,这里再来说一下在少儿编程中的应用。
例如我们要做一款小鸟飞飞的游戏:
首先我们要将角色导入,即背景,小鸟,图标等,然后设定小鸟的初始位置,接着控制小鸟上下移动,背景移动,最后闯关开始结束等,按步骤解决问题,同时内部也涉及分解,抽象,模式识别,例如在控制小鸟上下移动这一步骤,分解成上移及下移,上移的模式与下移类似,学完其中一个,另外就可以让学生自己归纳,从而解决另一个问题。
今天就跟大家浅谈到这里啦,后期还会继续与大家讨论计算思维方面的知识,有什么问题可以关注微信公众号noip信奥网,或者直接访问我的网站www.noipedu.cn与我探讨儿童教育哦!