基于教育游戏的“Java程序设计”课程教学改革与实践

2009-09-06 06:26佟延秋
计算机教育 2009年22期
关键词:Java程序设计教育游戏教学设计

佟延秋

摘要:本文针对当前Java教学中重要性日益凸显的实践环节进行了论述,从教育游戏的概念及教育游戏在Java教学中应用的可行性入手,提出了基于“Robocode”教育游戏的“Java程序设计”课程教学设计模式,并对该模式进行了详细的阐述。

关键词:教育游戏;Java教学;教学设计

中图分类号:G642 文献标识码:B

1 “Java程序设计”课程的地位

自从1995年Java释名开始,经过十余年的发展,“Java程序设计”语言已经成为软件开发领域内的主流开发语言之一。从近几年市场上对程序开发人才的需求来看,无论是企业级的J2EE开发,还是小型设备的嵌入式J2ME开发,甚至是应对RIA时代的JavaFX开发,都离不开Java的身影。从如图1所示的2009年7月的TIOBE开发语言排行榜的统计结果来看,Java位列第一位,占有率为20.452%。

从课程设置的角度来看,“Java程序设计”不仅仅在计算机专业中开设,在电子、通信、教育技术、信息管理等专业的本科阶段中也是非常重要的课程。同时,全国软件资格水平考试和高校计算机等级考试中也增设了Java相关的考试内容。由于社会上对Java开发岗位需求的增加,与Java相关的培训课程也如雨后春笋般涌现出来。

因此,如何提高高校本科阶段“Java程序设计”课程的教学质量,培养适应市场需求的高素质Java开发人才,已经成为一个非常重要的研究课题。

2教育游戏概念浅析

教育游戏产业研究报告将教育游戏定义为:能够培养游戏使用者的知识、技能、智力、情感、态度、价值观,并具有一定教育意义的计算机游戏软件。

香港中文大学尚俊杰等人提出了“轻游戏”,他们认为:

(1)“轻游戏”是一个教育软件, 其中的内容和任务都是和课程相关的;

(2)“轻游戏”必须具备游戏的某些特征,充分利用主流游戏的内在动机,如挑战、好奇、幻想、控制、目标、竞争、合作等(M alone &Lepper 1987);

(3)“轻游戏”应该能很容易地被用到课堂教学中,即“轻游戏”是嵌入了主流游戏的内在动机的教育软件。

2006年,李艺曾提出:教育游戏是电子化的软件,由游戏设计和制作人员创作、承载着具体的教育和娱乐目的,它的运行状态可为游戏者提供包含教育内容的游戏环境,游戏者在此环境中可进行游戏活动。

祝智庭和赵海兰等人也对教育游戏在狭义上和广义上分别做了定义。狭义上的教育游戏是指教育性和游戏性整合在一起,在玩游戏的过程中所产生的自然的教育效果。从广义上来讲,教育游戏是指具有教育素材和游戏性因素的所有的教育软件。

3教育游戏用于“Java程序设计”教学的优势

3.1培养学生的兴趣

兴趣是最好的老师,是能够促进学习者尽快入门的基础和前提,能对学习者的学习起到推动作用。玩耍是人类的天性,而作为现代电子技术产物的电子游戏所具有的参与(Participation)、互动(Interactive)和娱乐(Entertainment)特质,能够让学习者在游戏的过程中始终感受到乐趣(Funativity),在心理上处于一种轻松愉悦的状态,从而达到在乐中学、在做中学的目的。

3.2提高学生的实践能力

作者在多年的Java教学中发现,无论是教材的章节排列顺序还是某些教师的讲授,大多都是从Java语言的诞生及语法开始讲起。这样做的好处是能够使教学由浅入深地展开,但同时也存在着弊端。由Java语言的语法开始讲授会让学生学习的精力更多地消耗在过往知识的回忆与对比上。因为,在此之前学生已经学习过多门程序设计语言。Java不仅仅是一种程序设计语言,更多的是一门程序开发技术。作者在第一节课上就向学生展示Java技术的一个简单的应用——桌面游戏开发,并为游戏中的坦克编写代码,控制坦克的移动与射击。这样学生的学习兴趣一下子便被提升起来。

