基于计算思维培养的Scratch程序设计教学实践
李炳锐
【摘 要】计算思维培养是中小学信息技术教育领域研究的热点。Scratch是一款可视化的编程工具,是培养中小学生计算思维的有效载体。本文首先结合计算思维的概念与内涵分析了Scratch程序设计课程中蕴含的计算思维,再以Scratch项目“迷宫寻宝”为例,对Scratch程序设计教学实践中的计算思维培养进行了详细描述。
【关键词】计算思维;Scratch;程序设计
【中图分类号】G434? 【文献标识码】A
【论文编号】1671-7384(2020)04-068-03
《普通高中信息技术课程标准(2017版)》明确指出信息技术学科核心素养由信息意识、计算思维、数字化学习与创新、信息社会责任四个要素组成[1]。其中,计算思维培养已经成为中小学信息技术教育领域关注的焦点,而程序设计教学是培养学生计算思维的有效方法之一。Scratch具有“低门槛、高界限、阔空间”的特点,是中小学开展程序设计教学的有效载体。
计算思维的概念与内涵
2006年,周以真教授将计算思维定义为运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[2]。2013年,英国南安普敦大学Cynthia Selby 和 John Woollard提出计算思维由算法思维、评估、抽象、分解、概括等要素组成[3]。
计算思维源于计算机学科,但并不是像计算机一样思考,其本质是抽象与自动化,是人的思维,与人们的学习和生活密切相关,正如阅读、写作和算术一样,是不可或缺的思维方式。
Scratch程序设计与计算思维
Scratch是美国麻省理工学院开发的一款可视化编程工具,与LOGO、Basic等代码编程语言相比,其最大的优势是不需要学生记忆代码,用鼠标拖动相应的指令块到脚本区就可以轻松实现程序的编写,大大降低了中小学生学习程序设计的门槛。
在Scratch程序设计课程中,学生需要对任务进行抽象和分解,理清不同角色之间的关系,再设计出解决问题的算法步骤,编写脚本并对程序进行纠错和优化,最后对作品进行评价和拓展。利用Scratch进行程序设计的过程包含了计算思维的关键要素,这一学习和体验的过程,也是学生计算思维能力得到培养的过程。
基于计算思维培养的Scratch教学案例
在基于计算思维培养的Scratch程序设计教学中,教师应当依据计算思维的关键要素来设计学习活动。下面笔者通过“迷宫寻宝”教学案例来分析如何在Scratch程序设计教学中培养学生的计算思维能力。
1.情境体验
情境体验的目的是通过教学情境的创设激起学生的探究欲望,并引导学生对较复杂问题进行梳理并提取出关键点。首先让学生体验“迷宫寻宝”小游戏,然后引导学生描述游戏规则:当按下键盘上的方向键,小猫就往相应的方向移动1步,当小猫碰到迷宫墙壁时需要回退相应的步数(这时玩家需要重新寻找路径),直到小猫碰到宝物出现提示消息“闯关成功!”。
2.抽象建模
所谓抽象建模,是指通过忽略一些复杂的细节将问题转变为适合在计算机中表示的数据结构和形式化的数学模型。抽象是解决问题的关键步骤,学会抽象可以更容易地找到解决问题的切入点。对于“迷宫寻宝”这个编程任务来说,游戏规则就是角色从迷宫入口出发,避开障碍物,最后到达宝物的位置。迷宫可能有各种各样的形式,但经过抽象建模,可以尝试从迷宫是一条笔直的通道这种特殊情况入手,角色从起点出发一直移动到终点,碰到宝物即为完成任务。这样,我们就很容易理清角色的行为以及不同角色之间的关系,为下一步的任务分解奠定基础。
3.任务分解
计算思维中的分解指的是将一个大的问题重新阐述成一系列较小的可管理的问题。在Scratch程序设计教学中,笔者引导学生对每个角色的行为进行分解,并考虑角色之间是如何交互的,从而找到问题解决的关键点。学生对任务分解后发现,“迷宫寻宝”任务实现的关键是小猫角色行走的控制及其碰到迷宫墙壁的处理。
(1)角色行走的控制。笔者引导学生进行分析发现,玩家可以利用键盘上的方向键来控制角色的行走方向。进一步引导学生对任务进行分解:如果上移键被按下,将Y坐标增加;如果下移键被按下,将Y坐标减小;如果左移键被按下,将X坐标减小;如果右移键被按下,将X坐标增加。
(2)角色碰到迷宫墙壁的处理。学生经过分析得出结论:可以利用条件语句来进行判断,即如果角色碰到迷宫墙壁时位置发生相应的改变。如何限制角色穿过墙壁呢?笔者引导学生进一步分解问题:如果向右行走时碰到迷宫墙壁,需要向左回退相应的距离使角色远离迷宫墙壁,通过类比可以得到向左、向上和向下行走时的解决方案。
4.算法设计
算法是有穷规则的集合,是一系列解决问题的清晰指令,是计算思维中的重要概念。在经过抽象建模和任务分解后,学生已经能够用自然语言对这个案例进行描述。但分支和循环很难用自然语言来描述清楚,因此,笔者借助流程图引导学生进行算法设计。在自然语言描述的基础上,笔者以小猫向右移动为例,给出以下流程图。
流程图的特点是直观、结构清晰,能够帮助学生更有效、更规范地对算法进行描述。同时,使用流程图可以将复杂的问题直观化,帮助学生加深对程序运行过程以及逻辑关系的理解,提高编写脚本的效率。
5.程序实现
笔者引导学生按照算法设计环节的流程图在Scratch中找到对应的指令块并进行脚本编写,在这个过程中,对脚本的纠错和优化是始终伴随其中的。通过类比分析,学生编写出小猫往其他三个方向移动的脚本。
6.评价拓展
评价是计算思维培养的关键要素之一,其贯穿于解决问题的全过程。在学生进行Scratch程序设计的过程中,笔者引导他们进行自我评价。同时,笔者引导学生对他人的作品进行评价:学生将完成的作品以“作品名称+姓名+组别”的格式命名并发布到在线编程社区,并对本小组其他成员的作品进行评分,最后每个小组推选出代表在全班进行展示和分享。在教学实践中发现,学生在评价和分享的过程中会吸取他人更好的创意、更优的算法及程序思路,并对自己的项目进行了拓展,如增加倒计时功能、利用体感来控制角色的移动、设置不同的难度级别等。
Scratch程序设计避开了繁琐枯燥的编程语法,是计算思维培养的有效载体。教师应充分利用其直观有趣的特点,结合计算思维的关键要素,合理选择教学内容与设计学习活动。本案例中设计的Scratch学习活动有情境体验、抽象建模、任务分解、算法设计、程序实现、评价拓展等,每一个环节都渗透着计算思维的培养,同时学生的问题解决能力得到了提升。当然,学生计算思维的培养需要在教学中进行长期有效的训练,希望更多的教师关注计算思维,为社会培养出更多适应未来发展的人才。
注:本文系东莞市教育科研2017年度规划课题“基于Scratch和计算思维的初中信息技术课堂教学研究”的研究成果,课题号:2017GH294
参考文献
[1]中华人民共和国教育部. 普通高中信息技术课程标准[S]. 2018-01-16.
[2]WING J M. Computational thinking[J]. Communications of the ACM,2006,49 (3): 33-35.
[3]Selby C,Woollard J.Computational thinking:the developing definition[J].Special Interest Group on Computer Science Education,2014.
作者單位:广东东莞外国语学校