基于项目驱动的Java框架技术课程的教学研究

时间:2022-05-08 12:32:02

基于项目驱动的Java框架技术课程的教学研究

摘要:根据Java框架技术课程的特点,提出了项目驱动的教学方法,并研究了如何选择课程教学内容的问题。针对教学过程中出现的学生迟到旷课现象,选取了考勤系统作为具体的实践项目,并阐述了如何把项目贯穿于教学内容中的具体教学实践过程。实践结果表明该方法在提高课程的教学质量方面取得成效。

关键词:java框架;项目驱动;教学内容;授课计划;考勤系统

中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2013)01-0105-03

Java语言凭借着其卓越的通用性、高效性、平台移植性和安全性拥有全球最大的开发者专业社群,广泛应用在个人PC、互联网、超级科学计算等领域。IDC的统计数字,在所有的软件开发类人才的需求中,对Java工程师的需求量达到全部需求量的60%-70%[1] 。可以说当前最热门的软件编程语言当属Java。应用型本科院校的学科和专业在强调必须的学术性和基础理论性的同时,要更加强调面向市场现实需要和学生的实际与未来发展需求。根据Java的特点和专业的办学定位,我们选择Java作为学生培养的一个重要方向。由于Java内容非常庞大,相关的课程较多,我们提出Java四阶段教学的理念:第一阶段:面向对象原理与 Java 实践;第二阶段:Java Web 应用编程基础;第三阶段:Java Web 开源框架技术;第四阶段:分布式计算技术。Java框架技术教学属于第三阶段的教学,教学内容主要是当前炙手可热的Struts2、Spring和Hibernate (简称SSH)三大轻量级开源框架技术的整合开发。

1 Java框架技术课程教学现况

Java EE技术经过多年的发展日趋成熟,已经成为最佳的电子商务解决方案之一[2]。JavaEE包含的内容也非常多,既包括Sevlet、Jsp等Java Web基础知识,也包括Struts、EJB等框架技术。越来越多的高校开始注重这方面的培养,但是很多高校的计算机专业培养方案中往往只包含Java面向对象程序设计和Java Web基础这两个阶段的内容,而技术更新非常快速的更深层次的框架技术课程却少有涉及,更鲜有列为单独一门课程进行教学。这方面的教学在专业的培训机构中却受到重视,因为社会上的JavaEE工程师的使用最多的还是框架技术。像Java框架技术这样子的课程在高校中属于新兴的课程,以前没有多少教学经验可供借鉴,如果按照传统教学模式教授软件专业培养,效果不好[3]。各个高校对这门课程的研究在不断的进行当中,目前陆续有一些教学成果出来,如河南师范大学计算机与信息技术学院的《Java EE 框架课程教学方法改革与实践》、江苏信息职业技术学院计算机工程系的《课程教学改革的研究》等。我们学院开设这门课程的时间到目前为止也不过是三年的时间,经过艰难的摸索实践和总结,我们在提高这门课程的教学质量方面也取得了一定的成果。

2 项目驱动教学法

Java框架技术课程是一门专业技能课程,对学生的实践动手能力要求大大强于理论学习能力。在传统的教学方式当中,往往以教师课堂讲解为主,学生听为辅,学生被动的接受知识,培养出来的学生缺乏自主探索知识的能力,缺乏运用知识解决实际问题的能力。“项目驱动教学法”是建立在自主学习基础上的一种教学方法。它要求学生完成老师给定的项目任务中,在探究完成项目或解决问题的过程中,在自主学习和小组讨论的氛围中进行学习活动。这样,既培养了学生动手实践能力又学到了知识,提高了学生的创新意识。学生在完成项目的过程中,不断激发了自主学习的创新性、主动性,更容易掌握各项知识[4]。“项目驱动教学法”特别适合像Java框架技术这种专业技能类的课程。

3 教学内容的选择

