Java教学中学生实践和创新能力的培养

时间:2022-10-11 08:10:37

Java教学中学生实践和创新能力的培养

摘要:为了更好地实现Java程序设计方面创新人才和拔尖人才的培养的目标,以Java教学中影响学生实践和创新能力培养的各个因素为切入点,提出了一系列有助于培养学生Java实践和创新能力的教学方法,并具体讨论了各种方法的实施办法。教学实践表明这些方法是可行和有效的。

关键词:Java 实践教学 实践能力 创新能力 教学方法

文章编号:1672-5913(2011)18-0012-04 中图分类号:G642 文献标识码:B

基金项目:甘肃政法学院青年科研基金项目(GZF2010XQNLW53)。

Java课程是应用实践性的课程。长期教学经验说明,单纯的“理论+程序演示”的理论教学方法以及 “学生自主实验+教师随堂指导”的实验教学方法存在着一些缺陷,表现为学生创新能力的欠缺和自主实践能力较差。

教学过程是一个系统过程,涉及到该门课程的所有教学和实践环节,其中任意一个环节的薄弱都会导致学生实践和创新能力培养效果不佳。因此,Java理论教学环节、实验教学环节、学期课程设计、学年论文(设计)、毕业论文(设计)环节、学科竞赛环节、校外实践环节等方面都是培养学生实践和创新能力的关键环节。

以贯穿Java教学整个过程的各个重要环节为切入点,从细节入手,扎扎实实落实好每一个关键环节,是保证培养学生的Java实践和创新能力的根本。

1 在理论教学环节中培养学生的实践和创新能力

1.1 以问题和实际项目为核心,采用以线带点的教学模式

需求是创新和应用成果产生的动力和源泉。传统的Java教材和教学内容是按知识点为模块组织的,即一个知识点,一个针对该知识点的例题,这样虽然有利于学生循序渐进地学习和掌握各个基本知识点

及其用法,但这种教学方法,有时会导致学生一听就会,一用就忘。其原因在于,学生从根本上并没有掌握该知识点到底有什么用,只是听懂了那道例题而已,没有深层的理解和举一反三的能力,学过时间不久,就会全然忘记。当学生遇到一个实际问题时,就会束手无策,不能将当时上课时感觉已经“掌握得很好”的各个知识点进行融会贯通和综合运用。因此,教师在教学中要运用几个能贯穿大部分教学知识点的综合实例和实际应用项目,有说服力地说明贯穿在其中的各知识点的重要性和用法。经过较长时间的检验,这种教学方法的优点是:其一,可以提高课堂教学的趣味性;其二,可以减少学生在学习各个知识点时的茫然和困惑;其三,可以提高学生综合各个知识点,形成知识网络,进而进行实际问题解决的能力。

所谓“以线带点”是以问题和实际项目为主线,贯穿各个分散的Java知识点,完成Java知识点的脉络化。

1.2 以学生为主体,教师为主导

在以往教学过程中,限于课时,“满堂灌”现象仍时有发生,结果是教学任务完成了,但学生的主体地位没有体现出来,没有充分参与到教学过程中,积极性不高,教学效果受到很大影响。为了克服这一点,“互问互答”的启发式和讨论式教学是一种好方式,这样可以最大程度地调动学生学习积极性和主动性,也有利于让学生在教学过程中保持精力集中的良好状态,长期以来可以培养学生创造性思维能力。教师在教学过程中,从一个较高的高度引导学生如何学习知识,提高学生学习效率和获取新知的能力,真正实现教学相长。

1.3 开拓视野,编写高效的程序

在讲授类创建方法的时候,教师除了讲授用传统的“new类构造方法”的方式外,可以介绍运用java.lang包中Class类的forName方法创建类对象[1],同时介绍运用Java设计模式中的“工厂模式”进行类对象的创建,并比较几种创建类对象方法的异同,从而培养学生运用多种方法解决同一问题的能力。

引导学生在算法设计上下功夫,一个实用软件的开发,往往需要编写高效率的算法,因此,算法的设计在Java程序教学中仍然是非常重要的。但由于课时有限,不可能占用较多课时来弥补学生在算法方面的不足,可以做到的是,引导学生总结和复习先修的算法设计课程以及其他程序设计课程中所学的算法设计知识,借助Java程序进行实现,并比较效率;介绍一些智能算法如“遗传算法”的设计和实现的相关知识,帮助学有余力的学生运用这些智能算法进行实际问题的解决,将非常有助于提高学生创新能力的培养。

2 注重实验教学课堂的效率

