杨艳艳
摘要:KODU是一款简单、直观、易上手的编程工具。KODU引入课堂给信息科技学科注入了新活力。基于KODU的游戏设计课程对培养学生的编程思维、创造设计能力以及解决问题的能力有积极的意义,其简洁的模块化编程,深得学生喜爱。本文结合KODU游戏设计教学案例,论述借助思维可视化工具展开的基于KODU的编程思维可视化教学实践及反思。
关键词:编程思维可视化;KODU;教学实践
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2018)01-0041-04
引言
当智能设备无处不在、社交网络颠覆生活方式、人工智能来到我们面前时,如何培养孩子更好地适应新世界成为父母、教师最大的挑战。如果孩子还是对编程一无所知,恐怕已远不能适应将来。面对这一切变化,Facebook创办人Mark Zuckerberg和微软创办人比尔·盖茨建议,学龄前儿童应该学习编程,这是因为编程除了控制和指令计算机执行任务,还是未来世界的共同语言。因此,我们除了为了让孩子们掌握编程本身,更要让他们继续勾画无限的未来。
相关研究基础
目前,多数研究者和教师都在探寻如何用更多元、更有趣的方式让学生对编程产生兴趣,认为编程学习是有意义的,并热爱上编程语言。通过教学实践,笔者发现了一款可视化游戏编程软件KODU,它能够激发学生的学习兴趣,并给信息科技课程注入新的活力。
1.KODU简介
KODU是微软未来社会化体验FUSE实验室研发的可视化程序设计语言,它以3D游戏的模式介绍编程概念,以及极为简化的编程模型来降低初学者的门槛,是一款简单、直观、易上手的编程工具(如图1)。学生能够在PC和Xbox上,自己动手设计原创的电脑游戏,激发无限创意,并了解电脑程序的运作。学生在KODU软件中可以学习建立一个虚拟的3D世界,并对虚拟角色编写程序,创造出有创意的、酷炫的3D动画或游戏作品,进而培养严密的逻辑思维、设计能力及想象力和创造力。
2.KODU教学应用
在学习KODU的过程中,学生可以充分发挥各自的想象力,观察生活,编制有趣的故事情节,依据KODU软件的开发环境要求,设计故事的三维场景、人物形象、活动轨迹、游戏规则,最终在计算机上实现可视化的故事情节。学习KODU软件,不只是学习编程技术,还能了解计算机工作和解决问题的方式,体验完成一项开发工作的完整过程,进而培养和提高学生的高级思维。
基于KODU的教学实践
基于KODU的教学实践,可采用一系列思维可视化工具,记录学生的学习过程、突发灵感及设计构思等。同时,这些思维可视化工具把学生难以用言语表述的设计构思图示化,能很好地展示学生的思维过程,是对学生的想象力、表达能力、视觉思维能力的综合反映,也是培养学生学会思考、分析问题和创造性思维的有效途径。下面,笔者以“小酷吃金币”为例,论述基于KODU的教学实践。
1.教师设计样例,学生从模仿开始
学生了解了软件的使用后,就可以从模仿开始进行游戏设计了。“小酷吃金币”是控制行为类小游戏,游戏场景中有一个人物小酷,玩家可以通过鼠标或者键盘上的按键,控制小酷的行走,找到散落的金币,并吃掉金币。
(1)任务分析
整体构思游戏设计需要哪几个任务?
任务1:设计制作场景(场景的大小、材质)。
任务2:添加对象小酷(1个)、金币(多个)。
任务3:需要编写的程序语句是:a.控制移动小酷;b.触碰金币时,吃掉金币。
任务4:保存并导出游戏文件分享给其他小组试玩。
(2)作品制作
①方案设计。作品制作从方案设计开始,学生讨论游戏“小酷吃金币”的场景设计方案,确定所需要的对象及其数量。场景可以使用默认场景,也可以使用场景设计工具对默认场景进行修改。
②游戏制作。包括场景设计、对象添加及属性设置。就游戏设计方案,完成场景的制作、对象的添加及属性设置。此游戏中涉及到两种对象,即小酷和金币。其中对象的属性根据游戏预设目标需要进行个性化设计,并使用对象设置记录表设置属性详情(如表1)。
③游戏编程。KODU中的每个角色都是一个对象,每个对象都有一个局部范围的变量。要为一个对象编写程序,可以在对象上单击鼠标右键,然后选择“编排程序”程序,进行程序的添加修改和删除,程序由“WHEN”和“DO”构成,单击“+”号可以为对象添加事件或动作,程序编写完成后,按“Esc”键返回游戏的设计场景。
KODU程序的语句结构很简单,只有一种格式:WHEN…DO…。編写程序时,只需在WHEN后面添加事件,也就是触发程序运行的条件,然后在DO后面添加要执行的动作即可,即如果<事件或条件>,那么<执行的动作>。
每个对象设置动作之前,要先构思游戏实现的流程,在构思过程中还要注意游戏的终极目标是小酷吃到金币,因此,在实现这个目标的过程中,需要构思小酷做哪些动作,才能实现目标,这个过程要求学生画出动作流程图(如图2)。
然后,根据动作流程图对对象小酷进行程序设计,具体编程内容如图3所示。当指定对象进行程序设计完成后,就可以保存游戏,进行试玩并检测游戏设计是否存在问题。另外,游戏设计完成后,可以导出游戏文件,分享已制作完成的游戏作品,与同伴共同试玩。
④学习记录。在游戏作品制作过程中,学生利用“学习记录单”记录游戏设计的相关内容,包含小组分工、制作过程中遇见的问题以及解决方案(如表2)。
(3)测评完善
在设计与制作游戏的过程中,学生需要不断地编辑、运行、修改,这一系列的步骤统称为调试。教师要培养学生养成在游戏制作过程中及时运行游戏、检测运行结果的习惯,即要求学生对游戏进行调试,并找到游戏的不足或错误,加以改进与修正。具体测评项如表3所示。endprint
2.游戏作品制作引导
(1)游戏创作构思的引导
在KODU游戏设计的教学中,教师需要引导学生设计创意场景,解决设计过程中遇到的问题,完善游戏规则机制的设计等。
在游戏设计之前,学生梳理游戏作品设计思路并填写“KODU游戏设计模板”(如图4),在填写游戏设,学生可以用形象化的图形或图画绘制,呈现出预设的简单游戏场景、书写游戏概述、核心对象及关键环节等。基于游戏设计模板,学生在绘制场景,设计游戏情节的过程中,不至于迷失和走马观花,同时在设计过程中引导自己去判断游戏场景设计的是否合理,如何改进,游戏的对象选择是否合理,如何调整,游戏的程序设计是否实现预设的功能,如何修改,等等。在这个过程中,学生带着问题,不断解决问题,不断修正和调整自己的想法和设计,对已知的信息进行判断和重组,从而激发高级思维能力。
(2)游戏改进构思的引导
游戏设计完成后,教师通过问题激发学生的高级思维,如“小酷吃金币”游戏设计完成后的问题设计。
①若适当提升金币高度,使得小酷必须通过跳跃才能吃到金币,该如何编写程序语句?
②游戏中能否让金币来吃小酷?
③如果能,怎样编写WHEN…DO…语句?如果不能,请说出原因。
④能否让两个小伙伴同时玩这个游戏呢?如果能,怎样编写WHEN…DO…语句?
提出一系列的问题的目的是帮助学生开拓思路,激发创意。问题的设计可以是知识拓展类型,也可以是设计思路方面的问题。
3.实践小结
基于KODU的游戏开发教学实践,学生学习创作过程中使用了一系列思维可视化记录工具。教师通过可视化思维工具能够随时掌握学生的学习动态和关于作品创作的构思,了解他们遇到的问题以及解决办法。另外,可视化记录工具记录了学生创作过程的思路构思,教师可以有针对性地为学生提供及时反馈。
实践反思及未来建议
基于KODU的编程思维可视化教学实践,还存在一系列问题需要进一步反思和实践:KODU软件以其逼真强大的三维场景极大地激发了学生创作作品的兴趣,但是学生的作品场景创设还不够精美,大多数作品场景简单朴素;作品创作中,一系列可视化思维工具可以记录学生的创作思维过程,但是实际应用过程中,学生并不是所有表格都喜欢使用;关于作品创作过程的问题记录,大多数问题涉及的内容是关于软件工具的使用,教师在提供帮助方面主要承担的是技术指导者的角色。针对这些问题,该如何应对,笔者反思后认为策略有如下方面。
1.充分利用社区资源激发学生的场景创意设计
KODU平台的优势之一就是场景搭建,针对场景搭建还不够有创意的问题,可以通过充分利用社区资源(KODU社区网址:http://www.kodugamelab.com/)来解决。KODU社区中可以下载KODU软件,寻找学习资源,浏览世界各地关于KODU游戏设计的相关信息及课程资源。KODU在线社区有丰富多彩的游戏设计案例,可以下载查看并试玩,这些资源是很好的学习内容,一方面可以拓展学生的视野,另一方面也可以激发关于游戏作品场景的创意设计。
2.已有可视化工具的优化与再设计
可视化工具在使用过程中,会出现一些很实际的问题,工具设计者、预设创作者会使用这些可视化工具,进行过程性记录,同时这也有助于作品的设计修改。但是,在实际应用过程中,很多表格是创作者不愿意进行填写的。如果不是硬性规定必须填写,创作者宁愿花更多的时间在作品的设计创作上,而不是各种记录表单上。因此,反思表格的设计就非常重要。可视化表格的设计需要让使用者感受到它的重要性、便捷性以及有效性。
3.利用微视频解放教师实现个性化教学
在KODU游戏设计课程实践过程中,学生提问最多的几个问题是:我想实现跳跃,该如何操作?某个动作或者对象在哪里?游戏场地如何扩大?
总结上面的问题可知,很多问题都集中在软件本身,涉及到创意或者复杂程序设计的问题几乎没有,这说明学生还是停留在软件学习本身,教师提供的帮助也只是技术指导者,对学生的创造性思维的激发还有很大的探索空间,因此,目前準备尝试制作微视频解决简单的软件技术操作问题,解放教师的技术指导者职责,进而更好地引导学生进行游戏创意设计方面的开发。
总之,学习编程开发,并不是让我们的孩子都成为小小程序员,而是让其通过学习编程这一过程,学会与人沟通和合作,学会分析问题、解决问题,具有创新意识及设计思维能力。设计思维的培养不是一蹴而就的,而是在不断地解决问题过程中强化提升。学生面对的是各种场景、各种游戏种别的开发,需要不断地设计,测试,再设计,再测试,这是一个不断循环往复的过程,学生就是在这样的过程中不断强化自我的编程思维。
参考文献:
[1]Microsoft FUSE Labs. Kodu Web Site. [EB/OL]http://fuse.microsoft.com/project/kodu.aspx.
[2]Stolee,K.T.Kodu language and grammar specification.Redmond,WA,USA:Microsoft Research,2010.endprint