周贤善 李 娟 官 彬
文章编号:1672-5913(2009)02-0069-03
摘要:本文分析了Java作为入门教学语言的相关争议,分析了常用的Java集成开发环境(IDE)的技术特点,对Java教学内容的选择、教学各环节的实施进行分析和探讨。
关键词:Java;IDE;教学
中图分类号:G642
文献标识码:A
1引言
“计算机程序设计基础”是学生从技术的角度学习计算机的主要基础课[1]。由于不同学校、不同专业对学生程序设计能力的要求不尽相同,所以程序设计课程可以采用不同的教学语言。Java语言是Sun公司推出的新一代面向对象程序设计语言,具有简单、稳定、与平台无关、安全、解释执行、多线程等特点,是目前使用最为广泛的网络编程语言[2]。本文将对Java课程的开设、IDE的选择、教学方法进行分析和探讨。
2作为入门教学语言的争议及分析
纽约大学计算机科学系的两位教授认为:以Java作为入门教学语言会使学生过早地使用Java类库和框架,学生只知道将一些简单的程序组织到一起,但难于对所写的程序形成运行时成本(run-time cost)的概念,因为他们很难知道究竟哪种调用方法是有效的;真正的程序员应该会用任何语言编程,过早地使用Java使学生不清楚源程序和硬件间的关系,不了解指针的意义,将来难以使用C语言编程;还有Java初学者习惯于图形化编程,难于在没有图形用户界面(GUI)的语言上编写程序[3]。两位教授的意见非常中肯,但从侧面又反映了Java语言简单、好学、好用,对于非计算机专业的学生来说,这是很重要的一点。正如当年从DOS的学习过渡到Windows的学习一样,很多老师坚持DOS内容非讲不可,否则担心学生直接学习Windows时对内部命令和外部命令等基本概念都模糊不清,可现在的“大学计算机基础”课程中,基本都不讲DOS而直接讲Windows了,学生学起来更加简单、方便。
入门教学语言的选择是至关重要的事情,作为大多数学生第一种需要认真学习理解的编程语言,必将成为很多学生的编程母语在他的思维方式中留下深深的烙印。这个编程母语要帮助学生破除计算机和软件的神秘感,建立对于程序的基本认识和对计算机体系的最初理解。不仅如此,教学语言必须是工业界的主流语言,否则学生学非所用,学习动力无法保证。Java在教学上具有其特殊的优势,比如其开发环境和工具支持非常成熟,有助于培养学生正确的编程习惯;Java 是当今第一工业主流语言,标准类库非常全面,可以迅速地开发具有实际用途的程序,有助于激发和保持学生的兴趣。
当然,学生过早使用Java框架,长于整合和快速开发,生产效率高,做直接的、有章可循的、非研究性和非创新性的工作比较合适,但这样的学生基础不牢,对计算机系统的理解薄弱,处理细节和矛盾的能力不足,缺少自主分析问题、解决问题的知识、能力和经验。因此在Java教学中教师决不能让学生依赖Java框架写出程序就大功告成,而应该让学生独立实现部分类库。
Java作为入门教学语言是有诸多可取之处的,关键是教师了解其优点与缺点后,教学中要“扬长补短”,没有必要因为其不支持指针等细节而耿耿于怀。
3常用Java IDE的技术特点
一种程序设计语言辅以强大、高效的开发工具才会取得成功。Java语言的成功也证明了这一点。纵观计算机开发语言的历史,还从来没有哪种语言像Java那样拥有十几种开发工具。这里仅介绍四种最流行的Java集成开发环境(IDE):Eclipse、NetBeans、JBuilder、JCreator。根据近期数据调查分析可以看出,Java IDE的使用呈现Eclipse、NetBeans、JBuilder三国鼎立的局面。当前Eclipse市场份额占45%,NetBeans占30%,Jbuilder占15 %,其他IDE占5%[4]。
Eclipse是IBM公司的一种可扩展的开放源代码IDE。Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。经过几年的发展,Eclipse已经成为目前最流行的Java IDE。并且拥有了很多的Eclipse社区和新闻组。目前,Eclipse已经成为开发Java程序的首选IDE。
JBuilder是Borland公司的Java IDE。JBuilder功能强大,能够满足很多方面的应用,尤其是对于服务器方以及EJB(Enterprise JavaBeans)开发者们来说。JBuilder缺点是往往一开始人们难于把握整个程序各部分之间的关系,对机器的硬件要求较高,占用系统资源较多,所以运行速度也较慢。
NetBeans是SUN公司主导的一个开放源码的Java IDE,它已经仅次于Eclipse,是第二大Java IDE工具,适用于各种客户机和Web应用。这个IDE有很多好的工具支持基于服务的企业开发,尤其是在SOA方面。举个例子来说,NetBeans是IDE中唯一支持BPEL图表和建模功能的产品。
JCreator为用户提供了相当强大的功能,可以不用激活主文档而直接编绎或运行Java程序。JCreator的设计接近Windows界面风格,用户对它的界面比较熟悉。其最大特点是与我们机器中所装的JDK完美结合,是其他任何一款IDE所不能比拟的。它是一种初学者很容易上手的Java开发工具,然而JCreator的缺点也是非常明显的,它由于太过简单,当学习到开始接触AWT、SWING以及J2EE时就会发现它几乎无法完成J2EE以及界面程序开发。
一般开发项目时都需要安装各公司的应用服务器(中间件)和相应的开发工具,在使用这些开发工具之前,我们最好能熟知这些软件的优点和缺点,以便根据实际情况选择应用。
4Java课程的教学
目前,国内外很多高校已经将Java列为教学语言。然而,面对Java日益庞大的体系结构以及Java技术的飞速发展,如何在有限的学时内有效地开展教学就很值得研究。
4.1教学内容的选择
必须有针对性地选择教学内容,包含基础知识和高级知识,见表1。一方面,使得学生能够掌握必要的基础知识,为以后的进一步学习打下扎实的基础;另一方面,由于其涉及部分高级知识,为开发实用程序提供可能。
学习Java不能仅仅理解为学习Java的基本语法,认为掌握了基本语法就掌握了Java,这是理解上的误区。Java不仅仅是一门语言,它还是一个平台,所以要深入透彻地掌握Java,就必须掌握Java的基本工作原理,例如虚拟机、类装载器等等。此外,面向对象的思想一定要重点强调。面向对象是一种先进的系统分析、设计和实现方法,它已成为当前计算机软件开发的主流方法。Java API文档始终是学习Java 最权威、最全面的资料。学会使用Java API文档,对于日后的实际开发工作意义重大。
要想开发真正的应用程序,仅仅掌握基础知识还是不够的。异常处理、GUI、I/O 流、多线程、JDBC、Socket是必须讲授的内容。这部分知识也只是进一步学习其他Java技术的基础,因而需要扎实掌握。
在可能的情况下,教师应该尽早让学生接触设计模式(Design Pattern)。掌握常用的设计模式,可以避免重复设计或尽可能少做重复设计,极大地提高软件的可复用性和灵活性,从而大大提高软件开发效率。
4.2教学各环节的实施和教学方法分析
基础先行的讲授方式:先讲图形用户界面的做法从GUI和applet开始,似乎能够引起学生的兴趣,但这需要学生具备牢固的面向对象程序设计方面的知识,并要求对Java事件处理模式有很好的理解,所以学生可能不太容易完全接受。先讲基础,是一种循序渐进的讲授方式,首先对程序设计的概念、控制语句、方法和数组打下坚实的基础,然后介绍面向对象程序设计,再讲授图形用户界面、applet,最后讲授异常处理、简单I/O和其他高级课题[5]。这种方法的好处是,首先讲解了面向过程的方法,然后演示面向对象方法的优越性,学生可以从中学到何时以及如何高效应用面向对象方法。
4.2.1适时引入IDE工具
目前,已经有很多高级的可视化Java开发工具,例如JBuilder、Eclipse等等。这些开发工具功能强大,对于提高编程效率很有帮助。然而,对于初学Java者,建议不要一开始就使用这些高级工具,否则很容易迷失方向。重点应该放在Java基础知识的学习上,可以使用纯文本编辑工具作为编写代码的工具。例如,UltraEdit就是非常不错的选择。使用文本编辑类型的工具来编写Java代码,可以迫使初学者记住必要的基本知识,养成阅读Java API文档的习惯,这两点在起步阶段是很重要的,可以为后面的学习打下扎实的基础。在课程的后期再引入IDE工具,这样不至使学生将注意力集中在开发工具的学习上。
4.2.2重视编程技巧与风格
学生过早使用Java框架,长于整合和快速开发,生产效率高,做直接的、有章可循的、非研究性和非创新性的工作比较合适,但这样的学生基础不牢,对计算机系统的理解薄弱,处理细节和矛盾的能力不足,缺少自主分析问题、解决问题的知识、能力和经验。因此在Java教学中教师决不能让学生依赖Java框架写出程序就大功告成,而应该让学生独立实现部分类库。教师可先介绍Java框架中相应类的接口定义和使用方法,学生使用后,从用户的角度有了直观的认识,再让学生自己完成具体实现,然后在可用性、灵活性、可扩展性和性能上与Java框架中的实现比较,分析结果差异,最后再阅读、研究分析Java框架的具体源代码实现。这种让学生先当用户,体会用户的需求,然后再当设计者,这种方案不仅培养了学生独立解决问题的能力,也使其学习了Java框架中优秀的编程技巧与风格。
4.2.3设计大作业,强化实践环节
在课程后期,学生有了一定的Java编程基础,欠缺的主要是实际的开发经验和全面系统的、深入的掌握Java技术。解决的方法就是通过企业真实项目练习,对所学知识进行深化,然后通过项目来获取实际开发的经验,尽快达到企业的实际要求[6]。选择项目时需要注意:①选择企业真实项目。项目应是实际的系统,或者是实际系统的简化和抽象,不能够是没有实战意义的教学性或者是纯练习性的项目。否则学生练习后还是难以达到企业实际的需要。②项目规模要适当。这要根据项目练习的阶段,练习的时间,练习的目标来判断。太大了做不完,太小了达不到练习的目的。③项目应能覆盖所学的主要知识点。学以致用,学完的知识点需要在实践中应用,才能够真正理解和掌握。④强调培养学生的动手能力。软件开发是一个动手能力要求很高的行业,要求学生必须能够独立动手写出代码,写出的代码必须能解决实际的问题。
4.2.4推进评价环节的改革
一门课程的教学效果决定了该门课程的成功与否。除了教学内容的选择、教学环节和实践环节的充分重视,评价环节亦会显著地影响教学效果。Java课程是一门实践性非常强的课程,因而,单纯地使用传统的书面评价方式来判定学生的学习效果是不科学的。一方面不能考查学生的实际动手能力;另一方面也不能激发学生的学习兴趣。建议使用理论与实践兼顾、知识与能力并重的评价方式。对学生的评价主要由三个方面构成:①平时考核。作业情况、平时课堂提问表现、到课率。②实践考核。平时上机表现、课程上机作业。③理论考核。侧重于基础知识、基本概念的考查。这种评价方式能更加客观地反映出学生的学习效果,对学生的评价也更加科学。也可以使学生同时重视基础知识的掌握及动手能力的提高,最终达到提高教学效果的目的。
5结束语
本文对Java教学进行了初步探讨。要求教师要在更高的、全局的角度来安排教学内容,并能根据技术的发展不断更新教学内容。对Java的教学只有经过不断的试验、探索、总结,才能使教学效果不断提高。
参考文献
[1] 杨树林,胡洁萍. Java语言最新实用案例教程[M]. 北京:清华大学出版社,2006.
[2] 台雯. Java集成开发环境的分析与研究[J]. 天津职业院校联合学报,2008,10(2):56.
[3] 高振强,段丽华. 培养高技能人才的课程体系构建[J]. 宁波大学学报(教育科学版),2007,(8):52-55.
[4] 赵敬梅,郝桂英,刘凤. 高职计算机专业课程体系构建的探索[J]. 教育与职业,2007,(5):143-144.
An Exploration into the Teaching of Java as a Course
ZHOU Xian-shan, LI Juan, GUAN Bin
Abstract: The article analyzes the relevant controversies on Java as the basic language of instruction, examines the technical features of the developmental environment of the commonly integrated Java, and explores the choice of teaching content and various stages of Java teaching.
Key words: Java, IDE, teaching