极客战记在高中程序设计教学中的应用
吴 苗 裘国永
(陕西师范大学计算机科学学院 陕西·西安 710119)
摘 要 目前,在高中阶段的编程教学中,最常使用的就是VB语言以及近来比较热门的图形化编程平台,但是取得的教学效果并不理想。如何提高中学段编程教育的教学效果是急需解决的问题。极客战记是一款游戏化的编程平台,在这个平台上,学生可以编写代码,构思策略,在闯关的过程中通过试错和实验循序渐进地掌握编程。笔者实习所在的陕西师范大学附属中学在高一年级的信息技术教学中采用了这种编程平台,笔者通过课堂听课、课下与相关学生进行交流询问等方式,调查了极客战记教学平台在中学编程教学中的实际教学效果。研究发现,极客战记以其游戏化教学平台以及简单易学的Python编程语言受到学生的欢迎,采用极客战记教学平台,课堂的教学效果更好。结果表明,极客战记编程平台相比于传统的编程教学方式有很大的优势,值得推广。
关键词 编程教学 游戏化编程 极客战记
0 引言
牛津大学的经济学家2013年曾对现有的702种职业进行量化评估并得出结论,未来20年有一半的工作将被机器所取代。[1]经过几年的发展,人工智能领域不断出现突破性的技术,如语音识别、人脸识别、自然语言处理等,这些技术发展迅猛,极大地改变了人们的生产生活方式。现实生活中,很多的工作都可以由机器人取代。如美国《华盛顿邮报》的写作机器人Heliograf,可以作出含有分析、评论等语气的报道。谷歌在2016年的I/O大会上推出了语音助手Google Assistant,可以和人进行无障碍沟通,帮助人们进行电话预约等工作,相当于一个非常完美的私人秘书。另外还有微软Bing搜索中国团队发布的一款智能聊天机器人微软小冰,可以实现作词作曲以及歌曲的演唱。这些人工智能工具的使用证实了牛津大学经济学家的结论,也标志着人们正式跨入了人工智能时代!
人工智能被公认为引领未来发展的战略性技术,是国际竞争的新焦点。编程是人工智能产业的基底,[2]编程在人工智能时代的定位就相当于机器在工业时代的定位。[3]因此,在中小学开展编程教育,为人工智能的发展培养人才已经刻不容缓。全球已经有超过24个国家将青少年编程教育纳入 K12课程大纲或教学场景。
1 我国高中阶段的编程教学存在的问题
我国的编程教育起步较晚。在高中阶段的编程教学中,我国大多数的学校使用的是图形化编程平台和VisualBasic(VB)编程语言。VB语言编程重语法,课程内容多为理论知识的讲解。学生因缺乏计算机硬件相关的知识,对教学内容理解起来非常困难,导致学生缺乏学习的兴趣。在上机操作时,很多学生也只是照猫画虎地将教材上的程序照搬到电脑上,但实际上他们并不理解代码的意义,编程课的教学效果很不理想。而图形化编程如Scratch通过搭积木的方式编程,用图形模块代替代码指令,用户可以将代表不同的功能的图形模块拼接起来,完成简单的动作,然后将一个个简单的动作组合起来,构建出一个程序。整个编程过程不涉及代码的编写,比较适合没有编程经验或者编程基础薄弱的小学初中阶段的学生,这能激发他们对编程的学习兴趣,帮助他们了解和掌握程序的逻辑结构。但是对于高中阶段的学生来说,他们在小学初中阶段已经接受过这种教学,对程序的逻辑结构已经有了一定的了解,此时需要让他们开始接触真正的编程语言,学会用真正的编程语言代码来编写程序,以培养其良好的编程代码书写习惯,为大学更深层次的学习打下基础。
2 极客战记的概念
极客战记(CodeCombat)是一款游戏化编程教育产品。它将编程的教学过程转化为一个个游戏关卡,通过在右侧输入程序代码来控制左侧角色的移动和攻击等动作,当输入的代码错误时,会提示代码输入错误,并展示具体的出错信息,学生可以根据提示及时解决错误。在完成每个关卡后都会有内容回顾,展示上一关卡所学到的内容。而且随着关卡升级,编程的难度会越来越高,在不知不觉中培养了学生的编程思维。
2016年,极客战记推出了教师版本,供学校教学使用。在教师界面,教师可以创建自己准备教授编程语言的课程教室,学生在注册了账号之后,可以通过搜索教师开设的课程教室的班级码进入教室进行学习。教师通过点击某个课堂教室—查看课堂,可以查看具体每个教室的学生的学习情况,点击课程进度,可以查看每个学生的关卡学习进度,非常方便。
在本学期的前半部分,该学校高一年级学生在程序设计教学中所使用的是VB编程语言以及Scratch图形化编程。在后半学期,学校引入了极客战记游戏化教学平台。在实习的过程中,笔者通过课堂听课观察、课下向学生了解学习效果来调查使用极客战记教学平台的教学效果。
2.1 游戏化教学
在前期的教学中,老师已经向学生介绍了极客战记,指导学生完成了夺取宝石、逃出地牢等关卡,学生学会了编写让角色移动以及攻击敌人的指令。本节课主要来学习循环结构。通过让学生输入Python代码指令控制游戏角色的行动的过程来让学生理解什么是循环结构以及循环结构的重要性,学会使用Python语言来实现简单的循环结构程序。
2.2 编程语言的选择
秦明月又说:“说实话,这一次我感觉真的很不好,这案子只怕不是那么简单的事,但是既然碰上了,就不能放过这家伙。现在我安排如下几件事。”
另外,不同于其他语言用大括号或是采用控制结构配套的结束语句来确定程序代码的起止范围。Python语言编程使用程序语句的缩进来确定代码块的起止范围,类似于中文中的段落缩进,结构清晰,便于阅读。在极客战记中,当输入的代码格式错误时,系统会立即报错,提示修改,这样能够培养学生良好的程序代码编写习惯,为后续更加深入的学习奠定良好的基础。
3 研究过程
暑假生活好似一个大蛋糕,粉色的奶油上坠满了快乐,绿色的花瓣里透出激动与愉快,而蓝色的花边折起了一片片幸福,蛋糕上镶着两个金刚灿灿的大字——暑假。
张华是人力资源专业毕业的学生,由于就业面比较狭窄,因此就业形势一直很不好。而学校为了扭转就业形式不好的情况,也组织了多场招聘会。就在张华为工作发愁的时候,让张华没有想到的是同宿舍的小柯却找到了一份很好的工作——一家网络公司的客户经理助理。
3.1 研究对象
向学生讲解循环结构,使用循环结构应该注意的地方及其在程序设计中的巨大作用。
极客战记编程平台支持多种编程语言,其中包含Python、Javascript等语言。传统的C、VB语言由于过分强调语法,需要学生对地址、指针等计算机系统结构相关的知识以及语言的开发环境等非常熟悉,这需要花费大量的时间,且学生往往很难理解,所以教学效果不理想。Python语言的执行是基于虚拟机机制的,并且它的虚拟机距离真实机器的距离更远,该特点使得学生无需具备太多的硬件知识。[4]Python语言编程支持图形输出,具有更少的代码。在编程的过程中对于变量可以直接使用而无需定义,且代码易读易学,维护简单,实现同样的操作,使用Python编写的程序代码要远远少于VB和C编写的程序代码。Python语言是目前最接近自然语言的通用编程语言,是一种轻语法、弱类型的脚本语言。[5]阅读一段好的Python程序就像是阅读英语,使得学生能够专注于计算问题的求解过程,对程序设计有一个全新的认识,使他们更愿意更好地使用计算机解决问题,体现了计算机解决计算问题的计算思维理念。
3.2 极客战记在高中编程教学中的运用
极客战记编程平台不同于VB语言编程,它使学生在玩游戏的过程中学习编程,这正好契合了当今学生普遍爱玩游戏的心理。极客战记编程平台界面设计炫酷,能够吸引学生的学习兴趣,使学生在玩儿游戏这样一个轻松愉快的过程中学会编程,同时也能缓解学生对于各种网络游戏的痴迷。
提示学生观察角色在到达目的地的过程中的行为,有些动作是重复的,相应的语句代码也是重复的,引出循环结构的使用。指导学生来使用while true语句结构,完成角色闯关。
首先向学生展示需要用到循环结构的关卡,让学生思考,互相讨论,为了使角色达到目的地,应该怎样操作。
评价促进学习经历的丰厚,促进教师的专业发展。基于标准的评价允许学生有多元机会来达成教师设置的评价,真实反映了学生在学习中的状态,包括存在的缺陷。而暴露缺陷也让学生明白了应努力的方向,促进学习经历并使之丰厚起来。
笔者实习所在的陕西师范大学附属中学高一年级的学生。
3.3 教学效果分析
通过课堂观察发现,在使用VB语言讲解循环结构时,需要定义变量,语句繁琐,学生往往不能很好的理解,导致他们学习兴趣不高,教学效果差。在使用极客战记进行教学时,游戏化的教学氛围能够充分激发学生的学习兴趣。使用Python语言,无需太多的代码语句,程序简单,且Python语句中使用很多的英文单词,接近人们常用的自然语言,程序代码容易理解和记忆。在编写好相应的程序之后开始运行时,在屏幕左侧会出现角色的动作演示,能够形象地告诉学生每一条代码语句代表的意思,清晰明了,使学生意识到编程并没有想象中的那么难,从而愿意主动地来学习,学生学习积极性高,课堂教学气氛活跃,教学效果更好。图形化编程平台虽然也是一种游戏化的编程环境,但是整个过程只是图形化模块的移动拼凑,不涉及代码的编写。而使用极客战记时,学生需要按照语法规则编写Python程序代码,学生能够接触到真正的编程语言。并且在编写代码的过程中系统会有格式提醒,如果出错会立即提醒。这样能够帮助学生养成良好的代码编写习惯,为后续深入的学习奠定良好的基础。
公益仅有热情和爱心是不够的,专业知识的指导是不可或缺的。目前,大量的儿童救助民间组织更多的是凭借个人的热情和爱心而创建起来的,创办人大部分缺乏经营民间组织的专业知识,工作人员大多是充满激情的爱心人士,缺乏相关领域的知识储备。
通过课下与学生交流发现,比起图形化编程和VB编程,学生们认为极客战记平台编程更好理解更有趣,学习起来相对轻松,他们更加倾向于极客战记教学平台。
4 结束语
本次研究通过课堂听课观察学生们在课堂上的反应、课堂教学的气氛以及课下与学生们进行沟通交流,调查了在中学编程教学中使用极客战记教学平台的教学效果。结果表明,极客战记能够提供游戏化的编程平台,且支持简单易学的Python编程语言。使用极客战记平台进行编程教学,降低了老师的教和学生的学的难度,能够激发学生的学习兴趣,帮助学生养成良好的代码编写习惯,为日后的学习奠定基础。相比于VB编程和图形化编程,极客战记编程平台更加适合高中阶段学生的编程教学,值得推广。
本次研究的对象是高中阶段的学生,研究结果只能说明极客战记教学平台适合高中阶段的学生,但是是否适合小学、初中阶段的学生还不能给出结论。在日后的研究中,应当扩大研究对象的范围,确定极客战记教学平台的适用范围,提高我国编程教育的教学效果。
参考文献
[1]向程冠,熊伟程.“做中教,做中学”在程序设计教学中的应用[J].电脑知识与技术,2017(13):75-76.
[2] 王楠.编程教育:跨入人工智能时代的阶梯[N].人民政协报,2017-10-12.
[3] 欧星星.编程:通往另一个世界的大门[N].电脑报,2018-01-22.
[4] 狄博,王晓丹.基于Python语言的面向对象程序设计课程教学[J].计算机工程与科学,2014(36):122-125.
[5] 嵩天,黄天羽.Python语言:程序设计课程教学改革的理想选择[J].中国大学教学,2016(2):42-47.
Application of CodeCombat in Programming Teachingin Senior High School
WU Miao,QIU Guoyong
(School of Computer Science,Shaanxi Normal University,Xi'an,Shaanxi 710119)
Abstract Atpresent,in thehighschool programming teaching,the mostcommonly used is VBlanguage and recently popular graphical programming platform,but the teaching effect is not ideal.How to improve the teaching effect of middle school programming education is an urgent problem to be solved.CodeCombat is a game-based programming platform,on which students can write code,conceive strategies,and master programming step by step through trial and error and experiment in the process of breaking through the barrier.This programming platform is used in the information technology teaching of the first grade in the secondary school affiliated to Shaanxi Normal University.The author investigates the actual teaching effect of the CodeCombat teaching platform in the middle school programming teaching by means of classroom listening,exchanging and inquiring with the relevant students after class.The research finds that CodeCombat is popular with students because of its game-based teaching platform and easy-to-learn Python programming language.The classroom teaching effect is better when using CodeCombat teaching platform.The results show that the programming platform of CodeCombat has great advantages over the traditional programming teaching method,and it is worth popularizing.
Keywords Programming teaching;Gamification programming;CodeCombat
中图分类号: G424
文献标识码: A
DOI: 10.16400/j.cnki.kjdkx.2019.03.067
标签:编程教学论文; 游戏化编程论文; 极客战记论文; 陕西师范大学计算机科学学院论文;