这里,我们选择了一款名为“Robocode”的游戏用于教学。该游戏基于Java开发,属于即时战略类游戏。游戏是以坦克之间互相射击的形式进行的,坦克可以在规定的二维平面内移动,并可以通过坦克上的雷达侦测对方坦克,然后进行射击。游戏以将对方坦克炸毁为胜利条件。该游戏运行画面如图2所示。

“Robocede”游戏提供了3种类型的坦克:第一种是系统自带的坦克,如“Corners”、“Crazy”、“RamFire”等。通过坦克的名称(类名)可以看出,这种类型的坦克带有特定的移动、侦测和射击算法,可供学生与电脑进行互动竞赛;第二种是通过键盘与鼠标进行控制的坦克,如“Interactive”。这种类型的坦克通过键盘的方向键控制坦克的移动,使用鼠标左键进行射击;第三种是通过使用Java语言编程的方式进行控制的坦克。文章主要是利用这种方式进行“Java程序设计”的教学。“Robocede”游戏为手工编写Java程序提供了一个名为“Robot Editor”的代码编辑器,如图3所示。

从图2所示的编辑器界面中可以看出,“Robot Editor”已经提供了一个基础的代码框架,该代码框架的UML图如图4所示。其中的包名可以使用学生的学号(需符合Java命名规则),类名可以使用学生的姓名(需符合Java命名规则)。其中的类提供了3个方法,具体功能见表1。

3.3提高算法的运用能力

当学生对“Robocode”游戏的基本操作已经熟悉,并能够熟练进行手工代码的编写进行游戏后,学生们对游戏胜利的渴望便会急剧的增加。他们会发现,要想让自己的坦克能够取得比赛的胜利,必需要对对方坦克的位置、自己坦克的位置、自己坦克的移动以及当自己被击中后的处理等相关的参数进行精确的计算。即要针对表1中游戏提供的3个基础函数编写精良的算法。因此,这就可能需要将人工智能以或神经网络算法运用到自己坦克代码的编写上来。这样,一个简单的“Robocode”游戏不仅仅能够让Java学习变得有趣,同时在一定程度上还能够培养学生对计算机科学算法学习的兴趣。

4基于教育游戏的“Java程序设计”课程教学设计模式

教学设计涉及到一个组织化的教学过程,如教学目标、教学内容、学习者、教学策略、教学媒体以及将这些基本要素整合为一个模型。ADDIE(Analysis, Design, Development, Implement, Evaluation)教学设计模式包括教学的分析(Analysis)、设计(Design)、开发(Development)、实施(Implement)和评价(Evaluation)五个环节。基于教育游戏的“Java程序设计”教学设计模式如图5所示。

4.1学习者分析与学习环境分析

这里我们的授课对象为大三第二学期本科生,在此之前,已经学习了计算机的相关理论知识和一些编程语言。本“Java程序设计”课程分为理论和实践两个环节进行教学。理论与实践教学分别占32学时,理论课在多媒体教室进行,实验课在计算机实验室进行,每个学生人手一台计算机。

4.2教育游戏软件的选择

本文选择“Robocode”游戏软件用于“Java程序设计”课程教学。该软件本身就是基于Java开发的,最新版本为1.7版。软件非常小,安装后大约为8.15M。“Robocode”游戏软件的使用非常简单,启动后的主界面如图6所示。其中“Battle”菜单下的命令用于新建战役、打开战役、保存战役和导入/导入记录。“Robot”菜单下的命令用于新建单个坦克/坦克集群、导入/打包坦克。“Options”菜单下的命令用于设置游戏窗口的属性。

4.3教育游戏教学策略的设计

基于教育游戏的学习环境是一个开放的学习环境,在这样的环境下,学习者很容易产生迷失现象,即学习者不能将注意力集中于学习任务上。为了避免学生在学习的过程中迷失学习任务,我们提出的教学设计模式是以建构主义为指导思想,在学习的过程中采用协作学习教学策略,教师在教学活动中为学习者提供脚手架。