在学习本课程之前,学生应该已经具备良好的Java面向对象、Java Web应用编程基础、数据库原理等基础知识。MVC设计模式是软件开发人员公认的一种良好的软件设计模式,SSH这三个框架中,Struts2和Spring都实现了MVC设计模式,但是在实际应用中,开发者往往更偏爱使用Struts2框架作为MVC的承载者,把Hibernate作为数据库的操作者,把Spring作为程序的托管者。使用了SSH三大框架的程序结构上一般分为三个层次,分别为Action层、Service层和DAO层,分别实现与用户交互、数据逻辑处理及数据库操作。根据学生的基础以及三个框架和三个层次在程序中的作用,我们制定了相应的教学内容。

3.1 Struts2

Struts2作为程序MVC设计模式的承载者,同时负责与用户界面的交互,在程序中占有重要的地位,要学习的掌握的内容非常多,是教学的重点。Struts2的基本内容应该包括以下几个方面:

1) Struts2的MVC思想。主要介绍Struts2的工作流程及在MyEclipse中的配置,重点介绍手工给Java Web工程添加Struts2的支持。

2) Strust2的核心配置文件Struts2.xml的详细解释。内容包括、、、等子标签的详解,其中的难点是子标签中使用通配符及子标签中页面的跳转方式。

3) Struts2的输入校验及国际化。输入校验包括使用validate()函数和validation校验框架两种方法,国际化包括如何建立资源文件及如何访问,其中的难点是如何使用别名区别不同的请求对应不同的校验方式以及中文国际化资源文件的编码的问题。

4) Struts2的拦截器及类型转换器。内容包括拦截器的工作原理、创建及引用方式,类型转换器的三种建立方式及其配置。它们都有一个共同点就是都要继承特定的类或者实现特定的接口。

5) Struts2的标签库。内容包括有数据标签、控制标签和表单标签,其中的难点是ognl表达式。

6)Struts2的文件上传、下载及其他应用。这部分内容包括单个文件上传、多个文件上传、Struts2对Ajax的支持等。其中的难点是如何控制上传文件的大小及类型。

3.2 Hibernate

Hibernate在程序中专注于数据库的操作,目标是让程序员从繁重的数据库操作中解放出来。其包含的内容并不太多,且对一般的应用并不需要了解太深入。主要内容包括以下几个方面:

1) 对象关系映射(Object/Relation Mapping,ORM)思想、标准查询接口Criteria以及HQL。对一个已经熟悉使用传统的SQL语言来操纵数据库的人来说,要马上接受使用面向对象的方式查询数据库不是一件容易的事情,这是一个重点,也是一个难点。

2) Hibernate的配置。包括核心配置文件Hibernate.cfg.xml、数据表映射文件XXX.hnm.xml和数据表的PO类。其中的难点是一对多关系的映射。

3) Session的使用。Session是Hibernate持久化操作的基础,提供了众多持久化的方法,如save、update和delete等操作。其中的难点是持久化对象的状态转换及事务的处理。

3.3 Spring

之所以把Spring称为程序的托管者,是因为程序三个层次之间的相互调用由Spring来决定,而且Spring还可以托管其它的一些工作,如整个程序的异常处理等。Sprign的内容包括以下两个方面:

1) Spring的控制反转(Inversion of Control,Ioc)思想及其应用。控制反转又称为依赖注入,是Spring的核心机制,但理解起来并不容易。通过使用Ioc机制来实现不同类之间的相互调用会使得程序的耦合程序大大降低,方便日后升级维护。这是教学的一个重点和难点。

2) Spring的面向切面编程(Aspect Oriented Programming,AOP)思想及其应用。AOP专门用于处理系统中分布于各个模块(不同方法)中的交叉注点问题,在Java EE应用中,常常通过AOP来处理一些具有横切性质的系统级服务,如事务管理、安全检查等,AOP已经成为一种非常常用的解决方案[5]。其中最常用的是利用AOP思想进行系统的事务管理,减少数据库操作的代码量,这也是教学的重点。

