APP下载

基于CodeCombat平台的Python语言游戏化学习探索

2018-10-20董金钊董新飞

中国信息技术教育 2018年18期
关键词:Python语言游戏化学习编程

董金钊 董新飞

摘要:编程语言的学习枯燥乏味,语法、逻辑、算法等让初学者望而却步。本文作者尝试将游戲化学习理念运用到编程学习中,采用网络游戏的方式,对学习Python语言编程进行了实验,并对实验过程、实验结果进行了总结,认为游戏化学习可以激发学习者的学习兴趣,提高学习效率。

关键词:CodeCombat;游戏化学习;Python语言;编程

中图分类号:G434 文献标识码:A 论文编号:1674-2117(2018)18-0042-03

● 研究背景

升入高中后,因为参加了学校组织的Python编程特长学习小组,繁重的学习任务挤占了不多的课余时间,面对学习压力,笔者不禁要问,怎么才能既学习特长,又愉快玩耍呢?在图书馆查找资料时,笔者发现了《游戏化学习》和《游戏改变世界》两本书,经过细致研读,知道了游戏对学习者的几个作用:①可以提高游戏者的学习兴趣;②循序渐进的游戏进程有利于促进知识的掌握;③能够锻炼和协调手眼互动等基本能力;④有助于培养游戏者解决问题的能力;⑤培养合作能力;⑥为游戏者体验学习提供可能。既然游戏具有一定的教育意义,而学习也并非天然姓“苦”,那么若能够将玩网络游戏和学习结合起来,将游戏以一种特定的形式设计成有效的学习方式,让学习者在快乐中学习,会不会有意想不到的效果呢?

● 理论准备

2014年度的《地平线报告》中就强调了“游戏与游戏化”,报告指出,“未来两到三年,3D打印技术、游戏与游戏化、沉浸式学习环境和可穿戴技术将得到广泛应用”。游戏化学习(Learn through play),又称为学习游戏化,指的是采用游戏化的方式进行学习,它是流行的教育发展方向,已成为“互联网+”浪潮中学习的风向标。

笔者在网上搜索相关资料时,发现目前国内与国外都有学习网站做得非常人性化,学习者可以在游戏中“寓教于乐”。编程学习游戏化的网站有Codecademy、Codeschool、Treehouse、CodinGame、CodeCombat等,涉及的编程语言有HTML/CSS、Python、PHP、Ruby、APIs、Javascript、jQuery等多种。

● 探索过程

1.平台选择

笔者所在的特长小组学习的编程语言主要为Python,比较各网站的特点后选择在CodeCombat上学习编程(针对级别为初学者到中级水平的开发者),其特点是使用游戏化编程模式,通过目标引导,做到实时反馈。

2.实验分组

为验证游戏化学习的可行性和实验效果,笔者所在的特长小组共30名同学每15人一组分成了教师辅导组和游戏实验组。两个小组采用同样的学习进度,教师辅导组实行教师讲课、组员自主编程练习的方式,游戏实验组采用组员自己游戏、教师指导的方式。两个小组在实验一段时间后进行编程竞赛,以比较两种学习方法的优缺点。

作为游戏化学习的倡议者,笔者担任了游戏实验组的组长,负责统筹学习过程和汇总实验数据,并在实验出现不良前兆时向教师汇报并中止游戏实验。经过小组讨论并结合游戏学习的基本步骤,笔者制订了学习(游戏)计划,将15人分成3个小组,要求组内成员全力合作,相互监督,同时在小组间引入了竞争机制。

3.实验过程

首先,游戏实验组的同学都在CodeCombat上注册了账号,并对网站进行了初步的了解。CodeCombat支持JavaScript、CoffeeScript、Lua、Python和Clojure5种编程语言,每个级别包含不同的任务,如搜集宝石、打败怪兽以及找出通往下一关的道路。一部分关卡免费,订阅会员可以玩所有关卡。对于入门级的学生来说,免费的关卡已经足够了。

(1)旗开得胜

游戏实验组的同学在了解了游戏机制、熟悉了页面中各功能的作用后,打开第一个关卡,选择道具、英雄、编程语言后就可以在向导的指引下完成初步的游戏操作。

游戏窗口左边是动画区,右边是代码区。CodeCombat要求玩家使用代码来操控游戏人物,在代码区输入代码后,单击“运行”按钮,游戏人物即可按代码运行结果来运动。如果有代码错误,会实时以红色字体提示,同时运行中有问题也实时提示。如果代码和逻辑没问题,则可点击“完成”按钮进入下一关,学习新的内容。在游戏中,每一位学习者都可以从“实战”中不断学习编程语言的语法、逻辑等知识……在实验进行三周,学习了基础知识,对函数结构有初步的认识后,在基本语法的竞赛中,游戏实验组的成绩明显高于教师辅导组的成绩(如表1)。

(2)溃不成军

在学习判断、循环语句时,由于需要有更多的创造性,通过语法、接口编写出复杂的函数才能过关,又由于游戏实验组的同学缺乏教师的指导,缺乏完善编程的思维,游戏实验组同学的成绩不如教师辅导组(如表2)。

