信息技术课
tougao4@chinaitedu
42
中国信息技术教育
摘要:
编程语言的学习枯燥乏味,语法、逻辑、算法等让初学者望而却步。本文作者尝试将游戏化学习理念运用到编程学习中,采用网络游戏的方式,对学习Python语言编程进行了实验,并对实验过程、实验结果进行了总结,认为游戏化学习可以激发学习者的学习兴趣,提高学习效率。
关键词:
CodeCombat;游戏化学习;Python语言;编程中图分类号:
G434  文献标识码:A  论文编号:1674-2117(2018)18-0042-03基于CodeCombat平台的Python语言游戏化学习探索
董金钊  河南省济源第一中学
董新飞  河南省济源市电化教育和技术装备管理中心
● 研究背景
升入高中后,因为参加了学校组织的Python编程特长学习小组,繁重的学习任务挤占了不多的课余时间,面对学习压力,笔者不禁要问,怎么才能既学习特长,又愉快玩耍呢?在图书馆查资料时,笔者发现了《游戏化学习》和《游戏改变世界》两本书,经过细致研读,知道了游戏对学习者的几个作用:①可以提高游戏者的学习兴趣;②循序渐进的游戏进程有利于促进知识的掌握;③能够锻炼和协调手眼互动等基本能力;④有助于培养游戏者解决问题的能力;⑤培养合作能力;⑥为游戏者体验学习提供可能。既然游戏具有一定的教育意义,而学习也并非天然姓“苦”,
那么若能够将玩网络游戏和学习结合起来,将游戏以一种特定的形式设计成有效的学习方式,让学习者在快乐中学习,会不会有意想不到的效果呢?
● 理论准备
2014年度的《地平线报告》中就强调了“游戏与游戏化”,报告指出,“未来两到三年,3D打印技术、游戏与游戏化、沉浸式学习环境和可穿戴技术将得到广泛应用”。游戏化学习(Learn through play ),
又称为学习游戏化,指的是采用游戏化的方式进行学习,它是流行的教育发展方向,已成为“互联网+”浪潮中学习的风向标。
笔者在网上搜索相关资料时,发现目前国内与国外都有学习
网站做得非常人性化,学习者可以在游戏中“寓教于乐”。编程学习游戏化的网站有Codecademy 、C o d e s c h o o l 、Tr e e h o u s e 、CodinGame、CodeCombat等,涉及的编程语言有HTML/CSS、P y t hon、PH P、Ruby、A PIs、Javascript、jQuery等多种。
● 探索过程1.平台选择
笔者所在的特长小组学习的编程语言主要为Python ,比较各网站的特点后选择在CodeCombat 上学习编程(针对级别为初学者到中级水平的开发者),其特点是使用游戏化编程模式,通过目标引导,做到实时反馈。
2.实验分组
为验证游戏化学习的可行性
信息技术课
tougao4@chinaitedu
43
SEP 2018 NO.18
和实验效果,笔者所在的特长小组共30名同学每15人一组分成了教师辅导组和游戏实验组。两个小组采用同样的学习进度,教师辅导组实行教师讲课、组员自主编程练习的方式,游戏实验组采用组员自己游戏、教师指导的方式。两个小组在实验一段时间后进行编程竞赛,以比较两种学习方法的优缺点。
作为游戏化学习的倡议者,笔者担任了游戏实验组的组长,负责统筹学习过程和汇总实验数据,并在实验出现不良前兆时向教师汇报并中止游戏实验。经过小组讨论并结合游戏学习的基本步骤,笔者制
订了学习(游戏)计划,将15人分成3个小组,要求组内成员全力合作,相互监督,同时在小组间引入了竞争机制。
3.实验过程
首先,游戏实验组的同学都在Co d eComb at上注册了账号,并对网站进行了初步的了解。CodeCombat支持JavaScript、CoffeeScript、Lua、Python和Clojure5种编程语言,每个级别包含不同的任务,如搜集宝石、打败怪兽以及出通往下一关的道路。一部分关卡免费,订阅会员可以玩所有关卡。对于入门级的学生来说,免费的关卡已经足够了。
(1)旗开得胜
游戏实验组的同学在了解了游戏机制、熟悉了页面中各功能的作用后,打开第一个关卡,选择道具、英雄、编程语言后就可以在向
导的指引下完成初步的游戏操作。
游戏窗口左边是动画区,右边是代码区。CodeCombat要求玩家使用代码来操控游戏人物,在代码区输入代码后,单击“运行”按钮,游戏人物即可按代码运行结果来运动。如果有代码错误,会实时以红字体提示,同时运行中有问题也实时提示。如果代码和逻辑没问题,则可点击“完成”按钮进入下一关,
学习新的内容。在游戏中,每一位学习者都可以从“实战”中不断学习编程语言的语法、逻辑等知识……在实验进行三周,学习了基础知识,对函数结构有初步的认识后,在基本语法的竞赛中,游戏实验组的成绩明显高于教师辅导组的成绩(如表1)。
(2)溃不成军
在学习判断、循环语句时,由于需要有更多的创造性,通过语法、接口编写出复杂的函数才能过关,又由于游戏实验组的同学缺乏教师的指导,缺乏完善编程的思维,游戏实验组同学的成绩不如教师辅导组(如表2)。
总结成绩低的原因,主要是对理论知识掌握不足,在解决实际问
题过程中缺乏教师的及时指
导,算法选择不当,语法错误百出。由此得出结
论,光靠激情,没有教师的及时点拨,没有最优的算法做基础,学习编程语言会走很大的弯路。
(3)重整旗鼓
为了提高游戏效率,笔者与游戏实验组的同学们又重新学习了游戏学习的相关知识,决定在线上编程学习的同时,引入线下游戏的模式,做到线上、线下同步进行,同步反馈、同步跟进。
线上就是遵循CodeCombat平台的游戏规则,在游戏过程中学习和强化编程知识,精进编程能力。在游戏学习的同时,加大了“复盘”力度,即在每个游戏结束后,休息15分钟,其间进行小组经验分享,对游戏过程中采用的策略进行复盘,分析最高分团队和最低分团队各自所采用的策略,在讨论中出最优算法,并就典型问题向教师请教,加入网上各种讨论组,充分利用百度帖吧、论坛、QQ等向高手学习。
线下游戏是指参加游戏学习的同学每3人一个互助小组,在公开、公正、自愿,可执行性高的前提下,建立了引入竞争机制的游戏学习制度:①筹集游戏基金。经过充分讨论,游戏成员从自己的零用钱中取出相同的数目(每人100
表1              第一次竞赛成绩
表2              第二次竞赛成绩
信息技术课
tougao4@chinaitedu
44
中国信息技术教育
元),汇集成游戏基金,供游戏中进行奖励激励。②把学习大目标分解为小关卡。把一个周期的学习目标(一个知识系列)分割为多个两天可以完成的小目标(小关卡),关卡完成后有实时积分奖励。③周期测试大BOSS。一个学习周期进行一次终极大比拼(相当于学科学习中的单元测试),请专业教师当裁判,对完成情况进行评价。④奖励机制。小关卡积分和大BOSS奖励积分按40%和60%的比例进行综合,评选出优胜团队进行现金奖励,奖励基金可以自主支配。
经过不断的学习和总结,游戏学习组同学的编程能力突飞猛进,从第三次竞赛的结果可以看出(如表3),已将教师辅导组的同学远远地甩在身后。
(4)捷报频传
两个月后,在教师的帮助下,笔者与游戏实验组的同学总结了游戏
化学习的经验,现在,已在全校相关学科进行了实验推广,并取得了小范围的成功。
可以学习编程的网站
● 学习心得
通过对基于CodeCombat平台的游戏化学习编程实验的探索,笔者总结出了游戏化学习的基本公式:游戏化学习=学习项目(游戏)+故事背景(规则设定)+反馈机制(积分系统和升级机制)+成就感(奖励设定)。在这个游戏化学习公式中,激励人的因素有以下几个。
1.及时反馈
每完成一个任务(编程任务),游戏者都能得到及时的反馈,能快速和清晰地了解自己的游戏行为所产生的收益,并在领取到收益时获得了极大的心理满足感。
2.成就感
对于游戏中的每一个任务或挑战,游戏者都可以无数次试错,通过不断修正、查阅攻略,或者交流,总能最终成功。游戏过程中只
记录成功,不记录失败,这样游戏者展示给别人的总是自己成功的一面,从而能体会出自己的价值。
3.丰厚奖励
游戏中每完成一个关卡,游戏者都能解锁新的技能或者功能;完成一个任务,能获得罕见材料或者武器、英雄,让游戏者属性大增,最不济还能完成任务,获取经验和金币。获取这些金币、积分后,英雄游戏者可以按自已的意愿进行处置。
4.多系统、多目标和多任务游戏中富含各种系统,每个系统又包含不同的任务和成就,这些设定让游戏者在游戏中拥有大量的大目标和小目标,每当完成一个目标后游戏者就会获得丰厚的奖励。
● 结语
将网络游戏融入学习,可以较好地激发学习者的学习兴趣,使原本动机水平较低的学习者能够自主学习程序设计技能,获取任务激励,获得成就感,从而培养良好的职业素养。游戏化学习在未来必将不断扩大应用范围,VR虚拟现实游戏的诞生也会为游戏化学习带来新的体验。
表3                    第三次竞赛成绩
参考文献:
[1]百度百科[EB/OL].baike.baidu/.
[2]极客战纪[EB/OL].e.codecombat.163/premium.htm#/premium.[3]简·麦戈尼格尔.游戏改
变世界[M].闾佳,译.杭州:浙江人民出版社,2012,9.[4]庄绍勇.游戏化学习[M].北京:北京师范大学出版社,2015,10.
[5]王世颖.人本游戏——游戏让世界更美好[M].北京:电子工业出版社,2014,  2.注:本文第一作者为河南省济源第一中学2017级19班学生。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。