如果课时安排比较充裕的话,还可以讲解其它常用的框架,如支持Ajax的DWR框架,支持Web Service的Xfire框架等。

4 教学的实施

4.1 项目驱动法中项目的选择

“项目驱动法”中项目的选取是关键,选择一个好的项目既能启发式的给学生传授知识,又可激发学生的学习兴趣。现在学生的迟到和旷课现象比较严重,靠传统的点名考勤方式效果不佳,而且容易使学生反感,主要原因是考勤结果不能即时公布,接受同学们的监督。如果有一个考勤系统能在考勤的同时把累计结果公示出来,可以给违反纪律的学生一种督促,也可以给表现好的学生一种鼓舞。我们使用本门课程即将学习的SSH三大轻量级框架技术实现一个达到以上效果的考勤系统,作为课程的实践项目。在第一次上课时把项目展示给学生,并在平时课堂上使用。授课过程中以此项目引导学生学习,把需要掌握的技术具体应用在这个项目中,达到一种学以致用的效果。当知识点讲完以后,整个项目就可以投入运行

4.2 授课计划

选取了具体的项目后,如何把教学大纲中要求的知识点结合到项目中是一个需要认真思考和设计的问题。既要考虑知识点的全面,又要统筹课时安排,既要突出重难点,又要兼顾项目的实现。在我们的培养计划中,这门课的教学安排是28个学时,我们每个课时的授课计划如表1所示。

由于课时较少,内容较多,要求授课教师对教学内容非常熟悉,动手能力较强,合理组织课堂教学,才能用最短的时间把最好的内容讲解和演示给学生。

5 结束语

根据我们提出的Java四阶段的教学理念,本课程属于第三阶段开源框架技术,所讲授的内容也是学生就业后在工作中使用最多的,因此,这门课程在Java四阶段教学理念中占有非常重要的地位。经过多年的探索,我们逐步确立了以项目为驱动的教学方法。选取了以考勤系统作为实战项目之后,教学质量大大提升。这种通过与学生有紧密联系的项目驱动教学方法一方面提高了学生的学习兴趣,另一方面也对学生的学习纪律起到一种督促作用。使用这种教学方法后学生的迟到旷课现象比没有使用这种方法的时候减少90%以上。

良好的教学实施,增强了学生的学习和实践能力,学生的基础和表现受到来自软件企业的培训教师的赞许,有效地缩短了学生能力与企业具体的用人需求之间的差距。这几年,我院计算机专业毕业生从事 Java开发工作的人数逐届递增,不少毕业生已成为单位的骨干。今年刚刚毕业的2008级的某位同学,已经在任职公司的Java开发小组担任组长。2010 届毕业生中有 5 人进入了广州某知名软件公司从事 Java 开发工作,因工作表现突出,该公司这两年每年都给我院计算机专业毕业生提供 20 个 Java 就业岗位。在刚结束的学期的学生调查结果表明,Java框架技术课程已经成为我院计算机专业学生最为认可和欢迎的课程之一。

参考文献:

[1] 许庆炜,徐兆佳,杨莉.软件工程专业Java教学初探[J].计算机教育,2012(1):28-30.

[2] 郑阿奇.Java EE实用教程[M].北京:电子工业出版社,2009:1-401.

[3] 周运.Java EE 框架课程教学方法改革与实践[J].高师理科学刊,2012(2):99-102.

[4] 曹林.论项目驱动法在计算机基础课程教学中的运用[J].现代阅读,2012(4):47-48.

[5] 李刚.轻量级Java EE企业应用实战—Struts2+Spring3+Hibernate[M].北京:电子工业出版社,2011:157-715.

上一篇:GPS共视授时中的多径效应分析 下一篇:基于WebGIS的洪水模拟仿真系统的设计与实现