以计算思维为导向的编程教育游戏的设计
刘立云 沈航冉
“计算思维”是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动,能给与人思考问题的正确方法,对构建算法有着重要的意义及启蒙作用。教育游戏是一种针对特定的教育目的而开发的严肃的游戏,教育性与娱乐性并重,它以游戏作为教育手段,将所要教授的知识以游戏的形式呈现,从而达到“寓教于乐”的效果。当前,计算思维已经成为人们生活中解决问题的首选思考模式,也是人们思维能力的主要特征之一。
研究现状及核心概念界定
现今社会已步入了高速发展的人工智能阶段,机器学习、数据挖掘、深度学习等不断发展,机器和人相互协作、相互影响,最终导致机器愈发智能化,人们在生活中和思想上解决问题的思路也愈发工程化,于是计算思维应运而生。在这个过程中,计算思维逐渐被确立为继“3R”——阅读、写作和算数能力之后的“4thR”能力,我们应该明确,它并不是专业人士才能学会的技能与本领,而是可以被所有人理解并掌握的能力,即它不局限于计算机专业领域,而是可以被所有人掌握的解决问题和认识世界的思维方式。研究发现,4岁左右的儿童已经具备理解基本的计算机编程概念的认知水平。因此,教育界开始尝试培养儿童的计算思维能力,如美国开设了在4~7岁年龄段培养计算思维的相关课程,国际计算机科学教师协会(CSTA)也提出了K-5儿童需要掌握模块化可视化编程语言和测试方案的能力。与此同时,APP Store及steam商店等应用程序商店中儿童编程游戏也开始出现,并受到了用户的持续关注和追捧。然而,现有的编程游戏缺乏创新,核心玩法机制设计大同小异,游戏挑战规则设计老套,游戏质量和算法质量良莠不齐。基于以上现状,为了达到推陈出新的目的,在解构计算思维能力的基础上,本研究拟以中小学生为教育游戏学习化的主体,依据现有编程游戏设计中存在的问题进行创新改进,以《小松鼠智闯代码森林》为实例分析儿童编程游戏的设计框架。
1.计算思维
计算思维这一概念于2006年3月被首次提出,提出后便引起了世界范围内的广泛关注,在其概念传入国内后,相关学者就在计算思维方面进行了多种研究,其被搜索率从整体上看呈逐年上涨趋势,可见计算思维已经逐步深入到我们生活的方方面面。
计算思维好比算法,是抽象的一种思维模式。在用算法解决问题的时候,我们往往需要先从分析问题入手,再进行建模,最后用相关工具或语言实现功能。而计算思维也是如此,但它不仅仅是基于编程语言的再实现,更是一种如同骑自行车、读写本国语言那般的思维活动,这种活动受到生活中种种外力影响,进一步影响并改善我们的思维能力。所以,不妨认为计算思维是基于计算机的一种科学手段来改善人们的思维方式,是计算机时代的产物,是每个人都应学会并理解的一种能力。
2.教育游戏
游戏源起于古代,用于娱乐休息。随着时代的发展,游戏也被赋予了新的使命,游戏不再只是用于休闲娱乐,对于教育游戏而言,玩家可以在游戏中了解到相关知识并对知识有初步的学习应用。
3.编程教育游戏
编程是计算机语言发展的产物,在计算机信息时代,各种编程语言也随之发展。然而,并非所有人都有能力或有条件接触编程,而编程又是培养计算思维的绝佳方法,因此专业人士开始引入了编程教育游戏的概念,所谓的编程教育游戏,就是以编程为游戏主题,结合传统教育游戏进行开发的一条游戏分支,旨在培养玩家的编程思维能力。
4.以计算思维为导向的编程教育游戏
对于编程教育游戏而言,最终的目标已经确认,即培养编程思维能力,但如何培养,怎么样可以更好地进行培养,就成了当前研究的重点与目标。研究发现,编程思维能力与计算思维有着不可分割的关系,它们相辅相成,因此以计算思维为导向进行编程教育游戏的设计,将会获得更好的效果。与此同时,通过游戏最后的目的即编程思维能力的培养,又可以反作用于计算思维的培养,通过学习到的计算思维能力,可应用于生活各处。
现存编程教育游戏的问题剖析
世界上第一款孩童编程教育游戏《LOGO编程语言》通过输入代码控制小乌龟进行移动绘画。虽然它利用了可视化的方法帮助玩家理解游戏及机制,但对于从未接触过编程甚至从未接触过计算机相关思维的孩童来说,这种可视化的方法依然较难理解——这更像是为程序员而开发的游戏。
游戏1的剧情为悟空在花果山中驾着筋斗云,认识游戏场景中出现的所有场景所对应的汉字。例如,花果山对应汉字“山”,在游戏中,只要触碰到花果山这个场景,就会弹出一个写字框,告诉玩家如何书写汉字“山”。这个“山”在游戏中不会再出现,即所谓的“学过了,就过去了”,这种方式只是通过绘本故事来灌输汉字知识,缺乏连续性的设计。
游戏2是一款基于Steam平台的城市建造沙盒类游戏,在游戏过程中可以学到建造楼房、布局楼盘、环境分布等一系列关于城市建造的知识。这类游戏的一个显著特点是游戏时间长,建造过程慢,需要多次游戏才能有阶段性成果,所以云存储成为了必要。在该游戏中,每次游戏结束前都可以将游戏进度保存到云盘中,下次打开游戏后便可以读取云盘内容获得游戏中已经建造的所有信息。然而,这款游戏虽然在Windows平台可以流畅运行,但在Mac OSX平台却运行困难,在产品兼容性方面存在问题。
综上所述,现有编程教育游戏大都存在缺乏连续性设计、过于高估孩童对编程的理解能力、产品兼容、游戏玩法核心机制单一、只注重代码编写培养而忽略计算思维能力的培养等缺点。
以计算思维为导向的编程教育游戏《小松鼠智闯代码森林》的设计
1.关卡1——键盘移动
在本关中玩家使用左右方向键和Z跳跃键进行冒险,发现并收集隐藏在草丛中的物品然后吃钻石进入下一关。本关中,玩家使用键盘控制人物进行移动,玩法与《超级玛丽》相似,本关以委婉的口吻进行了额外的提示:玩家应当学习并懂得方向的英文说法,但并没有在游戲中直接体现。
2.关卡2——键盘移动续
在本关中仍旧保持着关卡1的风格,只是在每关特有的提示上做了改动,进一步阐述了英文在计算机中的作用,并开始出现了编程的概念,使玩家进一步了解所编写程序在计算机中是如何执行的。
3.关卡3——鼠标模拟键盘移动
在本关中键盘已经不再可以操作行动了,而改为左上角的三个按钮。本关的目的和意义是让玩家了解并非必须使用方向键才能进行移动,移动的指令所对应的代码是固定的,想移动的话可以随时改变键位,甚至不需要键盘只使用鼠标也可以进行移动,它们的本质是相同的。
4.关卡4——鼠标模拟键盘移动续
在本关中仍旧保持着关卡3的风格,只是加大了游戏的操作难度和趣味性,作为一款编程教育游戏,不能只考虑传输知识,还必须提升游戏的趣味程度,这样才能增加玩家的兴趣以及在游戏中的沉浸感。本关仍然包含隐藏物品可以收集,至此,所有隐藏物品已经全部出现在本游戏中,它们分别是字块Float、False、True和While。每当收集到物品时,会出现相应的提示与解释,使玩家不知不觉学习并了解到这些字块的作用和意义,即达到了连续性设计的目标。
5.关卡5——代码指令移动
在关卡设计方面,本关卡保持了和前面幾关相同的游戏背景风格,游戏任务也依旧是寻找隐藏物品并触碰钻石以进入下一关卡,即保证了游戏的连续性与沉浸性。本关卡需玩家自行写出代码完成松鼠的移动,游戏页面右上角有一个简易的代码编辑器,玩家可以通过输入相应的指令来移动小松鼠。本关的目的是让玩家了解到并非必须使用外设才能进行操作,在计算机系统中外设所对应的本源也将会是程序中的代码,所以这里直接让玩家书写代码来完成任务。由于前面的关卡已经对这些知识进行了详细的介绍,从简至难逐层过渡,因此不会有突兀的感觉。
6.关卡6——道具使用实时效果
在最后一关中,玩家将结合所学的编程知识进行思考,反作用于计算思维的提升,右上角的代码编辑器改为一个死循环代码段,玩家需从背包中选择正确的道具代码块“Float”对其进行覆盖,将循环判定条件改为假,方可结束死循环。为了使玩家更容易理解,所以结合了本游戏中的道具“刺儿”实时体现出循环的意义,原本不断掉落的“刺儿”一旦被修改了循环条件,将会停止生成,道路会被打通,玩家可以通过。
结论与展望
通过对教育游戏近年发展的思考,笔者认为将教育游戏与思维培养结合在一起,利用游戏本身逻辑性强的特点,设计以计算思维为导向的编程教育游戏,将会是一个提高学生学习效率、增大学生学习兴趣的方式。使用教育游戏的形式进行思维培养,其优点体现在以下方面:①教学者化身为游戏角色,使用教学模型进行引导,更具有“代入感”。②玩家使用预先制订好的模型进行学习,边学边玩达到“寓教于乐”的效果。③在游戏中兴奋时间更为长久,并且会自发地进行思考。④以游戏的形式展现,玩家会更感兴趣。本研究通过《小松鼠智闯代码森林》教育游戏,论证了以计算思维为导向的编程教育游戏实现的可能,并分享了设计此类游戏的思路。在设计时首先明确了大方向即教育游戏,在此基础之上以编程教育为主要内容,开始制作编程教育游戏,以计算思维为出发点,在游戏最后回归计算思维的应用,二者相辅相成。当前,计算思维已逐步融入人们的生活,培养计算思维已势在必行,尤其是对于中小学生而言,他们正处于思维的成长阶段,好的计算思维可以让他们更加理性地认识世界、解决问题。
基金项目:本论文为山西大同大学大学生创新创业训练计划项目课题:“设计思维支持下的小学创客教育实践探究”(课题编号:XDC2019210)的阶段性成果。