Java实验教学是Java教学的重要组成部分,更是提高学生动手能力和创新能力的重要途径。

2.1 落实实验预习

一般情况下,实验课时是2学时,这对于一个较大的实验项目来说,根本没有可能在2个实验学时中完成,因此,提前布置实验任务并督促学生按期完成非常重要。如一个JSP项目“学生成绩管理系统”的综合实验项目,应让学生在做该实验项目之前,就基本完成系统的设计及大部分的编码工作。在实验课堂中,主要是配置好开发环境和调试系统,在指导教师的指导下解决遇到的问题并按指导教师的要求做进一步的改进和完善。

2.2 检验实验效果

指导教师对于学生的实验成果应及时检查和提问,及时发现每个学生在做实验项目时遇到的问题以及该生对该实验理解、设计和实现的程度。

3 重视课程设计、学年论文设计与实践

Java课程设计是在学生学习完Java程序设计课程后对其进行的一次全面的综合练习和考查。课设成绩将作为本课程的期末考核成绩的重要组成部分。通过课程设计,使学生能够得到较系统的技能训练,从而巩固和加深对Java编程的基础理论知识的理解,培养学生综合运用所学知识解决实际问题的能力,使学生成为具有扎实的理论基础和较强的独立动手能力的应用型人才。

3.1 注重题目设计的目标性和归类

针对不同的Java应用,将课程设计题目合理归类,如“基于Java SE的桌面应用系统”类、“基于Java EE的Web应用开发系统”类、“基于Java ME的移动设备系统”类等。从而做到有针对性。

在指导学生选题时,告诉学生在完成该题目时,可以在哪些方面有创新点和亮点,并将这些创新点的完成情况作为评价课程设计成绩的重要依据。

3.2 强调学生所做项目的实用性和原创性

以往学生所做的课程设计、学年论文设计与实践项目大都源于教师指定的题目,而这些题目往往都是一些虚拟项目如“XX项目的设计与实现”,题目本身比较含糊,导致学生无法进行具体的需求分析,只能造出一个“需求分析和开发背景”。这样的项目完成后,即使做得比较“完美”,也是离实际应用较远,不能投入实际应用。

培养学生求真务实、追求原创的素养,克服浮躁情绪,避免仅为完成任务抄袭他人项目成果。在教学过程中,经常发现部分学生将资料查阅变成了“复制―粘贴”:不去汲取他人项目成果中的精华,也不去做任何改进,直接原封不动地套用。结果自己在“实

践”过程中不但没有学到任何知识,积累任何开发经验,反而养成了不劳而获,抄袭剽窃的坏习气。因此,在引导学生进行项目实践的过程中,在对其进行各阶段指导和检查时必须严格把关,引导和帮助学生树立良好的专业道德素质和研发精神。

4 毕业论文环节的创新能力培养

4.1 设计、指导与完成创新性、研究性题目

在前些年的毕业论文选题中,较多见的是:“基于Java SE的XX系统的设计与实现”,“基于JSP的XX系统的设计与实现”等。目前这类题目作为计算机本科生毕业论文题目,有以下一些弊端:

1) Java的开放资源非常多,以这类命题的网络及参考书资源、甚至整个软件设计开发背景、设计过程、实现过程、实现的全部源码都有现成的。

2) 虚拟项目较多,大都是自圆其说,如对系统的设计和开发背景是自定的,而不是源于实际用户的实际开发要求。学生在完成过程中,没有与用户沟通和交流的机会,没有反复满足用户具体、特殊要求的过程,从而导致学生没有通过想办法、找妙招来解决问题的磨砺过程。

3) 若有两个以上的学生选择了题目不同,但实际设计和实现过程大同小异的题目,就不能保证一人一题的原则。

毕业论文与设计是对本科生本科学习知识的大检阅,也是对本科生学术研究能力、分析和解决实际问题能力的重要培养环节,也是为本科生将来深造和从事研发相关工作所作的一个铺垫。为了突出毕业论文(或设计)环节中对学生创新能力的培养,在毕业论文的选题上,指导教师应进一步把关,设计出具有实际开发背景、创新性和一定研究性的题目。

4.2 注重对现有软件包的二次开发

基于Java的用于各种研究和实践的软件包有很多,以基于Java的多Agent开发工具包JADE(Java Agent Development Framework)[2]和遗传算法工具包JGAP(Java Genetic Algorithms Package)[3]为例,说明

利用基于Java的工具包进行二次开发来培养学生创新能力的实例。

