隐计算思维于趣味游戏
项勤斌
计算机科学与电信委员会认为,计算思维是21世纪学生的核心能力,与阅读、写作和算术等基本技能同等重要,是学生发展核心素养的重要组成部分,其教育重视程度决定了各国未来创新竞争力的水平。《普通高中信息技术课程标准(2017年版)》中,将计算思维概括为个体运用计算机科学领域的思想方法,在形成问题解决方案的过程中产生的一系列思维活动。
在小学阶段,计算思维、问题解决的能力是我们在程序教学中需要重点培养的。在程序教学中,程序结构的认知是一大难点,所以感知程序结构,对我们培养学生解决问题的能力,以及判断问题的思维能力,有一定的帮助。经过对五、六年级学生的摸底调研以及拓展性课程的上课分析,我运用Scratch趣味游戏设计来教学程序结构,在经过一段时间的实践与探索后,我发现程序结构的奥秘已经被学生们慢慢了解并熟悉了。
“勇闯恶龙岛”—— 解读顺序结构
顺序结构是计算机程序语言中最基础的程序结构。它是一种按照自然顺序,一步一步完成指令的结构。
在Scratch教学中,我们也是从顺序结构开始,一步一个脚印学习程序脚本的编写,并实现一个整体的游戏。“勇闯恶龙岛”游戏,是让主角在舞台中,通过玩家的程序脚本编辑,完善原始脚本,使目标角色能够顺利过关。在课堂教学中,我首先与学生们一起创设简单的游戏情境。
结合场景,我与学生们一起讨论、梳理通关的技巧,如前进多少步后转弯、旋转多少角度并前进,最终到达胜利的彼岸。在经历了思路梳理后,我会与学生一起绘制思维导图,并最终将思维导图转换成程序设计中的流程图。跟随着流程图,我们可以在场景中通过拼接脚本模块来实现游戏中的操作,并最终取得胜利。
在经历了思维梳理、流程图绘制、程序调试后,学生能够了解到顺序结构是如何实现其功能,且能清晰地感受顺序结构可以运用在哪些实际案例中,从而实现了举一反三、由点及面的教学效果。
“趣味飞行棋”—— 解读选择结构
在经历了顺序结构的程序教学后,选择(分支)结构也是我们必需经历的程序结构。如何正确且深入浅出地解读选择(分支)结构,是教师们需要花心思钻研的内容。
在经历了两年的Scratch教学尝试后,我发现趣味游戏解读程序结构是非常有效果的。在趣味游戏的辅助下,原本十分枯燥的概念课,变得非常有意思,学生也能更好地被吸引到课堂中来。飞行棋游戏是我们生活中经常遇到的一款趣味游戏,游戏中四个玩家,需要通过掷骰子的方式,来决定飞机的起飞与飞行。那么如何将这个游戏与Scratch程序教学相结合呢?在一次课堂尝试后我思考,如果把飞行棋中“掷骰子”的设计思路与选择(分支)结构相结合,抛出一个数字,完成对应的操作,是否可以更好地解读程序结构中选择(分支)结构的奥秘呢?
于是,我开始尝试。在课堂开始前,我先与学生一同讨论飞行棋游戏,学生们产生了非常浓厚的兴趣。随后,我发出任务,本节课我们要设计一个趣味飞行棋的游戏,请学生们思考探索设计思路。
经过小组讨论后,学生们在设计棋盘、导入角色等操作中,都没有遇到困难,唯独骰子的程序设计难倒了他们,于是我引导他们开始绘制思维导图,如图1。在思维导图与流程图的帮助下,学生们可以清晰地认识到飞行棋游戏中掷骰子的程序设计思想,即出现骰子点数,做出相应的操作。
课堂结束后,有很多学生觉得分支结构也可以叫判断结构,因为它一直在做判断,并根据判断的结果做出相应的操作。学生对选择(分支)结构,已经真正认识与理解了。
“简易猜数字”—— 解读循环结构
在经历了顺序结构与选择(分支)结构的学习与实践后,学生们对于程序语言与程序结构有了一定的认识。在此基础上,我引出循环结构的学习。对于循环结构,教师们的理解与学生们的初步理解是不同的,学生们可能认为循环结构,是无限循环,永不停止的,而通过教师的讲解以及Scratch趣味游戏的显性尝试后,学生们会理解到,在循环结构中,是有条件、有结束,不会无限循环。
在课堂开始时,我引导学生思考,在平时的生活中,我们在哪些时候,是必须在某种情况下,才能做特定的事件。当我提出这样的思考后,学生们很疑惑,于是我让他们进行分组讨论。
经历讨论后,教师引导学生设计猜数字的游戏。这款游戏的规则是输入一个目标数字作为谜底,然后询问“你猜我藏好的数字是多少”,在输入回答后,如果你的回答与答案并不相符,程序会告诉你“大了”或“小了”这两种提示;而当你输入的回答与答案数字相符,程序会告诉你“恭喜答对了”。以此游戏规则为抓手,我继续引导学生进行思维导图与流程图的绘制,经过学生的小组讨论与尝试,会生成流程图。
跟随着流程图,学生们在教师的带领下,各抒己见,大胆尝试,最终都能在团队协作的基础上实现趣味猜数字游戲的设计,如图2。
在经历了这个简易游戏的创作之后,学生对循环结构有了进一步的认识,也了解了一个完整的程序,是需要顺序结构、选择结构、循环结构相互合作,才能产生一个功能完善、程序精炼的程序语言。趣味游戏教学开拓学生的思路,让他们知道不管在学习中还是生活中,解决问题都有很多的方式,运用不同的方式,我们可以收获同样的结果。但是不同的方式,可以拥有不同的过程,这也是发展学生核心素养中提到的问题解决能力培养的一个重点篇章。程序设计教学的过程中,我们也在潜移默化地培养学生解决问题的能力、问题探究的能力、小组合作的能力。所以,在拓展性课程中,基于趣味游戏的Scratch程序设计教学是可以一举多得的。
在小学信息技术的教学中,我们无法深入地讲解程序语言与程序结构,但是我们可以通过简易的趣味Scratch游戏,让学生在小学阶段,就对程序语言、程序结构、程序设计有一个启蒙。学生在未来的成长与学习生活中,带着计算思维能力、创客理念,在学习道路上,上下求索,学有所思,学有所得。