高职JavaEE编程技术课程改革的探索与实践
2010-12-31钱宇虹
计算机教育 2010年8期
摘要:本文以企业对人才的需求为导向,结合笔者多年的教学实践经验,按照“教学内容、工作任务、软件项目三位一体”的改革思路,探讨JavaEE编程技术课程改革过程中教学内容的优化整合、学习情境的设计、教学方法和教学手段的革新、实践教学的改革等多方面的实践探索。
关键词:课程改革;学习情境;任务驱动;项目导向
文章编号:1672-5913(2010)08-0076-04
中图分类号:G642
文献标识码:A
JavaEE编程技术是我院软件技术Java开发方向的专业核心课程,它是继学生修完Java程序设计、JSP程序设计之后的一门重要课程,对培养学生在企业应用中的开发能力,培养中高级Java程序员和Java服务器端程序员起着至关重要的作用。
JavaEE是一个庞大、分支众多的技术体系,同时也是一个需要不断接受新思想、解决新问题的系统,要想在有限的学时内学好,很难做到面面俱到。同时,作为一门高职课程,JavaEE不能太理论化,而应该面向实际应用。JavaEE是服务器端技术,要解决的问题是企业级应用,企业级应用的重要表现形式是分布式系统,EJB、Web服务、JMS这些企业级系统常用的技术,其学习难度大,应用环境很复杂,这给实践教学的开展带来一定的难度。
![](https://img.fx361.cc/images/2025/0114/5tShUoxEUcNvFzGkHT4Ud3.webp)
高等职业教育的课程改革不仅仅是方法的改革,还是理念、内容、实施方法等多方面的改革,高职教育的特点应该以实践教学为主。本文以企业对人才的需求为导向,结合笔者多年的教学实践经验,按照基于工作过程的改革思路,探讨了JavaEE编程技术课程改革过程中教学内容的优化整合、学习情境的设计、教学方法和教学手段的革新等多方面的改革实践。
1 按照企业需求和成长规律优化整合教学内容
1,1课程改革源于专业的整体要求,同时必须符合企业的需求
一门课程不是孤立的存在,课程改革来源于专业的整体要求,而专业人才的培养必须符合企业需求。企业对Java程序员的岗位需求分为两类,即Java客户端程序员和Java服务器端程序员。这两类岗位所要求的知识和技能既有较大的差异,又存在紧密的联系。一方面,客户端程序是独立运行的桌面应用,一般具有丰富的图形用户界面,经常需要直接与数据库进行交互,也需要调用服务器端程序提供的服务。客户端程序员需要具有丰富的Java图形用户界面编程经验,数据库编程经验,对Java服务器端技术有一定的掌握和运用能力。另一方面,服务器端程序运行在服务器上,它为别的程序提供服务,需要程序员掌握组件的编程、应用在服务器端的主流框架。作为高职院校软件专业毕业的学生,应该能够胜任软件企业对Java程序员的不同岗位需求。
![](https://img.fx361.cc/images/2025/0114/2hbqD72aDQR6krREjYnee6.webp)
1,2明确Java主线课程教学任务的侧重划分
我院以Java为主线的核心课程有3门:Java程序设计、JSP程序设计和JavaEE编程技术。其中,Java程序设计主要培养Java客户端程序员,同时解决基础问题。JSP程序设计和JavaEE编程技术主要培养Java服务器端程序员。事实上,JSP属于lavaEE的Web组件,是JavaEE分层架构中表现层最重要的技术,同时,在使用Java技术建立Web应用时,JSP因其便于掌握和可实现快速开发的优点成为很多小型Web应用采用的技术。我们将JSP作为一门课程放在JavaEE之前,不仅符合JSP的自身体系,还可以减轻JavaEE的教学压力,平滑JavaEE的学习曲线。
1,3确立JavaEE课程的教学目标和教学内容
在理清了各课程的关系之后,我们确立了JavaEE编程技术的教学目标:学习完本课程后,学生能够独立搭建JavaEE开发环境,能够熟练进行三大组件(servlet、JSP、EJB)的编程,能够运用Singleton、DAO、MVC设计模式,能够运用Struts框架,能够实现数据访问层,能够按照不同的方案设计和实现JavaEE多层结构的企业级应用。
教学内容包括:JavaEE开发环境、在JavaEE中使用XML、Servlet组件的编程、JavaBean组件在JSP中的应用、数据库访问技术、MVC架构、Struts框架、EJB 3.0组件编程。
教学内容的重点在于JavaEE三大组件技术(JsP组件主要在“JSP程序设计”中介绍)、数据访问层、设计模式、MVC架构和Struts框架;难点在于如何运用这些技术和框架实现一个既符合JavaEE分层结构,又遵循MVC架构的企业级应用系统;能力目标在于培养具有一定理论知识,又具有较强的实际编程能力和开发能力的应用型人才。
2 基于工作过程进行课程开发与设计
2,1课程开发的思路:教学内容、工作任务、软件项目三位一体
“教学内容、工作任务、软件项目三位一体”的含义是:巧妙地将理论知识点融入到完成不同的工作任务中;工作任务不是孤立的存在,而是软件项目中的一个个局部功能;学习进度与项目进度相一致,学习内容与项目内容相一致,用完整的项目贯穿课程始终。具体而言,主要具备以下3个特色:
![](https://img.fx361.cc/images/2025/0114/Fc5Z2ZzAsVPfTeixcidqif.webp)
特色1:软件项目贯穿。选择一个综合性的项目贯穿整个课程,项目根据学习情境分成一系列局部功能,在不同的学习情境中,学生将学会实现某个(些)局部功能,当完成所有学习情境,整个项目就可以完成。
特色2:理论教学采取任务驱动教学模式。整个课程划分为不同的学习情境,每个学习情境都有若干个典型工作任务,理论教学采取任务驱动的教学模式,将相关理论知识点融入到完成不同的任务中,并布置相近似的任务在课后实验中指导学生动手完成。
特色3:实践教学采取项目导向教学法。实践教学分为两个层次,第一个层次是在理论课后的作业和实验中阅读和模仿课堂上老师给出的代码,完成近似的任务。第二个层次是项目的开发,课程安排了三次大的课程设计,随着课程内容的推进,将同一个项目分别用不同的技术和框架实现三遍。第一层次的任务是为项目作准备,是项目中的一个个局部功能,这样学生可以实现从任务到项目的平滑过渡。
改革后的课程体系完全颠覆了传统的教学模式,符合高职教学以实践为主的理念,更加有利于培养高素质的技术、技能型人才。
2,2学习情境的设计
在上述课程改革思路的指导下,我们设计开发了“学习情境、能力目标总表”,如表1所示。
3 按照高职教育理念构建教学实施模式
3,1理论教学:任务驱动
改革后的理论教学以任务引领,按照“提出任务;完成任务的思想、方法、操作:边学边做完成任务;总结规律和技巧”4个步骤实施教学。
教师在讲授某个(些)理论知识点之前,首先提出一个具体的任务要求,让学生明白需要完成一个什么样的工作任务。例如:在课程早期讲授Servlet请求和Servlet响应时,如果从理论到理论,不仅难以理解而且枯燥乏味。那么我们不直接从理论入手,而是首先推出一个任务“创建登录系统”,要求包含一个登录页面和一个LoginServlet。其中:登录页面接收用户填写的用户名和口令,点击提交按钮之后,LoginServlet将用户名和口令以HTML的方式返回给客户端(因为不想涉及到数据库);接着,将要完成的任务演示出来,使学生看得见、摸得着,以此激起他们强烈的兴趣。教师可乘机将“Http请求和响应的格式,如何发送请求,如何提交表单数据,如何处理请求,如何生成响应”等教学内容巧妙地融入到这个任务当中,讲解实现程序的代码,演示完成任务的步骤。
为了让学生真正掌握课程内容并且能够自己动手,教师必须提出新的要求。做法是:布置一个近似的但又有所不同的任务,比如,在登录的基础上添加注册,这样,学生必须阅读和消化代码,才能够模仿和创新,通过完成任务达到掌握所学知识的目的。在此过程中,教师要及时收集学生在完成任务过程中出现的典型问题和共性问题,结合理论知识点,在课堂上进行有针对性地讲解,给出解决问题的办法。
最后,要求学生总结规律和技巧,将完成任务过程中遇到的问题及解决办法写成实验报告,督促学生及时总结实战经验,实现知识的融合和再学习。
在“任务驱动”教学法中,“任务”的设计是关键。一方面,教师必须精心设计出一个个实际任务,将教学内容巧妙地隐含到这个任务当中。另一方面,为了配合项目导向教学法,任务的设计不能脱离项目而独立存在,而要为完成项目服务。任务实际上是项目这个大要求下的一个个小局部的功能,当学生完成了一定数量的任务之后,那么切入项目的时机就成熟了。
3,2实践教学:项目贯穿+项目改写
项目导向教学法,就是教师讲解项目的要求和涉及的知识点,学生在教师的引导下,上机实现项目。学生边学习边做项目,学习内容与项目内容相一致。请注意,项目导向教学法强调学习进度与项目进度相一致,用项目贯穿整个课程,而不是到了课程的最后才开始做项目。
为了实现项目导向教学法,就要考虑课程内容、课程进度与所要实现项目的相关性。事实上,在绝大多数课程中,很难找到一个完整的能够贯穿课程始终的项目。为了解决这一难题,可以在课程中及时地引入若干个小项目,让每个小项目近可能涵盖前一阶段课程所涉及的知识点。这样一来,整个课程就由若干个小的项目贯穿,既增加了课堂教学的灵活性,又降低了项目实施的难度。
幸运的是,JavaEE项目有自己的特点,Java EE项目可以选择不同方案来实现,如不同的分层结构,在一层中可以采取不同的技术,还可以选择不同的方法实现MVC设计模式。每一种方案都有自己的特点以及学习曲线。这些因素带来的影响在项目进入开发阶段后非常显著,学生在学习中需要适应这些选择。而正是由于JavaEE项目这一特点,使得采用一个项目贯穿整个课程成为可能。
本课程选择了“在线商店”作为贯穿始终的项目,该项目采取不同的方案被实现了三次。由于课时的限制,只要求实现“在线商店”前台的登录子系统和在线订货子系统。登录子系统包括注册和登录:订货子系统部分包括浏览商品目录、查看商品详情、商品搜索、购物车、商品定购。在表1中“载体”一栏显示了项目在各个学习情境的切入情况。
本课程的实践教学还有另一个新颖之处,那就是:教师不是直接布置学生做一个项目,而是给定一个原始项目,要求学生按照指定的要求进行改造。例如,在表1中的情境6,交给学生一个采用JSP+JavaBean模式实现的登录子系统,这是一个典型的JSP应用,只有两层结构,要求学生采用基于Servlet实现MVC模式进行改造,并用DAO设计模式实现数据访问层,数据访问采用连接池技术。在情境7,给定一个采用MVC模式实现的在线订货子系统,要求学生以此为基础运用Struts框架进行改造,实现基本项目的全部功能,鼓励实现扩展功能。在最后的情境中,用EJB改造现有的购物车功能。原始项目和改造后项目的比较参见表2。
通过对现有系统的改造,学生的知识和认识水平不断提高,阅读程序的能力得到训练,这也能帮助学生体会到各种技术和框架的应用特点。学生给出了很好的评价:“这是一个比较新颖的实验方式。以往的实训是自己或者以小组的方式开发一个小型项目,但这次是给了项目要求以另外一种方式改造该项目,这给了我们一种全新的思维方式。以前开发总有很强的依赖性,就是没开始做的时候总想着到网上去淘一个类似的系统,稍加修饰,便可以上交。改造项目就缩小了搜索范围,所以我必须先要完全读懂原项目的代码,然后再深层次理解Struts的特点,最后才能动手”。
4 结语
JavaEE编程技术的学习曲线较为陡峭,因为JavaEE技术体系庞大,分支众多,理论性和实践性都很强。如何让高职学生在较短时间内迅速从新手成长为高手,是摆在我们面前的一个课题。实践表明,文中所设计的教学内容和教学模式符合高职的教育理念,遵循高职学生的认知规律,取得了良好的教学效