多维度Java EE课程教学改革探索
2023-12-01张永军李翔淮阴工学院计算机与软件工程学院
张永军 李翔 淮阴工学院计算机与软件工程学院
●引言
Java EE作为目前主流的系统开发技术,是较为流行的企业级开发框架。因此,为了提高学生的动手实践和实际开发能力,并为其毕业后适应企业的软件开发工作打下基础,很多高校开设了Java EE课程。但该课程知识点多,要求学生具有良好的编程实践能力,因此在实际的课程实践中,授课教师和学生都面临较大的挑战。
对于教师来说,在当前前后端分离开发模式为主流的背景下,既需要在课程中传授后端开发相关知识,同时还需要补充大量的前端开发相关知识,并教会学生将前后端进行整合,用有限的理论课时传授完这些知识实属不易。对于学生来说,这门课程通常需要较好地掌握Java编程和Java web开发相关的知识点,并且要具有较好的编程实践能力。而在实际课程实践过程中,部分学生对先修课程的知识掌握不够牢固,以至于对本课程学习的效果较差,且部分学生反馈课程内容多、授课节奏快,还有部分学生反馈课程内容、课后实验难度大,难以独立自主完成。
针对Java EE课程教学中存在的若干问题,笔者从多个角度采取了教学改革措施,提出了一种多维度教改创新实践方法。
●相关工作
针对Java EE课程教学中存在的问题,已有专家学者提出了一系列的教改措施。例如,马海峰等提出了以工程项目为驱动的教学方法[1],钱宇虹提出了“教学内容、工作任务、软件项目三位一体”教学实践方法。[2]杨月华针对课程组、实训环境、实训内容、课程实施过程、课程考核与评价等课程建设方面的问题,提出了基于校企双导师制的课程改革措施,通过搭建贴近企业的实训仿真环境,由校企导师合作指导和管理实训过程,来改善实训效果。[3]朱杰等人根据工程认证的思想,提出了一种基于OBE(Outcomes-based Education)模式的Java EE课程教学。[4]
但以上方法未考虑课程学时受限的情况,并且未考虑结合课程的特点对学生进行有效的过程管理。结合这些教改方法,笔者针对Java EE课程的特点,对课程内容进行了大量补充,结合课堂授课和学生课后自主学习,采用一种新的深入浅出的授课方式,并要求学生以团队的形式来完成一个功能完备的项目,以达到锻炼学生团队协作能力的目的。这些多维度的教改实践措施提高了Java EE课程教学的质量,能较好地克服课程教学中的困难。
●多维度教改措施
1.更新教学内容
Java EE课程的内容多以Spr i n g框架为基础,主要包含Spring MVC、数据库访问技术(通常包含JDBC、MyBatis、JPA等内容)、Spring IOC容器等知识点,这些授课内容主要包含了后端开发技术。但目前主流的开发模式是前后端分离,要求学生既要掌握后端开发技能,也要能熟练运用前端知识。而多数学生对前端的知识和框架不熟悉,导致他们在学完Java EE课程相关后端开发知识后不知道如何实践。为了解决这一问题,笔者在教学实践中引入了前端知识,并且录制了相关视频,要求学生课后自学。另外,很多学生对maven、postman等开发过程中常用的工具也不熟悉,因此笔者将常用开发工具的使用方法也作为教学内容引入课程。更新后的课程内容如右表所示。
2.采用深入浅出的授课方式
Java EE课程内容繁多,教师授课容易陷入简单传授学生进行API调用的陷阱。在实践授课过程中,笔者采用了一系列方法来保证授课的深入浅出,具体可以归纳为如下步骤:问题是什么→解决该问题的关键点→用自定义代码解决该问题→学习使用已有的框架解决该问题→深入解读关键源码。
以Spring IOC为例,在讲授该知识点时,先通过一个简单的示例引入软件开发中经常存在的组件耦合问题,然后说明解决组件耦合问题中的关键技术——组件的自动扫描、自动装配和生命周期管理,接着通过代码实现一个最简单的IOC容器来说明IOC容器的核心工作原理。通过上述教学,学生会对IOC容器的作用和原理有比较深刻的理解。在此基础上再传授Spring IOC容器知识,学生会很容易接受。为了让学生有更深一步的理解,笔者还增加了源码解读环节,让学生进一步加深对框架的理解,并借鉴学习良好的编程规范。这些措施可以让学生从软件架构层次掌握相关知识,培养他们更高层次的软件开发技能。
3.课后自主学习与课堂授课教学相结合
更新后的Java EE课程内容
从表中可见,单纯靠课堂授课是无法完成整个Java EE课程内容的教学的。因此,在实践过程中,教师应要求学生自主学习表中前端开发内容和开发工具使用内容,作为课堂授课教学的必要补充,自主学习内容在课程网站上通过录播视频提供。为了保证自主学习的效果,教师可采取如下措施监督学生:①要求学生必须通过电子笔记的方式来归纳总结自主学习的每个小节内容,授课教师对电子笔记进行评分,作为考核环节;②自主学习内容的相关实验要求学生撰写实验报告,在报告中需要记录关键步骤和实验结果的截屏;③每次实验随机抽取若干名学生进行答辩。通过这些措施的执行,能有效保证学生课后自主学习的质量。
4.推动团队合作
要求学生以2~3人为一组,独立完成一个相对完整的系统。团队实行组会制度,每周每组至少开一次组会讨论系统的实践情况,并需要提交每周的组会会议记录和录制视频,以防止部分学生在团队中偷懒,组会材料将作为平时成绩的重要组成部分。为了对团队工作进行有效管理,要求学生以Gitee高校版为平台,通过Git工具实现项目计划、项目管理、项目文档管理和代码协同。
5.加强过程管理,注重平时考核
Java EE课程内容繁多,教师要注重培养学生的动手实践能力,但采用传统的卷面考核方式无法合理评估学生对课程的掌握情况。为了能有效评估学生对课程的掌握情况,并进一步锻炼学生的动手编程能力和软件架构设计能力,在实践过程中笔者对考核方式进行了改革。具体的考核方法如下:
①学生以团队的形式完成一个项目,结合平时表现(占比30%)和项目的完成情况(占比70%)进行考核;
②学生团队将项目按照功能点进行切分,团队中的每个学生需独立完成若干个功能点,要求每个成员的工作量大致相当;每个功能点按照重要程度以及难易程度设定一个分值,再根据学生对该功能的完成情况对该生在该功能点上的表现进行评分;
③为了避免学生在学期末集中完成项目,保证项目的过程管理和完成质量,培养学生项目管理和规划能力,要求团队中的每个学生对功能点都要设定起止日期。如果学生未能按期完成功能点,需要根据逾期时间情况来对功能点评分进行折扣处理。该措施可以有效地对学生进行过程管理,并可较好地实现平时考核。
●教学效果
笔者采用上述措施对所在学校计算机科学与技术专业的学生进行了三轮教学实践,发现学生在编程实践、项目调试、软件框架设计、团队合作等方面的能力得到了明显的提高,学生学习的主动性和对软件设计的兴趣大增。部分学生在学习完课程内容后,不仅能独立完成课程中要求的任务,还能在原任务的基础上进行扩充和创新。