打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Scratch趣味编程 | 培养孩子的计算思维,从编程开始

2006年3月,美国卡内基·梅隆大学计算机科学系主任周以真(Jeannette M. Wing)教授在美国计算机权威期刊《Communications of the ACM》杂志上给出,并定义的计算思维(Computational Thinking)。

周教授认为:计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。

以上是关于计算思维的一个总定义,周教授为了让人们更易于理解,又将它更进一步地定义为:通过约简、嵌入、转化和仿真等方法,把一个看来困难的问题重新阐释成一个我们知道问题怎样解决的方法;是一种递归思维,是一种并行处理,是一种把代码译成数据又能把数据译成代码,是一种多维分析推广的类型检查方法;是一种采用抽象和分解来控制庞杂的任务或进行巨大复杂系统设计的方法,是基于关注分离的方法(SoC方法);是一种选择合适的方式去陈述一个问题,或对一个问题的相关方面建模使其易于处理的思维方法;是按照预防、保护及通过冗余、容错、纠错的方式,并从最坏情况进行系统恢复的一种思维方法;是利用启发式推理寻求解答,也即在不确定情况下的规划、学习和调度的思维方法;是利用海量数据来加快计算,在时间和空间之间,在处理能力和存储容量之间进行折中的思维方法。

01

什么是计算思维?

计算思维是指借助信息科技的设计于实现来培养解决问题、团队合作、创新思考以及勇于尝试错误等方面的能力。

在信息技术课程学习过程中,我们编写的程序,实际上就是给计算机下指令让它来“做事情”——这是软件开发设计过程的一个重要阶段。

在编写程序之前,还有需求分析和系统设计两大阶段,而计算思维正是用于培养孩子的系统化逻辑概念。在面对一个问题时,能够系统地分析与分解问题,就是编程中的需求分析。通过思考,找到可能的解决办法,并确定最有效的决策,这就是系统设计。而这个从问题分析和问题解决的思维过程,就是计算思维。

那么,培养计算思维只能通过专业的课程,来完成吗?

答案是否定的——培养计算思维可以从日常生活开始,它并不限定任何场所或工具,日常生活中的任何事物都可以拿来练习,尤其是人生起步的儿童阶段,通过边学边完,在玩中学,在学中玩,在观察和实践中不断建立和完善他们的计算思维习惯。

02

如何培养计算思维?

计算思维是需要训练才能积累经验的。

谷歌(Google)为教育者开发了一套计算思维课程,这套课程提到了计算思维的四个方向:分解、模式识别、归纳与抽象化、算法。虽然这4方面并不是建立计算思维唯一的方法,不过通过这4个方向我们能更有效率地发挥想象,并从中建立计算思维。

Step 1:分解(Decomposition)

分解相当于计算机科学中著名的“分治法(Divide and Conquer)”,也就是将一个复杂的问题分割成许多小问题,先将这些小问题各个击破,小问题全部解决之后,原本的大问题也就解决了。这就是分而治之的道理,如下图所示。

我们以综艺节目中的终极密码游戏为例,主持人随机从1~100中取一个数字,让来宾猜数字,主持人只能回答“高”或“低”。如何才能快速猜到这个数字呢?

作为启发孩子的思路,我们可以用7个更加简单的数字来做游戏,最终找到“7”这个数。猜数的步骤如下:

通过这个猜数游戏,我们不难看出:解题分析的过程,实际上就是在训练程序逻辑思维的过程。

上面所说的分析过程中并没有提到任何高深难懂的程序设计语言,却已经带入了程序设计中两个很重要的概念:循环(loop)和二分查找法(binary search)。

Step 2:模式识别(Pattern Recognition)

模式识别是指在一堆数据中找出特征或规则,用来对数据进行识别与分类,作为决策的判断。例如,安防系统中常用的人脸识别、指纹和掌纹识别和虹膜识别等生物识别,车牌识别系统等都是将大量的数据提供给计算机,让计算机找出特征或使用规则来进行模式识别。

我们如今的大数据(Big Data)分析,其实就是从海量的数据里找到关联的数据,借以改善问题、推测未来趋势以及创造新的商机,这也是许多大企业积极想要从大数据中找出的商业智能。

那么,这种模式识别,我们能够在日常生活中进行训练和习得吗?

当然是可以的,年幼的小朋友可以借助动手画图、识别图形、分辨颜色或物体分类来进行训练。

例:找出以下两题中不同的一个词汇并说明差异之处。

(1)A.蛇    B.小草    C.狗    D.老虎

(2)A.熊    B.老鹰    C.兔子    D.狐狸    E.狼

很明显,上面的这两个题目只是简单的分类,幼儿园小班的孩子就已经可以分辨出来了。但是这种思维的训练却是非常有必要的。

Step 3:归纳与抽象化    

归纳与抽象化的目的是找出问题的关键特征,只专注于处理少数的、重要的点,过滤掉无关紧要的东西,只保留核心的细节。就软件开发和程序编写来说,一开始会收集许多数据或资料,在编程之前,我们需要通过归纳与抽象整理出有用的数据、可用的资源以及限制的条件。