对于基础较好、有较强科研兴趣的学生,可以引导其运用诸如JADE这样的多Agent系统开发工具包开发简单实用的多Agent系统,从而带动学生学习和研究多Agent系统的理论和实践方法。遗传算法是当前应用广泛地智能算法之一,而基于Java语言的遗传算法工具包JGAP中已实现了简单遗传算法和部分高级遗传算法的基本框架,可以引导学生快速在其基础上完成一些改进和在开发,最终达到学生理解遗传算法基本理论和实际应用的目的。

5 以竞赛高度为标杆,促进学生进行高层次编程训练

Java竞赛题目具有很强的新颖性和挑战性,其目的在于考察参赛学生的创造性解决实际问题的能力和编程思维。引导学生参与各级各类的Java编程竞赛或以历届竞赛题目作为训练,都能达到提高学生的创新意识和能力以及培养拔尖学生的目的。

6 产学研结合

6.1 创新实验室和基地建设

为了使学生具有快速适应市场Java人才的需求、能够独立创业的目的,根据学校客观条件的不同,建立一定规模的创新实验室或联系实验基地尤为重要。这是因为:

1) 较大型工程实践项目的开发都需要一个较长的周期,一般为3~5个月或更长。对参与完成项目的学生的训练和培养也需要一个较长的周期。而普通和短期的实验项目训练无法达到培养学生独立承担实际工程项目的能力。

2) 在对学生进行训练和实际项目的开发过程中,不可能占用正常的上课时间,而是充分利用课外、周末以及节假日的课余时间,有教师指导团队对学生进行辅导、训练和协同项目开发。

3) 一个固定而且全天候的实验场所和一定数量、档次的仪器设备是能否完成创新性实验和实际项目开发的重要保障。

6.2 承接软件开发项目,为学生走向市场奠定基础

由指导教师牵头,分析和研究市场对Java编程人员的需求,有针对性地承揽学校及校外的应用开发项目,组建以学生为主体的项目开发小组,进行项目开发。

6.3 进入课题组,锻炼科研能力

指导教师带领学生进入创新实验室,共同开展和完成Java相关的科研、教学改革和实践项目,让参与项目的学生体验科研过程,学习科研方法,培养科研精神。

7 教学中应用系统科学方法

系统科学方法理论是计算机科学与技术的重要的方法论之一[4]。面向对象编程思想和软件工程是系统科学方法在软件开发中的集中体现。在学生的

实践教学各个环节中,往往会做一些类似于“XX信息系统的设计与实现”之类的项目。但学生在实践过程中,急于求成,只关注系统的实现,一开始就写源码,不注重按软件工程理论和方法进行系统分析和设计,也不注重系统中类的设计和类间关系的设计,是导致项目开发失败或脱离实际应用的重要原因。更严重的是,这样的开发习惯一旦养成,将会被学生带到今后的实际项目开发中,情况会更加糟糕。

8 结语

通过长期的Java教学实践,笔者总结出“学生实践和创新能力培养效果的好坏取决于每个教学环节完成好坏”的结论。从细节入手,扎扎实实完成好每一个教学环节,不仅可以培养学生实践和创新能力,而且可以帮助学生养成良好的学习、研究习惯并为学生就业奠定坚实基础。

参考文献:

[1] 耿祥义,张跃平. Java 2实用教程[M]. 3版. 北京:清华大学出版社,2006: 95.

[2] Carie G. JADE TUTORIAL:JADE PROGRAMMING FOR BEGINNERS[EB/OL]. [2011-03-07]. /doc/ JADEProgramming-Tutorial-for-beginners.pdf.

[3] Java Genetic Algorithms Package[EB/OL]. [2011-03-07]. .

[4] 董荣胜,古天龙. 计算机科学与技术方法论[M]. 北京:人民邮电出版社,2002:117.

On Students’ Practicing and Creative Ability Training in Java Teaching

LI Ruisheng

(College of Computer Science, Gansu Institute of Political Science and Law, Lanzhou 730070, China)

Abstract: In order to implement the goal of training the creative-talent and tip-top talent in the Java programming teaching effectively, to use all the factors that affect students’ practicing and creative ability training as starting point, series methods that are beneficial to students’ practicing and creative ability training are proposed and specific implementation measures of all of methods are discussed in detail. Teaching practice shows that those methods are feasible and effective.

Key words: Java; practice teaching; practicing ability; creative ability; teaching methods

上一篇:电子商务的“复合型”与“专业化”人才培养 下一篇:计算机专业的嵌入式系统课程教学探讨