在Scratch教学中培养小学生的计算思维
2015-09-10楼佳群
楼佳群
计算思维是运用计算机科学的基础概念进行问题求解、系统设计及人类行为理解等涵盖计算机科学之广度的一系列思维活动。2011年ISTE联合CSTA提出,计算思维是一个问题解决的过程,该过程包括制定问题、分析数据、抽象、设计算法、选择最优方案、推广六大要素,以及自信、坚持、宽容、解决开放问题的能力和与他人交流合作的能力。从这些定义和解释中,我们发现计算思维必须包含很多独有的要素,因此,笔者根据在Scratch教学中的实践和探究,同时结合小学生的年龄特点和发展规律,认为在小学阶段计算思维应该包含以下五个基本要素:①自动化,即计算机科学的方式;②算法,即对问题的各种分析和思考;③逻辑,即各种问题引发出来的相互关系和可能性;④优化,即对问题的解决方案进行更好的完善;⑤抽象,即利用计算机科学的方式对问题解决的方法和思路进行归纳和整理。
Scratch教学中计算思维的表现
Scratch是美国麻省理工学院开发的一套开源程序,专为八岁以上儿童设计,它与以往的常用Office软件学习有所不同,Scratch的教学并不是为了培养出小程序员,而主要是为了让学生在利用Scratch进行创作的过程中,培养逻辑思维能力、数字化文化创作能力以及解决问题的能力,并在学习的过程中充分感受乐趣。当然,这一学习和体验的过程,也是学生计算思维得到培养的过程。
1.在Scratch学习中,计算思维表现在学习和设计的自动化上
Scratch不需要像传统编程软件那样逐行地“敲”代码,而是通过拖拽已经定义好的程序模块,采用搭积木的方式快速实现程序的编写。图形化的编程减少了识忆性的要求,将学生从死记命令及命令的使用参数中解放出来。学生学习Scratch编程的过程不再是枯燥的命令组合的集成,整个编程就像儿童在搭有趣的积木玩具,同时在Scratch的舞台区,会对学生的积木式程序自动进行演示,学生可以很直观地看到各种脚本设计所呈现出来的实际效果,这种借助Scratch进行编程学习的方式就是一种自动化的计算机科学方式。
2.在Scratch学习中,计算思维表现在任务分析和设计的算法上
Scratch中的每一项任务,都需要学生先进行分析,而后再根据各个任务和要求思考问题解决的方式方法,最终选择和设计出各类符合自己需求的指令算法。
案例1:机器人巡逻。任务说明:要求学生设计脚本,让机器人完成巡逻任务,舞台如图1所示,巡逻轨迹如图2所示。
学生对这项任务基本上会有两种以上的算法思路:一是利用移动指令,让机器人四周移动巡逻,根据任务要求,可能需要多条移动指令,才能让机器人进行四周巡逻,脚本如下页图3所示;二是利用一个重复执行指令,让机器人在四周进行巡逻,这种算法让机器人巡逻的脚本设计变得更为简便易懂,而且呈现的效果也更加完整,如下页图4所示。
在这项任务设计中,学生通过不同的算法来解决机器人巡逻的问题,但通过不同学生不同方法的脚本演示,学生们肯定会发现算法不同会呈现出不同的脚本设计,效果也会不同,这样一个问题分析、思考的过程就是计算思维中算法的体现。
3.在Scratch学习中,计算思维表现在脚本设计的逻辑思维上
在Scratch的脚本设计中,我们会根据不同角色的不同功能和呈现效果,选择不同的脚本设计,脚本中各个指令的关系梳理与运用就是一种逻辑思维。
案例2:小动物过冬。任务说明:学生设计脚本,完成小动物过冬的一个情境故事设计,如图5所示。
在这项任务中,学生就要分析每个角色的出场顺序、相互关系等逻辑,如首先需要出现文字“小动物过冬”,并展示动态的文字效果,然后出现蛇,几秒后蛇消失,最后出现蜜蜂,这样的脚本设计如图6所示。
在这个脚本设计中,学生在制作之前必须要理清楚各个角色的相互关系,在这一过程中学生计算思维中的逻辑能力肯定能得到提升。
4.在Scratch学习中,计算思维表现在对程序的优化处理上
在Scratch的脚本设计过程中,我们经常会发现同一个效果可以有多种途径或方法来完成。在许多方式方法中,我们找出一种最好的或者最合理的方式,这个过程就是计算思维的优化过程。
案例3:打怪物游戏。任务说明:怪物随机出现,用锤子进行打击,打到一只怪物分数就增加一分,如图7所示。
尝试一:很多学生给锤子设计了如下页图8的脚本,发现这个脚本的设计复杂而且容易搞错,并且每次角色发生一点变化,都需要重新设计整体脚本。尝试二:有学生提出了一种更优的脚本设计,那就是给怪兽角色设计脚本,简单的几条指令就可以了,每只怪物角色全部自动复制同样的脚本,就可以达到想要的效果,如下页图9所示。
通过脚本优化,我们让程序变得更加简洁,同时这种优化后的脚本也更加易懂、方便、好维护修改。在这一过程中,学生对计算思维中的优化特性有了更深刻的理解和体验。
5.在Scratch学习中,计算思维表现在对学习过程和方法的归纳与整理上
学生在学习Scratch趣味编程的同时,会对学习过程中的一些学习方法和思维方式进行归纳整理,如对于角色的顺序播放,我们可以采用广播和等待指令来满足自己的需求等。同时学生对Scratch的创作过程也会由不熟悉到熟悉并有一定的体验,对于以后类似游戏化或者故事化的设计与开发就会有自己的思维方法和经验了,这是一种抽象的计算思维能力表现和培养过程。
Scratch教学中学生计算思维培养的具体策略
根据计算思维的五个基本要素,同时针对Scratch软件的特点,笔者所在的信息组团队在Scratch教学中尝试构建“分析·设计·创作·分享”的教学模式,以便更好地促进小学生计算思维的培养。
1.通过分析主题,培养学生计算思维的算法和逻辑能力
根据主题,帮助学生整体分析规划这个主题作品需要哪些角色,弄清楚角色之间的相互关系,接着局部分析每个角色的造型、脚本、状态,还可以再细致到每句指令、参数、先后执行顺序的分析与搭建,由表及里、由浅入深、由易到难地分析事物和问题,最后能够规划出需要解决哪些子任务,这也是促进学生计算思维中的算法和逻辑能力的培养。
案例4:大鱼吃小鱼。任务说明:在深海中,鲨鱼、章鱼、虾米们在海里自由地游动,但鲨鱼碰到章鱼或者虾米时就会吃掉它们。如图10所示,在设计之前让学生看范例然后填写“大鱼吃小鱼”分析表(见上表),启发学生思考需要解决哪些问题。
学生在分析表中很好地分析出角色要实现的效果,并为其提供了简单的指令依据,这为后期的脚本设计提供了方向和思路。
案例5:猜数字。游戏说明:设计一个猜数字的游戏。例如,玩家单击0到9间的任何一个数字,小猫会提示你的数字是“大了”还是“小了”,直到你完全猜对为止,如图11所示。
学生分析:电脑产生的随机数和人单击的猜测数要进行比较,因此这两类数可以用变量表示。例如,小猫设定一个值为a,鼠标按下的值为一个变量b。如果按下0,这时这个角色的值为b=0,以此类推,如果按下9,则b=9,a与b进行比较,如果ab,则提示小了,如果X=Y,则提示答对了。
上面两个案例都需要学生能理清楚每个角色的相互关系,以及每个角色脚本的算法和逻辑能力,而这些对于学生的逻辑思维能力和算法应用能力的培养是非常有效的,让学生在思考实践中促进了计算思维能力的培养。
2.通过设计脚本,提高学生计算思维的优化能力
学生有了具体的解决思路后,就会有针对性地去设计每个角色具体的脚本,能够根据角色效果找有用的指令,修改指令的各种参数和先后顺序,不断地调试并最终设计出每个角色的脚本程序,实现角色效果。
案例6:小章鱼游动。任务说明:设计小章鱼游动的动画。
图13中的小章鱼游动的脚本明显比图12中的小章鱼游动的脚本更优,因为无论是从指令的数量上,还是执行效率和效果呈现方面,图13的脚本都比图12的脚本设计更合理,学生如果能对自己的脚本多次设计并使之达到优化,这就是一种计算思维中优化能力的培养。
3.通过创作和分享,培养学生计算思维抽象的归纳整理能力
通过对各类问题和情境的创作分享,学生对于类似的问题有了自己的经验和想法,如图14所示,对于鱼的游动,学生会有很多不同的想法和设计,同时还能根据已有的知识经验创造出更多有个性化的有创意的作品,这也是学生在Scratch学习过程中最大的收获。
结语
从这些案例中,我们不难发现,学生的创作和想象远远超出了教师的预期,学生在自己的作品中都能加入自己的想法和创意。例如,第五个案例“猜数字”,教师和学生在学习的时候只是学习了数字的大小对比指令,然后设计脚本进行结果反馈。但在学生的创作作品中,他们加入了很多互动效果,每次可以让玩家输入任意一个数字,然后将程序进行对比和反馈。同时,每一次游戏开始,系统默认的标准答案都是随机的,这就大大增加了“猜数字”游戏的真实性和娱乐性,这是学生对所学知识进行归纳、整理、内化并能进一步创造的表现。
在“分析·设计·创作·分享”教学模式的构建和应用实施过程中,每一个环节都渗透着计算思维的一个要素或者多个要素,学生在这个过程中不仅提高了编程能力和信息素养,同时也培养了计算思维能力。
通过一个学期的Scratch教学实践,笔者发现学生学习Scratch对于计算思维能力的培养有显著的促进作用。从学生提交的学生作品中,笔者也可以发现,学生的创新能力、逻辑思维能力、程序优化能力等均有了显著的提高。当然,学生计算思维的培养是一项需要长期坚持的工作,需要教师们相互配合,才能更好地促进学生计算思维能力的提升。