Java程序设计课程教学中遇到的问题和对策
摘要:通过对Java程序设计课程教学中遇到的问题的分析,从完善教学内容、提高学生实践能力和创新能力等方面讨论了Java程序设计课程教学,提出了一种Java教学的新方法。
关键词:Java教学;问题和对策;课堂教学;应用实践能力
随着Java技术的不断发展及其应用领域的不断拓展和成熟,Java技术受到越来越多人的关注和喜爱,Java技术成为近年来社会需求最大的编程技术之一。
一方面,Java技术是非常庞大和复杂的,而另一方面,由于课时有限等原因造成学生无法较全面地掌握Java技术,导致毕业后职业竞争能力不强。
为了进一步培养学生Java应用实践能力和让学生将来更好地适应社会对Java人才的需求,笔者从Java教学中遇到的一些问题和相应的解决办法两方面展开论述。
1Java教学中遇到的一些问题
1.1仅开设Java SE课程带来的问题
目前,大多数高等院校都开设了Java程序设计课程,但由于课时限制,且针对选课的大多数学生没有接触过Java等原因,多以Java SE平台为教学主要内容,从基本的Java语法,Java面向对象编程方法、Java界面及事件编程、Java多线程、Java I/O流、Java数据库连接、基于Socket的网络编程等内容为主介绍Java。众所周知,这些内容都是Java技术的核心基础知识,在Java教学中是不可或缺而且要牢固掌握的知识。
但在实际教学过程中,只开设和讲授Java SE程序设计基础部分的内容带来了以下一些问题:
1) 学生学完Java SE基础课程后,会造成一些错觉和迷惑。例如,Java只是精简了的C++吗?Java的界面设计并不比Visual Studio中的软件、Delphi等强,优越性何在?Java原来就是这些内容,没什么,有了这些Java SE基础知识,就可以适应社会需求等。
2) 由于没有Java技术后续课程的支持,使得学生没有能力进一步自学或不能坚持学习Java EE,Java ME部分的Java技术,造成学生学习Java技术过程中的“断线”现象,对如何进一步学习和提高Java技术能力感到迷惘;由于无力自学层出不穷的Java流行技术而徘徊、退缩。学生所学知识与社会需求脱钩,当学生毕业走向社会时,就面临缺乏Java EE、Java ME的相关知识及其应用开发经验的问题。
1.2Java作业、实验、课程设计和毕业设计中存在的问题
1) 学生动手能力、综合运用知识的能力较差,在遇到实际问题时,无从下手。
2) 学生过多地依赖现成资料,只想从网上搜索相关解决方案,直接套用;课程设计、毕业设计原创性较差。
3) 学生没有养成良好的软件工程习惯,表现在系统设计和实现的混乱和随意。
1.3对教师的业务素质和能力的挑战
1) 学生希望通过课堂学习获得Java应用实践和适应Java社会需求的能力,这就对教师课堂教学的内容和方法提出了更高的要求。
2) 教师的工程实践经验面临挑战,编程经验和项目开发经验源于长期一线的开发和实践经验,而这些往往是教师所欠缺的。
2解决办法
2.1Java课程的设置
在条件允许的情况下,可以将Java程序设计课程分阶段开设,如在低年级开设“Java SE 程序设计和应用”课程,在较高年级开设“Java EE程序设计和应用”和“Java ME程序设计和应用”课程。并在选课系统中增设关于每门课程的内容简介和授课教师的介绍,这样做有以下好处:一是在课程名称字面上就可以看出授课的重点,可以回避学生从一个笼统的“Java课程设计”名称上产生误会,认为这门课可以将Java的所有技术都包含进去;二是通过课程内容简介,让学生更加透明地了解每门Java课程的授课重点,从而根据自己的知识需求和兴趣有目的地选择和学习课程。
2.2Java SE基础课程授课中的注意点
2.2.1教材的选取
Java技术体系庞大,不能以一本固定的教材内容作为教学内容的依据。应综合提炼,精选出包括Java技术核心基础及流行技术简介在内的内容进行讲授,让学生在牢固掌握Java基础核心知识的前提下,对Java高级应用和流行技术也有所了解,以便进一步学习Java技术。
2.2.2一定要介绍给学生的内容
1)Java平台组成及其各自应用领域的介绍。
Java自诞生以来,在不到20年的时间中飞速发展,针对不同的应用领域整合出3个平台即Java SE、Java EE和Java ME[1]3[2]1,如表1所示。在学生初学Java时,用最简单的实例阐明三种平台开发环境的搭建和应用,如演示在JDK和Eclipse两种环境下对Java Application和Applet的开发和运行过程;运用MyEclipse插件演示Java Web应用的开发过程;运用Eclipse+J2ME Wireless Toolkit+EclipseMe环境演示手机应用程序的开发等[3]4[4]19-20,这样即可以阐明完整的Java技术体系,又可以充分调动学生学习Java的积极性和主动性。
2) 让学生明白Java的学习路线。
一般是先学习Java SE,掌握Java面向对象程序设计思想和简单的程序设计模式。循序渐进地、系统地学习Java核心类库中常用类及其各自常用方法,编写Application和Applet程序。然后根据兴趣和需求学习Java EE,学习Java EE时先从JSP入手,学习JSP基本语法,理解JSP及Servlet的运行原理和关系,学习Struts、Spring和Hibernate轻型框架技术及Ajax技术等,进而学习Java EE中的其他高级技术。另一分支是Java ME 的学习,从手机应用和游戏开发等入手[3]6[4]9-10。
3) 让学生熟悉开发环境。
从简单基于命令行的JDK开发环境到功能强大的集成开发环境如Eclipse、MyEclipse、NetBeans IDE、JBuilder等,要逐一地介绍给学生。
对于Java初学者来说,熟悉JDK开发环境的使用和配置方法很重要,在使用JDK的过程中,让学生熟练掌握javac,java,appletviewer等常用命令的用法,将非常有助于学生理解一个Application,Applet的从编译到解释执行的步骤和方法;熟悉javadoc命令将会让学生执制作出自己所开发程序的Java文档,熟悉jar命令将会使学生将自己的程序进行打包和发布等[1]98-99[2]58。
从最简单的应用开始,让学生快速掌握各种集成开发环境的搭建和配置,如对Eclipse和MyEclipse插件及其他插件的配置和应用等,以克服学生由于环境不熟悉而产生的开发障碍。
4) 展示案例。
为了调动学生的学习积极性,展示现成的应用案例非常重要。目前,诸如《Java案例教程》、
《Java课程设计教程》、《Java项目开发教程》以及《Java毕业设计教程》等较多,其中大都包含了作者精心设计和实现的案例,可以从中精选出最具代表性的案例给学生演示,并概要介绍其设计和实现过程。也可以将历届学生运用Java所做的较优秀的课程设计或毕业设计项目演示给学生,这更具有说服力和利于提高学生学习的主动性和信心。
2.3有效利用网络资料和参考书籍,拓展学习渠道
Java具有开放性特点,SUN公司的网站上提供了包括JDK在内的各种Java软件开发工具和API文档的下载。国内外各种Java技术网站和技术论坛非常多,其上提供了大量的例程、技术方案、电子书、教学视频、开放源码、疑难问题的讨论和解答等。同时,涉及Java编程思想、Java程序设计、Java项目开发等书籍也非常多。将这些海量的网络资料和参考书籍进行归类和精选,推荐给学生,并将这些资源的利用布置为作业和课程实践项目,检查督促学生完成情况,对培养学生甄别各种Java资料的优劣并加以有效利用有很大的帮助。
2.4夯实编程基本功,锻炼编程思想,提高分析问题的能力
针对学生拿到实际问题时束手无策,综合应用能力弱的问题,可以在教学中设计几个能贯穿小
到每一章节,大到整个教学内容大部分知识点的案例。先提出案例需求,再引入相关知识点,以软件工程的方法,按照需求分析,系统设计,编码和测试,打包发布,维护升级等环节讲授,让学生感受到程序中的每个类,类中的每个成员变量和方法都是在为某个实际的需求服务,而不是随意引入和定义的。
由(美)Bruce Eckle 著、陈昊鹏译的《Java编程思想》和耿祥义、张跃平著的《Java编程模式》等,都是优秀Java编程思想的凝结和提炼,而Struts、Spring和Hibernate等轻型框架技术则是这些优秀编程思想在技术层面的集中体现,选择其中的内容融入教学过程中,引导学生从中汲取优秀编程思想的营养。
实验教学是Java教学的重要组成部分,因此,针对每个章节基本知识点的实验项目,可以将实验项目分为基本验证性、拓展性、创新性等层次。对于基本验证性实验,可以给出程序模板,将程序中一些关键语句抽去,让学生通过程序填空的方式进一步巩固理论教学中所学的内容[5];拓展性实验项目只给出问题需求,这类实验应选择与授课例题相仿,但有一些变化的题目,让学生独立编程实现;创新性实验项目是针对较拔尖的学生,可以选用有难度的Java竞赛题目或综合较多知识点的应用题目。
教师在授课前就给学生布置课程设计题目,题目应选择具有实用价值的中小型项目,目的是边学习边解决课程设计任务,从而增加学生学习的主动性和积极性。当学生运用课堂上学到的知识解决了实际问题时,则会大大提高学生的学习兴趣和信心,感受到成就感。
2.5通过竞赛提高
对于学有余力的学生,应鼓励他们参加各级各类的Java程序设计竞赛,如参加ITAT的Java程序设计竞赛等。通过竞赛,一方面,锻炼了学生团队合作精神,另一方面,使得所学知识在一个较高的层次上得到了检验和提高。
2.6改革考试模式
Java课程是一门实践性很强的课程,不宜只以笔试的形式进行考试,采用“笔试+课程设计”的形式是一种较好的考试模式。考试形式对于学生学习的方式和态度影响很大,如只采取笔试的形式,有可能导致学生只记住或理解与授课内容范围中的知识点来应对考试。而只用开放实验或课程设计的方式进行考试有可能导致部分学生抄袭现成的代码而不求甚解或分工不均等。
2.7兴趣小组和Java社团的组建
“学之者不如好之者,好之者不如乐之者”,兴趣是最大的内驱动力,可以成立Java爱好者兴趣小组或Java社团等学生组织,建立社团的网站,通过它交流和分享Java编程体会和经验;可以虚拟项目,成立开发团队,分工协作,完成项目开发。
2.8牢固树立软件工程思想,保证项目开发的效率
在做较大的课程设计或毕业设计以及开发虚拟项目时,也要严格按照系统分析(包括需求分析、可行性分析等java网课推荐)→系统设计(包括系统功能及流程设计、业务编码规则、采用技术及开发工具选型、窗体或页面布局设计、类及类间交互关系设计等)→数据库设计→编码实现→测试与发布等流程实施项目开发[6]。
对于学生初学Java项目的开发时,要尤其注意防止将以上步骤的执行流于形式。例如,在没有弄清开发意图及实现目标的基础上就急于编写代码;开发小组成员分工模糊、重叠、缺乏监管;先有实现,再补设计和文档等问题。这些都需要指导教师耐心地引导、督促并参与到开发小组中,逐步规范和培养学生良好的软件工程习惯,从而提高项目开发的效率和成功率。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论