以支付宝APP中蚂蚁庄园的星星球游戏为例,很多大人和小孩都喜欢玩,一尘老师也和大家一起来脑洞一下,于是有了下面的思维导图。

在这款星星球游戏中,从游戏如何开始到游戏何时结束开始设计,从游戏中的小鸡、球、炸弹三个角色的设计到每个角色的动作及得分算法设计,都需要反复斟酌。比如小鸡的动作设计,分为拍球前、拍球时和拍球后以及得分超过100分后的说话都有很多细节和关键点设计。拍球前,小鸡做接球的准备,静止等待,双脚落地,双翅闭合,眼睛眯着,小鸡的影子处于小鸡正下方的草地上。拍球时,小鸡跳起,双脚离地,单翅张开,眼睛眯着,小鸡的影子随着小鸡运动。

在设计游戏或者话剧时,用手写或电脑制作思维导图,是理清思路的很好的方式,一张A4纸上,从零开始写下零散的“点子”,然后理出哪些是核心,把它们变成“金点子”,作为我们设计的重要部分,并围绕这些核心进行设计。这是最常见的思维方式和整理思维的途径。

Step 4:算法    

简单地说,算法就是为了解决问题而设计的规则与步骤。同一个问题,每个人的解决方法可能不同,执行效率也会不同,好的算法能够编写最精简的程序代码、达到最佳的执行效率。

例如,想要求1+2+3+4+5的累加总和,编写出计算步骤,如果没有学过算法,可能是这样编写:

步骤1:1+2=3;        

步骤2:3+3=6;        

步骤3:6+4=10;      

步骤4:10+5=15。    

常规的计算方法时将数字相加就可以得到答案,这样的解法显然没有错。只不过,这样编写程序,代码多,步骤多,执行效率比较低。如果把题目改成求1+2+3+......+100的综合,那么还是按照上面的步骤来写就太费人了。

其实,我们可以尝试在题目中找出计算规则,并推算出最简“算法”。再把计算的思路用计算机编程的算法给表达出来——首先可以定义两个变量,用变量i记录当前遍历的数字,用变量sum记录累加的总和,算法可以这样推演:

步骤1:设置i=1,sum=0;                                       

步骤2:sum=sum+i;                                            

步骤3:i=i+1;                                                       

步骤4:如果i>5就结束,否则返回重新执行步骤2。  

当我们改进算法之后,需要计算1加到100时,只需要将程序中的5改成100即可。同理,如果需要计算1加到10000时,只需把程序中的5改成10000即可。这样一来,程序变得灵活而有弹性,并且,程序代码也很精简、可读性强。

在设计算法时,为了方便大多数人的理解,尽量少使用文字,而使用流程图进行描述,如下图所示。

流程图如何用,我们在今后的编程课中为大家再做介绍。

通过本课的学习,我们已经了解到:计算机逻辑思维就是在编程训练中培养学生思维的习惯和过程,让他们在编程过程中自己去发现问题、思考如何改进程序中的错误并解决问题。另外,编程可以让孩子学会很多解决问题的方法和途径,为了实现程序的目标,答案不是唯一的。

学习是习惯的养成——从小培养孩子认识数字世界并掌握计算机逻辑思维能力是他们将来成功的基础之一。而培养计算机逻辑思维,则需要先进的教育理念和工具,Scratch就是综合了先进教育理念的优秀工具之一。通过Scratch编程训练可以培养学生的综合能力——逻辑思维能力、创造力、分析能力、观察能力、专注力、主动思考的能力、面对困难时坚韧的毅力等,这些能力的习得,对每一个孩子来说将是终身受益的。

2022年版的信息技术课程标准中指出,信息科技课程要培养的核心素养,主要包括信息意识、计算思维、数字化学习与创新、信息社会责任等四方面。这四个核心素养中,计算思维是重点。信息技术课标中定义了计算思维:计算思维是指个体在运用计算机科学领域的思想方法,在问题解决过程中的抽象、分解、建模、算法设计等思维活动。

具备计算思维的学生,能对问题进行抽象、分解、建模,并通过设计算法形成解决方案;能尝试模拟、仿真、验证解决问题的过程,反思、优化解决问题的方案,并将其迁移运用于解决其他问题。而计算思维的培养,通过编程是很好的途径,尤其是Scratch这种图形化编程,非常适合小学生和中学生。

更多Scratch学习教程,欢迎在文末浏览历史文章。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
10年之后,不会编程的孩子,就像现在不会英语的孩子一样让人焦虑
会用电脑但不会编程,在互联网时代就和会阅读但不会写作一样
给孩子带来底层思维的改变的少儿编程
一位程序员爸爸吐槽:“我不会教孩子编程,你们也别教。”
为什么有“编程思维”的孩子未来发展更好?
图形化编程娱乐于教,Kittenblock scratch实例,分针
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服