TECHNOLOGY AND INFORMATION
172  科学与信息化2023年6月上
不只是编码——JavaEE项目开发及应用课程
教学研究
*
秦嘉奇
桂林信息科技学院 广西 桂林 541000
摘 要 JavaEE是软件系统开发中应用性极强的泛用技术。考虑到该技术现有具体情况以及近年来的学生学情,以往的教学内容和教学方式已经不能很好地达到应用型课程的教学目的。针对目前JavaEE项目开发及应用课程出现的问题,从教学内容及其组织、教学方法及过程、教学评价三方面进行改进与探索,提出“强调工程化思维”的观点和“课程互通”观点,以期进一步深化应用型课程的内涵并落实到位。关键词 JavaEE;工程化思维;课程互通;教学改革
More Than Coding——JavaEE Project Development and Application Course Teaching Research Qin Jia-qi
Guilin Institute of Information Technology, Guilin 541000, Guangxi Zhuang Autonomous Region, China
Abstract  JavaEE is a general-purpose technology with strong application in software system development. Considering the existing specific situation of this technology and the learning situation of students in recent years, the previous teaching content and teaching methods can no longer well achieve the teaching purpose of application-oriented courses. In view of the problems arising from the current JavaEE project development and application courses, this paper improves and explores the teaching content and its organization, teaching methods and processes, and teaching evaluation, and puts forward the viewpoint of “emphasizing engineering thinking” and the perspective of “curriculum interoperability”, in order to further deepen the connotation of application-oriented courses and implement them in place.Key words  JavaEE; engineering thinking; interoperability of courses; teaching reform
1  课程现状
JavaEE 是主流的Web 应用开发框架和技术,具有较好的泛用性[1]。JavaEE 项目发开及应用课程主要
讲授基于JavaEE 技术的Web 应用开发方法,单从使用的技术上来看,涉及的技术包括JSP 、Servlet 、JavaBean 、JDBC 等基本技术,还包括在此之上的MVC 模式、对象-关系映射模型、SSM 等具体MVC 框架。课程要求学生能够使用Eclipse 、IDEA 等开发工具,利用JavaEE 中涉及的技术进行Web 应用开发。该课程不仅要求学生掌握Spring 、SpringMVC 、MyBatis 等主流框架的使用,还需要结合使用HTML 、CSS 、JavaScript 等Web 前端技术进行开发。正是由于课程中所涵盖的技术内容很多,目前大多数的教学都局限于技术点讲解,而忽略学生工程化思维和工程化思维编程能力的培养,让这类课程变成了编程语言类课程的“升级版”。但是该课程作为学生进入职场前的专业课,其重要地位可见一
斑,仅仅是让学生掌握技术的编码实现方式是远远不够的。
从教学方法和过程来看,尽管采用合一教学的教学方法,但是课程的组织形式已不足以满足目前该课程作为“应用型课程”的内涵。目前的教学大多将JavaEE 中的技术拆分为零散的知识点,然后教师将这些知识点采用demo 的形式逐一在课堂上进行演示讲解,随后布置一个基于该技术点的小任务供学生实践验证,完成该知识点的教授。整个课程实际上是以若干技术点作为线索逐步推进,缺少将“知识点”连成“知识面”的过程,学生难以将前后知识点联系起来成为一个整体,没有综合应用解决问题的能力,学生缺乏解决具体问题的工程化思维。
从教学内容来看,目前大多数院校的教学内容没有侧重,对JavaEE 中每一个技术点都视为同等重要,
对于一些已经不再常用的技术(如JSTL 、JSP 等)仍然花费较多篇幅讲解,脱离现有主流的开发技术和方式。
*[基金项目] 桂林信息科技学院2021年度校级应用型课程建设项目,项目名称:JavaEE 项目开发及应用,项目编号2021YYY12。
TECHNOLOGY AND INFORMATION
科学与信息化2023年6月上  173
2  课程改革核心理念2.1 培养工程化思维
应用型课程不应当是仅仅带着学生实践的课程,更应该是教会学生利用所学知识解决问题的课程。在授课过程不难发现,对于单个孤立的技术点学生很快就能够掌握,但是每次要提交大作品时,学生却往往犯难,其根本原因在于学生没有使用工程化思维解决问题。真正掌握工程化思维的学生,在面对较大问题时应当有“分析问题、设计解决方案、编码实现方案”这一明晰地解决问题的路线。而目前大多数的应用型课程仅仅是教会学生“编码实现”这一步骤,缺少分析问题、设计解决方案这一教授要素,具体体现就是学生不会利用工具分析问题,也无法将自己的解决方案表达出来。因此,培养学生工程化思维实际上应当是应用型课程的核心内容之一。
2.2 课程互通
从Java 到JavaEE 的过程来看,实际上是将一点一点的知识连成“线”,然后再由这些“线”织成一张“知识网”的过程。但是学生一方面要学习新的知识,一方面要回顾以往的知识,同时还要将新旧知识联系起来,这样学习难度很大。这就要求授课教师在讲授新知识的同时要给学生回顾旧知识,同时帮助学生将新旧知识联系起来。例如,讲解Servlet 时,可以告诉学生Servlet 实际上就是一个继承HttpServlet 的一个类,进而复习关于继承的内容,深入到Servlet 的核心方法——“doGet ”和“doPost ”。另外,不应当将JavaEE 课程视为一门单独的技术类课程,而应当视为培养学生综合应用能力的综合性开发课程。表1是大多数院校软件工程专业的毕业要求、培养目标以及支撑课程之间的对应关系。
表1 软件工程专业普遍的毕业要求、培养目标与支撑课程
毕业要求
培养目标
支撑课程结合软件工程专业知识,能够将知识应用于复杂工程问
题的理解
掌握主流开发平台的软件工程高级技术知识JavaEE 项目开发及应用
软件工程UML 统一建模语言
能有效分析需求,设计针对软件工程问题的解决方案能制定软件开发计划,并针对软件工程和技术问题设计
解决方案
软件工程UML 统一建模语言
能够对软件工程问题,结合项目需求和业界技术发展趋
势,选择与使用恰当的技术和工具
能够对软件工程问题,结合项目需求和业界技术发展趋势,选择与使用恰当的技术、开发工具,保障软件开发
过程顺利并保证软件质量
软件工程UML 统一建模语言JavaEE 项目开发及应用
具备书面表达、沟通能力;针对工程问题,能够以绘制图例、撰写文档等形式与相关人员进行沟通交流
具备书面表达、沟通能力:针对工程问题,能够以绘制图例、撰写文档等形式与相关人员进行沟通交流
软件工程UML 统一建模语言各类开发实训
多数院校开设JavaEE 课程的时间是在大三甚至大四学年,表1中的支撑课程作为学生学习JaveEE 技术的前置课程在几乎所有软件工程、计算机科学与技术专业均有开设。但高校中的课程是相对独立的,即软件工程、UML 统一建模语言等课程中几乎不涉及具体代码,而诸如JavaEE 这样的应用型课程中几乎不涉及软件设计等工程思维及描述。但是学生真正需要的是从软件设计到实现全流程的相关技能。显然,要想让学生用工程化思维开发Web 应用,并且在相关文档中有所体现,教师就必须帮助学生将技术实现与软件设计结合起来。具体地,就是将JavaEE 中的实例设计与软件工程、UML 统一建模语言中的相关描述工具结合起来。所谓“课程互通”,就是将以往缺失的课程之间的联系补全,在JavaEE 课程中用上软件工程和UML 中的思想和工具,以达到培养学生工程化思维的目的。
3  课程改革的具体措施3.1 课程教学内容改革
课程教学内容应当根据行业发展进行适当变更。JavaEE 技术发展更替非常快,前差不多十年前流行的是SSH 框架,几年前被SSM 框架取代,而现在SSM 又有被SpringBoot 取代的趋势。在Web 开发领域,我们不得不承认高校中的教授的具体技术与企业使用的技术之间存在“时差”,原因在于高校不可能保持如此之快的课程迭代速度。尽管技术迭代很快,但是很多基础原理不变,工程化思维也不变。因此
JavaEE 课程仍然可以使用SSM 框架作为具体技术框架,对具体教授内容做迭代性地微调。例如在新的教学大纲中,用VUE 和Ajax 替换掉EL 和JSTL 的相关内容,加入Json 和Web 接口相关的前后端分离开发。
web前端开发技术第三版pdfJavaEE 课程以往的教学内容从课程本身出发并没有问题,
TECHNOLOGY AND INFORMATION
174  科学与信息化2023年6月上
但难以支撑学生利用JavaEE 技术完成一个较大的项目开发。要完成一个完整的项目,不仅要熟悉JavaEE 中的各个技术点,还需要工程化思维来指导开发步骤。这其中涉及软件工程、UML 统一建模语言、软件设计与体系结构、MVC 框架的相关知识。通过“课程互通”的概念可以知道,在讲解JavaEE 项目案例的过程中,不仅需要讲解案例中涉及的相关技术,还需要用工程化的方式解析项目结构,穿插诸如活动图、数据流图、软件设计模式、系统类图、时序图等工程化的描述方法,将工程化的描述方法对应到软件系统的设计和编码过程中。因此,JavaEE 课程教学内容中应当有机加入软件工程和UML 的相关内容,将JavaEE 系统设计与编码实现之间的过程加入到课程中。3.2 教学方法以及过程
课程的主要目标是让学生动手完成完整的项目开发来解决现实中的问题,因此教学过程不能只是教师讲
授项目的实现。为了更好配合教学内容并实现教学目标,需要改变以技术点为主线的授课方式,变为以单个项目为模块、项目过程演绎的方式进行授课,将软件工程、UML 和JavaEE 技术在这该门课程的教学过程中联系起来。具体的,过程演绎的项目化教学过程中应当具备以下要素。
3.2.1 确定项目。JavaEE 项目开发及应用课程使用项目教学法需要对整体的教学过程进行规划设计,首先要根据学生的实际情况选择难度合适、编码量适中的项目。项目的全过程在项目化教学的基础上围绕学生工程化思维培养进行改进,需要从课程互通概念出发,给出一个互通案例的设计。
3.2.2 项目“双维度分解”。项目确定后需要将一个大项目分解为若干小项目,一方面提升项目推进的可操作性,另一方面可以降低项目推进难度,避免学生产生畏难情绪,这是项目的“横向分解”。另一方面还需要对项目进行“纵向分解”,也就是要将项目的完整过程按照软件工程方法进行组织分解。为达到培养学生工程化思维的目的,对于确定好的项目应当按照过程分解为需求分析、整体架构设计、模块分解与设计、模块实现六个子过程。其中需求分析、整体架构设计需要用到软件工程课程相关知识,模块分解与设计需要使用UML 统一建模语言课程相关知识,模块实现则是使用到JavaEE 相关技术。项目全过程的“纵向分解”能够启蒙学生的工程化思维,让学生有意识地将工程化思维应用到实践中,从而达到培养学生工程化思维的目的。
3.2.3 教师在项目实施过程中给出明确指向。在以往的教学过程中,教师每完成一个技术点实例的讲解后会安排一个类
似的任务要求学生完成,学生完成任务后仅仅是懂得了该技术点的使用方法,学生难以将技术点应用到实际问题中。教师在项目实施过程中应该给予学生明确的目标,要求学生按照软件开发过程从需求分析出发,再到模块设计,最终才使用JavaEE 技术进行编码实现,而不是像以往那样直接上手编码。3.3 教学评价
传统的笔试考核方式在应用型课程中早已不再适用,现行的机试方式可以检测学生对JavaEE 课程技术点的掌握情况,但无法考查学生工程化思维和工程化手段的掌握情况。结合应用型课程的特点和培养目标,采用过程化考核与期末考核并重的考核方式。即期末考试采用机试方式进行,占总评成绩的50%;平时成绩占总评成绩的50%,其中80%的平时成绩由平时的过程化考核完成。过程化考核参考敏捷开发[2]的相关评估方法,采用类似于“站会”的方式进行项目成果汇报,不仅要求对项目成果进行展示,还要以工程化视角阐述项目开发的整个过程,教师根据综合情况进行定性评价和定量评分[3]。过程化考核进行3到6次以便促使学生认识到工程化思维的重要性以及在这一过程中逐步检测学生工程化思维的掌握和应用情况。
4  结束语
现在应用型课程教学往往忽略了所谓“应用型课程”的本质含义,多数教学将应用型课程简单地理解为“实践性强”的课程,但实际上应用型课程应该有更深的含义。“应用型课程”应当是以培养学生应用能力为主
的课程,它一方面要求学生掌握课程教授的相关技术并能够动手实现,还要求学生能够应用所学知识用工程化思维解决现实问题。目前多数的应用型课程只做到了第一个方面——即教授学生相关技术并进行实践,而忽略了第二方面,这就导致学生缺乏对所学知识和技能的应用能力。本文对应用型课程“JavaEE 项目开发及应用”现有存在的问题进行讨论,并为加强和深化“应用型课程”实用性和内在含义提出了一套可行的解决方案。
参考文献
[1] 郭晓燕,李昱,张东娜.面向工程教育认证的Javaweb 课程教学改革[J].大学教育,2020(10):14-16.
[2] 许孟杰,徐昶.敏捷开发在高职软件技术课程教学中的应用探究[J].计算机教育,2022(8):138-141.
[3] 万烂军,罗海霞.项目驱动教学法在JavaEE 课程中的应用[J].福建电脑,2015,31(9):157-158.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。