总结成绩低的原因,主要是对理论知识掌握不足,在解决实际问题过程中缺乏教师的及时指导,算法选择不当,语法错误百出。由此得出结论,光靠激情,没有教师的及时点拨,没有最优的算法做基础,学习编程语言会走很大的弯路。

(3)重整旗鼓

为了提高游戏效率,笔者与游戏实验组的同学们又重新学习了游戏学习的相关知识,决定在线上编程学习的同时,引入线下游戏的模式,做到线上、线下同步进行,同步反馈、同步跟进。

线上就是遵循CodeCombat平台的游戏规则,在游戏过程中学习和强化编程知识,精进编程能力。在游戏学习的同时,加大了“复盘”力度,即在每个游戏结束后,休息15分钟,其间进行小组经验分享,对游戏过程中采用的策略进行复盘,分析最高分团队和最低分团队各自所采用的策略,在讨论中找出最优算法,并就典型问题向教师请教,加入网上各种讨论组,充分利用百度帖吧、论坛、QQ群等向高手学习。

线下游戏是指参加游戏学习的同学每3人一个互助小组,在公开、公正、自愿,可执行性高的前提下,建立了引入竞争机制的游戏学习制度:①筹集游戏基金。经过充分讨论,游戏成员从自己的零用钱中取出相同的数目(每人100元),汇集成游戏基金,供游戏中进行奖励激励。②把学习大目标分解为小关卡。把一个周期的学习目标(一个知识系列)分割为多个两天可以完成的小目标(小关卡),关卡完成后有实时积分奖励。③周期测试大BOSS。一个学习周期进行一次终极大比拼(相当于学科学习中的单元测试),请专业教师当裁判,对完成情况进行评价。④奖励机制。小关卡积分和大BOSS奖励积分按40%和60%的比例进行综合,评选出优胜团队进行现金奖励,奖励基金可以自主支配。

经过不断的学习和总结,游戏学习组同学的编程能力突飞猛进,从第三次竞赛的结果可以看出(如表3),已将教师辅导组的同学远远地甩在身后。

(4)捷报频传

两个月后,在教师的帮助下,笔者与游戏实验组的同学总结了游戏化学习的经验,现在,已在全校相关学科进行了实验推广,并取得了小范围的成功。

● 学习心得

通过对基于CodeCombat平台的游戏化学习编程实验的探索,笔者总结出了游戏化学习的基本公式:游戏化学习=学习项目(游戏)+故事背景(規则设定)+反馈机制(积分系统和升级机制)+成就感(奖励设定)。在这个游戏化学习公式中,激励人的因素有以下几个。

1.及时反馈

每完成一个任务(编程任务),游戏者都能得到及时的反馈,能快速和清晰地了解自己的游戏行为所产生的收益,并在领取到收益时获得了极大的心理满足感。

2.成就感

对于游戏中的每一个任务或挑战,游戏者都可以无数次试错,通过不断修正、查阅攻略,或者交流,总能最终成功。游戏过程中只记录成功,不记录失败,这样游戏者展示给别人的总是自己成功的一面,从而能体会出自己的价值。

3.丰厚奖励

游戏中每完成一个关卡,游戏者都能解锁新的技能或者功能;完成一个任务,能获得罕见材料或者武器、英雄,让游戏者属性大增,最不济还能完成任务,获取经验和金币。获取这些金币、积分后,英雄游戏者可以按自已的意愿进行处置。

4.多系统、多目标和多任务

游戏中富含各种系统,每个系统又包含不同的任务和成就,这些设定让游戏者在游戏中拥有大量的大目标和小目标,每当完成一个目标后游戏者就会获得丰厚的奖励。

● 结语

将网络游戏融入学习,可以较好地激发学习者的学习兴趣,使原本动机水平较低的学习者能够自主学习程序设计技能,获取任务激励,获得成就感,从而培养良好的职业素养。游戏化学习在未来必将不断扩大应用范围,VR虚拟现实游戏的诞生也会为游戏化学习带来新的体验。

参考文献:

[1]百度百科[EB/OL].https://baike.baidu.com/.

[2]极客战纪[EB/OL].https://e.codecombat.163.com/premium.htm#/premium.

[3]简·麦戈尼格尔.游戏改变世界[M].闾佳,译.杭州:浙江人民出版社,2012,9.

[4]庄绍勇.游戏化学习[M].北京:北京师范大学出版社,2015,10.

[5]王世颖.人本游戏——游戏让世界更美好[M].北京:电子工业出版社,2014,2.

猜你喜欢

Python语言游戏化学习编程
玩游戏学编程,Blockly Games上手玩
纺织机上诞生的编程
编程屋完成数百元万天使轮融资
学编程,先画画
基于Python语言和支持向量机的字符验证码识别
论Python程序设计语言
基于Python语言的面向对象课程实践教学探讨
基于Android的Python语言英汉维电子词典设计与实现
一次游戏化的探究式化学知识学习