您好, 访客   登录/注册

“Java程序设计”课程教学思考

来源:用户上传      作者: 蓝雯飞 李子茂

  摘 要: 目前,面向对象语言Java已成为Internet上最受欢迎的开发语言之一,许多高校纷纷将Java列为程序设计的核心课程。在多年Java教学经验的基础上,就Java语言的教学,包括教材的选择、开发环境的选取、教学内容的筛选、教学方法的运用、教学实例的选用等问题进行了较为深入的探讨,给出了可行性思路。
  关键词: Java; 面向对象; 程序设计课程; 教学方法
  中图分类号:G642 文献标志码:A 文章编号:1006-8228(2013)01-37-03
  Pondering over teaching of “java programming designing”
  Lan Wenfei, Li Zimao
  (School of Computer Science, South-central University of Nationalities, Wuhan, Hubei 430074, China)
  Abstract: Java is becoming one of the most popular object-oriented programming languages in developing areas based on Internet and one of the core programming curriculums for universities. In this paper, some Java teaching problems are discussed, such as the choice of teaching materials, the choice of developing environment, filtering of teaching content, using of teaching method, design of the teaching cases. The feasible ideas for above are given.
  Key words: Java; object-oriented; programming curriculum; teaching method
  0 引言
  在Java面世短短的十来年间,Java以其简单易学、安全可靠、面向对象、多线程及平台独立性等许多特点[1-3],被越来越多地推广和使用,它已成为Internet上最受欢迎的开发语言之一。
  目前,许多高校已将“Java程序设计”列为程序设计的核心课程之一,肯定了它在培养计算机开发类人才中的地位和作用。
  本人已连续多年担任高校计算机专业Java程序设计课程的主讲教师,针对Java教学中存在的问题,积累了一些教学经验,希望能与同仁共同探讨。
  本文就Java语言的教学,包括教学时数的安排、教材的选择、开发环境的选取、教学内容的筛选、教学方法的运用、教学实例的选用等方面[4,5],给出了一些自己的做法,实践证明,这些方法是可行的。
  1 教学准备环节
  首先讨论Java程序设计课程教学的准备工作。
  1.1 合理安排教学时数
  我们授课的对象是软件工程实验班本科学生,该课程安排在大一第二学期,鉴于学生在大一第一学期已具备基本的计算机原理及专业基础知识,这样来安排教学计划是比较合理的。考虑到学生在大一已具备C/C++高级语言程序设计的基础,而多数学生在国内修完本科课程后会选择到国外继续深造学习,所以Java语言程序设计课程的教学设计必须考虑全方位,此外Java语言衍生自C++,它的基本语法同C语言,而其面向对象的基本特征同C++。鉴于此,我们将Java程序设计课程的上课时数设置为48个授课学时,18个实践学时,这样设置是比较合适的。
  1.2 精选教材
  选择合适的教材,是保证有效教学的重要手段之一[6]。合适的Java教材, 应具有较好的知识覆盖面,难度适中,适合学生的具体情况[4]。由于我们讲授的对象是实验班学生,需要使用全英文教学,此外,他们已具备一定的面向对象程序设计基础,所以诸如《Thinking in Java》、《Objects First with Java》、 《The Java Programming Language》等经典书籍都适合作为该课程的教材。
  选择国外经典教材,能保证我们的教学内容与国外接轨[7]。学生在阅读英文原版教材的同时,可同时参考对应的中文翻译本,能使学生加强对所学知识的理解。
  1.3 选择合适的实验环境
  由于JDK(Java Development Kit)是命令行的编程环境,需要用编辑器建立Java源程序。如果选用Windows自带的记事本notepad来编辑程序,首先程序中若出现语法错误是很不容易被发现的;其次每次必须打开cmd窗口并输入一大堆命令,如编译命令、运行命令等;再就是对于applet小程序还要自编html文件,非常麻烦。但是,如果选用超智能、傻瓜型的集成开发环境,如JBuilder、NetBeans,因其耗内存,所以速度慢,慢到不能忍受;更重要的是不利于入门级的学生掌握Java的基本语法。因为Java上机实践的一个重要训练内容就是熟练使用Java编译器(java.exe)去检查语法错误,并能修改错误,这样做的目的是使学生能较快地掌握Java语法。
  本文简要介绍一种既简单又方便入门者使用的Java编辑器TextPad。TextPad作为Java编辑器需要做简单配置,首先把TextPad装上(先装JDK),安装完毕就可按下面的方法配置:在菜单的Configure中选择Preference,选择Tools,点add下拉菜单,选择Java SDK commands。之后Tools中多了3项:Compile Java、Run Java Application、Run Java Applet。从这一点来看它确实比其他的Java编辑器更容易配置,如EditPlus。   按上述方法配置TextPad Java编辑器后,还可适当优化TextPad Java IDE环境,使它更适合编写、执行Java程序。优化环境方法在此省略,有兴趣的作者可参见文献[2]。
  2 教学内容
  根据多年的Java程序设计课程教学经验,我们认为讲授该课程的内容主要包括三个方面:一是Java语言基础;二是Java语言的新特性;三是在讲授上述内容时穿插介绍JDK类库的常用类。
  Java语言基础包括:数据类型、表达式、基本语句、类和对象、继承和多态、异常处理机制、小程序、图形用户界面设计、输入/输出、多线程、网络编程和数据库编程。考虑到我们面授的学生已经掌握了C++面向对象程序设计基础内容,而且Java教学内容偏多、教学时数较少[8],因此对于衍生自C++的Java语言,它和C++类似的部分,包括数据类型和表达式、基本语句、类和对象、继承和多态及异常处理机制等,应讲授较少的学时数;而对于Java语言特有的部分,如小程序、图形用户界面设计、输入/输出、多线程、网络编程和数据库编程,则应讲授较多的学时数。由于篇幅有限,在此省去对每个章节学时数的具体编排。
  1996年Sun公司发布了JDK1.0,在短短的十年时间里,JDK从1.0版本升级到6.0版本。特别值得一提的是2004年发布的JDK5.0版本,它在旧版本的基础上增加了一些非常有意义的新特性,比如,泛型编程、增强的for循环、自动装包/拆包、类型安全的枚举、可变参数和静态导入等,使用这些特性有助于我们编写更加清晰、精悍、安全的Java代码。为了与时俱进,让学生掌握较新的Java特性,我们认为很有必要在课堂上向学生传授新技术,以拓宽学生的知识面。
  一方面为了节约有限的学时数,另一方面为了鼓励学生在课余积极使用、查阅JDK帮助文档,我们不安排专门的章节介绍JDK类库的使用,而是在讲授Java程序例子时,将重点介绍一些重要类的使用,比如,在讲授图形用户界面这一章时,则会讲授一些重要包的使用,包括java.awt、java.awt.event、java.applet、javax.swing等,概述这些包的类层次结构。这样做既节约了时间,也使学生通过对例子的学习较好地掌握了一些常用类的使用。特别需要说明的是,容器类很重要,这些类在程序设计中会普遍使用到。
  总之,在教学内容的选择上,我们推崇简化的原则,忽略一些不常用的知识点,如带标号的跳转语句、复杂的表达式运算规则、嵌套类等,这样做既节约了课时,也能充分引导学生编写简单、可读性好的程序代码[4]。
  3 教学方法
  充分利用多媒体教学设施,为上课讲述的例子做编译、运行演示。对于学生编程时常常出现的错误,在编辑程序时可设置类似的错误障碍,让学生修改错误,以杜决今后再出现此类错误,此外还能现场教会学生如何使用JDK TextPad开发环境。到了学期的中后期,鉴于学生们已基本掌握Java的语法,上课可适当减少演示例子的次数。
  对于Java基本类库的授课,根据多年的Java开发经历和教学实践,我们认为学生应该对基本类库有个整体了解,要重点掌握 Java类库中的Java.lang和Java.util两个包,特别是容器类的应用是难点,需要结合实际例子阐述。这两个包提供的是Java编程要用到的基本类,学生需要清楚这些类或接口的继承关系、主要功能[5]。我们在授课时适当介绍JDK API文档的使用和阅读,提倡使用最新版本的英文API文档;在教学中注意总结相关类的联系和区别,如String和StringBuffer在使用上的区别,以及FileInputStream和RandomAccessFile在用于读文件时的区别。
  在实施Java教学时,应注意Java和C++的区别。Java和C++都是面向对象的语言,而且Java衍生自C++,在基本语法及面向对象特征方面均有很多相同之处。比如,我们在讲授Java的数据类型、常量、变量、表达式、语句、类和对象、继承和多态等内容时,应着重指出它和C++的区别,简略细节知识。这样既能节约课时,也能使学生快速掌握Java的基本语法和面向对象特征。
  在学生掌握了Java的基本语法及面向对象特征的基础上,我们会考虑将重点放在图形用户界面、多线程、网络编程和数据库编程上,以使学生能进行一般的Java应用编程。
  如果课堂教学时数比较宽裕,则可介绍Java和UML、Java和设计模式相关的知识,强调软件开发新技术,特别是对于软件工程专业的学生,更应该这么做。
  4 教学实例
  可将程序例子分为非算法型和算法型两种类型。在介绍Java基本语法时,我们提倡用非算法型的例程,利于学生对例子程序的阅读和理解。而在讲授计算机典型问题,如排序、查找、递归时,则使用算法型的例程,以加强学生对一些典型问题的掌握。
  在选择例程时,以例程中是否含有JDK类作为筛选原则,目的在于能让学生掌握更多的JDK类。
  此外,在期中阶段,可选择一两个游戏项目作为综合的例程,如用于Java学习的Robocode游戏实验项目。Robocode是IBM的一位工程师MatNelson用Java语言所创造的机器战斗仿真引擎,是一款专门为程序员设计的游戏半成品。利用该引擎,只要编写几行简单的代码,就可以创造出一个在屏幕上四处疾驰的机器人坦克,参加游戏对战[4]。这样能增强例子的实用性和趣味性,调动学生学习Java的积极性。在此基础上,再布置一个游戏项目,作为学生在课余时间的练兵题。
  5 结束语
  衍生于C++的Java语言,作为一种面世较晚的语言,它集中体现和充分利用了若干当代软件技术新成果,如面向对象、多线程、平台无关等[9],使其拥有众多优秀的特性,从而成为面向对象软件开发的首选语言。
  出于“Java程序设计”这门课的重要性和教学中存在的问题,本文提出了“Java程序设计”教学实施的诸多方面,并在作者施教的班级进行了多次实践,实践表明,上述教学思路是可行的,能在一定程度上提高教学效果。
  下一步我们将在“Java程序设计”实践教学和后续课程改革方面进行实践探讨。
  作者多年从事Java教学和Java软件开发工作,积累了一些教学经验,本文将它提练总结,希望能给Java同仁一些启示。
  参考文献:
  [1] 秦学礼,汪迎,郑淑红.Java程序设计实用教程[M].清华大学出版社,2012.
  [2] 刘正林等.Java技术基础(第2版)[M].华中科技大学出版社,2004:30-40
  [3] 印旻.Java语言与面向对象程序设计(第二版)[M].清华大学出版社,2007.
  [4] 叶恒舟.Java程序设计教学探讨[J].科技信息,2007.1:23-25
  [5] 李纯玉,胡丽娜.Java语言程序设计教学中的几点思考[J].科技信息,2007.2:10-13
  [6] 张延军,乔德军,温炎耿等.构建Java教学体系[J].邯郸学院学报,2007.17(9):41-44
  [7] 蓝雯飞,郑波尽.高级语言程序设计课程建设思路[J].计算机教育,2012.6:30-32
  [8] 陆萍.浅议Java程序设计教学改革[J].电脑知识与技术,2007.27:32-35
  [9] 石瑞峰,边琦,冯小龙等.Java程序设计教程[M].清华大学出版社,2012.
转载注明来源:https://www.xzbu.com/8/view-3882755.htm