哈希姆(Harasim, 1995) 将协作学习定义为:“两个或两个以上的个体通过共同的工作来构建意义、探索主题或提高技能的活动。”罗切尔和提雷(Roschelle & Teasley,1995)认为:协作是在结构和维持对问题的共同理解的过程中持续努力的结果,是一种协调、同步的活动。杰恩(Jehng,1997)将协作定义为不同个体共享彼此的知识,并最终形成一致性知识的过程。在具体的实践教学中,我们以两名学生为一组,这两名学生分别为自己的坦克编写代码,然后进行比赛。

4.4教育游戏活动的实施

(1) 按照加涅的九事件教学安排移习活动并创设学习情境。教师在“Robocode”游戏平台上向学生演示人机之间的坦克对战。

(2) 向学生讲解“Robocode”游戏软件的操作技能。

(3) 观察学习者使用“Robocode”游戏软件时的小组作协作学习活动,教师在适当的时机给予面对面的干预和指导。

4.5学习结果的评价

以建构主义理论为指导的教学设计模式更加强调学习者在学习过程中的真实体验,而传统的标准化测验并不能完全检测出学习者的能力,因此对学习结果的评价就不能使用传统的标准化测验。而替代性评价则避免了典型的多项选择测验中存在的问题。这些新的评价系统中所蕴涵的核心思想是:要求学生自己展示自己的学习,或者展示自己能够利用在学习过程中学到的知识和技能来完成一些实际工作,其目的就是要在真实的情境中展示学生自己的水平。在实际的教学活动中,我们采用以下两种评价方式。

4.5.1档案带评价

替代性评价的一种常见形式是档案带评价(portfolio assessment),即搜集和评估学生在一段时间内的作平样本(Hambleton,1996;Herbert & Schultz,1995;Rolheiser,Brower,&Stevahn,2000)。教师可以收集学生的作品、研究设计以及其他一些反映高级心理技能的作品,并以此作为评估学生进步程度的依据。这里,我们主要是查看学生在游戏过程所编写的Java代码。

4.5.2表现性评价

表现性评价(performance assessment)是在现实生活中对学生知识和技能的实际表现进行考察的测验。表现性评

价的一个例子就是完成论文,完成论文不仅要求学生展现自己知道什么,还要表现出自己能做什么。汽车驾驶员和飞行员的驾照考试、医学上的临床测验等,都是表现性评价(Swanson,Norman,&Linn,1995)。通过观察学生之间进行游戏的胜负结果,并对胜利/失败坦克代码进行分析,来评价学生的实践操作能力。

5总结

文章以高校本科“Java程序设计”课程教学为平台,采用一种全新的教学理念——将电脑游戏引入实践教学,在寓教于乐的过程中培养学生的实践能力。

参考文献:

[1]TIOBE Software. TIOBE Programming Community Index for July 2009[EB/OL]. http://www.tiobe.com/index.php/ content/paperinfo/tpci/index.html.

[2]中国互联网络信息中心. 第十七次中国互联网络发展状况统计报告[EB/OL]. http://www.cnnic.com.cn/html/ Dir/ 2006/01/17/3508.htm,2006.

[3] 尚俊杰,李芳乐.“轻游戏”:教育游戏的希望和未来[J]. 电化教育研究,2005(1):25.

[4]Harasim Letal. Learning Networks [M]. Cambridge,MA: MIT Press,1995.

[5]Jehng J.J. The Psycho-social processes and cognitive effects of peer-based collaborative interaction with computers [J]. Journal of Educational Computing Research. 1997,17(11):19-46.

[6] D.Campell, 2000; Marzano, Pickering&Pollock, 2001; Newmanetal, 1995.

[7] 罗伯特•斯莱文. 教育心理学[M]. 姚梅林,译. 北京:人民教育出版,2004.

猜你喜欢
Java程序设计教育游戏教学设计
《Java程序设计》课程网站的设计与实现
Java程序设计基础课实践教学中的分层教学模式研究
面向职业教育翻转课堂的教育游戏设计原则与策略研究
基于实训项目的Java程序设计实验教学模式改革与实践
基于工程思维的Java程序设计课程教学研究
高中数学一元二次含参不等式的解法探讨
“仿真物理实验室” 在微课制作中的应用
翻转课堂在高职公共英语教学中的应用现状分析及改善建议
提高课堂教学有效性的研究