APP下载

Java实验教学模式研究

2011-12-31米娜瓦尔•努拉合买提玛依拉•别克强塔依娃

计算机教育 2011年18期

  摘要:新疆高校的学生存在族别的多样性、基础理论水平层次的不等性、中小学阶段接受教育时语言的异样性等诸多问题。如何在讲授一门课后使不同水平的学生达到基本统一的教学目标,对教师能够设计出面向对象的、合理的课程实施模式提出了严峻的挑战。文章详细阐述了Java语言程序设计课程实验教学模式研究成果与教学各环节的实施模式。
  关键词:实验模式 面向对象 实施模式 多语种教学模式
  文章编号:1672-5913(2011)18-0078-03 中图分类号:G642 文献标识码:A
  教学语言必须是工业界的主流语言,否则学生学非所用。迅速地开发具有实际用途的程序,有助于激发和保持学生的兴趣。目前,国内外很多高校已经将Java列为教学语言。然而,面对Java日益庞大的体系结构以及Java技术的飞速发展,如何在有限的学时内有效地开展教学很值得研究。
  为了提高学生利用Java解决实际问题的能力和在就业市场中的竞争力,我们利用5年时间,在精心研究国内外Java程序设计课程实验的教学模式的前提下,结合新疆地区汉族、民族和民考汉学生的实际情况,总结出了一套比较适合于不同层次、不同民族学生的Java实验教学模式,并将其逐步应用于不同班级的实验教学中,获得了可喜的研究成果。
  我们的主要研究成果为撑托Java实践教学各个环节的一整套实验教学材料:Java语言程序设计实验指导书(验证性+设计性);Java实验教学大纲(验证性、设计性);Java语言程序设计习题集;期末上机测试编程题目;民汉双语实验教学网站。指导教材的内容设置以逐步培养学生解决一般问题的能力为前提,以提高学生解决综合问题的能力为最终目的。
  1 研究的基本内容
  1.1 认真编排实验内容
  考虑到我院是在大四第一学期开设Java课,如
  何编排实验内容值得研究。先做基础实验,是一种循序渐进的方式,但比较老套,学生在已经具备其他语言学习经历的前提下,比较容易失去学习动力。先编图形用户界面的程序的做法从GUI和applet开始,似乎能够引起学生的兴趣,但这需要学生具备牢固的面向对象程序设计方面的知识,并要求学生对Java事件处理模式有很好的理解,所以学生可能不太容易完全接受。必须有针对性地选择实验内容,对Java的基础知识和高级应用有一个折中处理是我们编排指导书时的一个出发点。一方面,使得学生能够掌握必要的基础知识,为以后的进一步学习打下扎实的基础;另一方面,由于其涉及部分高级知识,为开发实用程序提供可能。
  指导书包含了大量的图示主要用于说明程序输出结果,学生可以通过这些图示,更充分理解实验目的。本书还包含了大量的表格主要用于说明每次实验中要用到的类以及消息功能,主要用于解决教材书中这方面的不足以及指引学生尽早入门,少走弯路。
  从第1个实验开始就让学生接触到了类和对象的概念[1]。实验中将类和对象的实验移到前面的目的:使学生最初就能够思考类和对象,弄清类和对象的实质区别,有助于更彻底的掌握类和对象的概念。从第一个实验到第四个实验学生学习的是Java集成开发环境自身提供的类的使用方法。其中,实验1至实验4主要涉及到学生必须掌握的Java基础知识。通过实验,学生可以掌握Java应用程序与小应用程序在结构和运行方式上的区别;学习并掌握系统自身提供的常用类及消息的功能以及其使用方法;基本控制流语句的掌握;基本绘图方法的掌握。为后面的实验打基础,前面的4个实验中用到图形类(Graphics)、栈类(Stack类)、字符串类(String类)、日期类(Date类)和键盘输入类(Scanner类),以及基本的流程控制语句。学生掌握如何定义现有类的对象并使用其提供的API后,从第5个实验开始就可以编写自定义类了,并在后续的实验中继续使用这些自定义类,完成更复杂的功能。
  实验内容的编排遵循了由浅入深、循序渐进、由简到繁的原则,符合学生学习心理承受力。通过编排内容连贯的实验和有趣的绘图实验,学生可以掌握比较难于掌握的Java的自定义类,类的实例对象、类的重用性等重要概念。如:从实验5开始,通过编排内容连贯有趣的绘图实验,要求学生从编写可绘制窗户、门、房子等自定义类开始,要求学生利用类的代码重用性,让学生定义窗户类,门类的多个实例对象来构造有多个窗户和门的一栋房子以及绘制位置不同的几栋房子。让学生在实验中切身体会一个复杂的对象其实是由很多独立的小对象堆砌出来的道理。在后续的实验中通过让门、窗户和房子类继承同一个抽象类的方式,让学生在程序设计的过程中切身体会多态、抽象性等很重要但比较难理解的概念。这些概念的正确利用往往使得程序更接近于面向对象程序设计风格和理念。通过实验7学生可以掌握Java的事件处理机制、图形用户界面的设计、多种布局管理器的使用,并为实验8做准备。在实验8中通过增加按钮组件,要求学生实现通过按钮绘制房体,门和窗户的程序,让学生更加深入学习Java的事件处理机制、图形用户界面的设计、布局管理器的使用以及向量Vector类的使用。通过实验9和实验10掌握从文本文件加载数据——加工处理——输出到文本文件的方法和步骤。进一步说,通过实验9和10学生可以掌握从文本文件加载数据到Vector或数组等临时储存空间,然后经过加工处理后将结果输出到文本文件的方法和技术。
  1.2 重视编程技巧与风格的培养
  掌握标准的设计模式,可以避免重复设计或尽可能少做重复设计,极大地提高软件的可复用性和灵活性,从而大大提高软件开发效率。考虑到大部分学生基础不牢,对面向对象的程序设计的理解薄弱,处理细节和矛盾的能力不足,缺少自主分析问题、解决问题的知识、能力和经验,因此在Java实践教学中通过提供程序框架,让学生填补实现代码的方法。程序框架中提供相应类和各个类中接口的定义和各个接口应具备的功能说明,使得学生从用户的角度对要实现的项目产生直观的认识,再让学生自己完成具体实现。这种让学生先当用户,体会用户的需求,然后再当设计者的方案不仅培养了学生独立解决问题的能力,也使其学习了Java框架中优秀的编程技巧与风格。
  1.3 设计大作业,强化实践环节
  在课程后期,学生有了一定的Java编程基础,欠缺的主要是实际的开发经验和全面系统、深入的应用所掌握的Java技术。解决的方法就是通过真实项目练习,对所学知识进行深化,然后通过项目来获取实际开发的经验,尽快达到实际要求。
  在设计性实验中有在线购物网站、图书管理系统、桌面纸牌游戏和网络魔方游戏。考虑到大部分民汉学生对项目的规划和设计还比较生疏,为了灌输面向对象程序设计的核心思想及正确的编程方法,采取了“老师提供系统框架,学生填补实现代码”的科学的实事求是的编程方法,使得学生在做大作业时能够在有限的10个学时内,按时完成课程设计任务并掌握面向对象的程序设计的基本理念。在设计性实验中,为了使得学生充分了解自己的进展,我们规定了每一个学时中应完成的内容,并且不厌其烦地把每一个大作业都分成了几大类,给出了各个类中应该实现的方法,并且用伪代码(汉语)为每个类以及其中的方法的功能进行了详细的阐述,要求学生编写相应代码。这种做法在现存的Java实验指导书中是少见的,但较符合我院学生的现状,也较值得推广。
  1.4 推进评价环节的改革
  一门课程的教学效果决定了该门课程的成功与否。除了对教学环节和实践环节的充分重视,评价环节亦会显著地影响教学效果。学生的评价主要由五部分构成:上机实验成绩+课程设计成绩+期末上机编程测试成绩+上机考勤+期末笔试成绩。这种通过不同环节评价学生的方式,能够督促学生重视并参与所有教学过程。更加客观地反映出学生的学习效果,对学生的评价也更加科学。
  
  期末上机测试时为防止学生之间相互抄袭,测试题目尽量做到让每个学生完成不同的题目。这种测试方法尽管使得老师出题目比较辛苦,但可以确保对每个学生的真实水平给出正确评价。期末上机测试编程题目要求中给出了程序的框架以及运行结果图表和详尽的要求说明,题目的编排尽量让学生将平时所学知识充分挖掘出来,发挥其真实的编程水平。
  1.5 形成完整的实验教学辅助环节
  为了使学生能够尽快完成实验内容,完成了民汉实验教学网站建设,实验教学网站的内容丰富、操作方便,把工作重点放到了网站内容的建设上。网站中集成了与Java课程教学、实验教学有关的所有资料。包括每一个实验的标准源代码,学生可以在后期的实验中看到前期实验的代码,并从中找出自己的不足,逐步积累编程经验,还提供了很多的超链接,使学生能够很快找到常用类及其消息的格式和功能说明(对指导书中类的拓展),可以成为学生学习、巩固和拓展Java常用类及其方法的得力助手。我们还将每个实验的字节码文件嵌入到网站中,让学生直接观察实验结果,通过对实验结果的动态操作,使得学生从感性上更明确实验目的和实验要求,引发学生编程兴趣。
  2 实验成果
  2.1 填充式实验模式
  在设计性实验中,考虑到大部分学生对面向对象程序设计方法比较生疏,为了使学生尽快掌握面向对象程序设计的核心思想及正确的编程方法,采取了“老师提供系统框架,学生填补实现代码”的科学的实事求是的编程方法。这一实验模式在现有的Java指导书中很少见,实践证明该方法可以使学生尽早上路,少走弯路,轻松地掌握面向对象的程序设计的基本编程规范,并保证按时完成课程设计任务。
  2.2 培养团队合作精神
  软件开发是一个团队协作[2]、共同设计的过程。在设计性实验的实施过程中,为了培养学生的团队合作精神,根据设计题目的要求,把学生分成组,根据
  自己的兴趣和特长进行分工,在完成所选择设计题目的同时,学会团队成员的协作。
  在设计性实验的实施过程中,我们为了培养学生的团队合作精神,要求学生根据自己的兴趣和爱好自由选择设计题目[3]。一般情况下,每个班级会分成4个项目小组。然后根据学生平时实验成绩指定4个项目组长来组织和管理各个项目小组。组长主要承担小组人员的任务分配、组织组员进行讨论以及最后要提交的系统的测试和集成任务。开发过程中学生遇到问题时,由组长组织组员进行讨论,大家共同解决设计中遇到的种种问题,实在解决不了的方可要求指导老师的帮助。由于每组设计性实验的框架和每个类中要实现的API接口和系统的测试要求在指导书中说明的都很清楚,可以确保每个同学都可以分到不同的设计任务,并且对所要完成的任务在一开始就基本清楚。看着学生在设计性实验的设计阶段中所付出的努力和在系统测试成功时如获至宝的喜悦,心中总是为他们感到无比骄傲和自豪。分组实验也可以带动编程能力不太强的同学,因为在他们遇到困难时团队队员之间的相互帮助和鼓励,给予他们力量和完成任务的信心。
  2.3 用多语言进行教学
  针对不同学生需求,采用多语言进行教学,在他们掌握Java的同时,培养汉语言学生使用外文资料的能力,提高民族学生通过汉语能够较深层次地真正理解比较抽象的概念,又在恰当时机采用维语对难以理解的专业概念进行解释。
  3 应用及总结
  Java语言程序设计性实验指导书从2005年启用到2011年全面推行以来,学生虽然感到有难度,但通过指导老师的精心指导,大部分同学顺利完成了实验任务,并普遍表示从中学到了很多编程经验与编程思想。该Java实验指导书将会继续应用于以后的Java实验教学当中。Java语言程序设计习题集已成为学生进行考前复习的必备材料。Java语言程序设计测试题目已用于每学期的实验测试中,虽然测试题目有一定的难度,但学生普遍反映这些题目一定程度的训练了他们的逻辑思维能力和编程能力。Java语言教学网站发布到学院局域网供学生上机时使用,每堂课每个学生的平均点击率不下5次。2008年验收成果时,评审专家们对指导书给予了充分肯定和高度评价。下一步计划正式出版该书,Java实验教学网站也将会发布到教务处提供的网络教学综合平台供学生使用,我们还打算申请校级精品课程进一步充实和完善Java实验教学材料和实验网站的建设。
  总之,教师要按照本课程的实际教学特点,实验中注重学生能力的培养、而不是简单的知识记忆,精心组织教学每个环节。实践证明这种设计性实验的教学方式受到了学生的欢迎和支持。
  参考文献:
  [1] 王逢州. Java语言程序设计的教学研究与改革[J]. 电脑知识