“JavaEE技术”课程教学改革与实践
2024-11-25刘云玉原晋鹏
摘要:为了更好地达到应用型本科人才培养的目标,分析了当前实践性比较强的课程的教学模式,设计满足基于工程教育认证的课程教学大纲、教学内容以及考核评价方式。提出了以软件工程开发模式为依托,以项目式、翻转课堂教学手段,以目标达成度为评价方式,逐步增强学生将理论知识转化为实际技能和实践能力。
关键词:教学改革;工程教育认证;OBE;课程实践
中图分类号:TP312.24;G642
随着数字经济的加速发展,产业数字化以及数字产业化对于软件人才的需求日益增加。JavaEE技术作为企业级主流的开发技术之一,依然具有广泛的应用前景和相等的技术含量。然而,很多学生在学习“JavaEE技术”时仍然面临着诸多困难,如缺乏实际项目经验、缺少足够的练习机会等,毕业之后无法适应企业的需求。因此为了更好地培养符合行业要求的毕业生,需要根据工程教育专业认证对课程进行教学改革。
工程教育专业认证最早起源于20世纪的美国,其核心就是要确认工科专业毕业生达到行业认可的既定质量标准要求,是一种以培养目标和毕业出口要求为导向的合格性评价[1]。作为工程教育本科专业认证的国际互认协议的《华盛顿协议》[2],由美国、英国、加拿大等6个国家的工程专业团体于1989年发起成立,旨在建立共同认可的工程教育认证体系标准。我国于2013年加入该协议,工程教育的目的是推进高校工程教育的改革,提升高校工程教育的质量,促进教育与企业的有效衔接,提升我国工程类技术类人才在国际上的竞争力[1]。
本文旨在探究如何通过工程教育专业认证的指南改进教学方法,以提高学生的实践动手能力,增强对“JavaEE技术”实践课的学习效果。
1教学现状和问题分析
“JavaEE技术”实践课程作为我校软件工程、计算机科学与技术等专业的就业方向课程,目前的教学主要存在着以下几方面的问题:
(1)技术复杂性:JavaEE技术涵盖了多项技术标准,学习难度较高,需要学习很多技术知识,例如,前端框架有html5、css3、javascript、typeScript、vue/anjular/react等技术;后端框架有springboot、mybatis、kafka等以及NOSQL数据库redis、mongodb等;涉及性能方面还需要学习nginx等负载均衡等软件,学习曲线陡峭。
(2)实践难度大:JavaEE技术要求较高的实践能力,缺乏实践机会,学习效果受影响。
(3)课堂教学讲课风格单一:教学方式陈旧,在信息化高速发展的今天已经难以激发学生学习兴趣。
(4)缺乏实际项目经验:教学内容无法指导如何参与并完成实际项目,难以将理论知识作为实际技能的指导。
(5)缺乏对学生的指导和帮助:教学过程中对学生的指导和帮助缺失,学生大部分时间难以独立解决问题,导致学习兴趣丧失。
(6)缺乏合适的评估方式:评价学生学习效果的方法不够完善,难以反映学生的学习成果和真实水平。
针对课堂教学讲课风格单一、缺乏项目经验,文献[2]—[4]引入了项目驱动教学解决缺乏实际项目经验,文献[5]设计基于学习产出和反向设计课程;文献[6]基于逆向教学设计,从教学目标、教学评价角度对软件工程课程教学流程进行改革,但依然缺乏系统的实践;文献[7]探索了将混合式教学与实践教学相结合的教学方法;文献[8]在构建了基于网络学习资源与翻转课堂相结合教学模式,但缺少课程目标达成评价。
2教学改革的主要内容
2.1修订教学大纲
教学大纲作为一门课程教学的指导性文件,包含了课程的简介、课程目标(课程目标、课程目标与专业毕业要求关系矩阵)、课程内容(课程内容与课程目标的关系矩阵)、课程教学内容、考核依据及考核方式、课程相关的资源等。教学大纲是课程内容讲授逻辑的骨架,是指导教师开展逻辑教学工作、评估学生掌握课程程度的一种反映,因此教学团队必须按照工程教育认证的标准进行讨论和制定。
2.2设计实践教学项目
由于该门课程是一门实践性要求比较高的课程,因此需要由有企业实践经验的教师或者聘请企业的工程师到校进行授课,教学过程中的教学内容要很好地体现OBE(OutcomesbasedEducation)理念,使学生的学习目标明确具体,学习效果科学评价。将传统的以教师教授为主转换为以学生为主,使学生更好地理解JavaEE的实际应用和开发流程。通过遵循软件工程的瀑布模型[9],每个阶段都有非常明确的目标任务、明确的交付产物以及里程碑。这些让整个过程更可控,而且能及早发现问题。瀑布模型的六个阶段对应软件开发岗位的六个角色工作分工:项目经理、产品经理、架构师、软件工程师、测试工程师、运维工程师,每个步骤都可以学生实际体验不同角色的任务分工,基于以上这些特点,特别适合给初学软件开发的学生讲解实际软件开发的步骤,具体实施步骤为:
(1)按照软件工程的实施步骤,首先以一个学生熟悉的难度适中的实际项目进行可行性以及需求分析,该部门教学过程通过翻转课堂等方式增加学生的参与度,首先抛出问题,让学生思考并分析,形成可行性报告以及需求说明书成果文档,最后由教师进行总结和评估,最后学生修改完善需求说明书,这种方式不仅让学生能够将所学的软件工程理论知识应用到实践过程中,而且增加了学生的实践动手能力。
(2)总体设计:在需求确定的基础上,为了让学生能够真正体会到系统的总体设计内容,首先由教师讲解为什么要进行系统总体设计以及设计的原则和内容,总体设计的内容主要包括以下部分。
分解子系统:进行子系统分解以达到降低系统分析过程中的复杂性;
子系统服务设计:分析和设计子系统提供的服务和应用场景;
对象模型设计:对需求分析中产生的对象模型进行确定,对系统中涉及的实体以及关系进行整理;
确定系统软硬件分布:例如,是使用C/S还是B/S模型以及他们的优缺点,哪些构件放在哪些硬件;
设计系统边界处理:比如系统的初始化、退出、异常处理等情况下系统的行为。
根据上述设计内容,由学生讨论并在班级上进行陈述,最后完成总体设计,这样可以让学生深度参与软件开发过程中设计的重要性。
(3)详细设计:详细设计是为每个子系统的每个功能模块选择合适的技术手段和处理方法。总体设计主要负责构建系统框架,而详细设计则要考虑各个类、函数里面的设计细节及方案。例如,每个功能模块的用户界面设计、数据库设计(涉及表、实图、存储过程、索引等)、程序处理逻辑设计、接口详细设计、安全性设计等内容。由于系统的功能比较多,这部分课程内容需要对班级学生进行分组,每组由4~5个人组成,对每个学生进行分工,通过课堂讲解、讨论、模拟等多种教学方法,使学生能够得到全面的学习体验,最后完成系统模块的涉及并形成文档,让学生明确详细涉及的目的以及详细涉及的内容。
详细设计内容包括详细设计涉及具体业务对象设计、功能具体逻辑设计、数据库设计和界面设计等,详细设计是系统编码实现的主要依据。
①类设计:针对每个功能模块确定类的组成、类的成员属性、成员方法以及类与类之间的协作关系。
②算法设计:通过UML的时序图、状态图、协作图、表格、文字等工具将业务流程的处理以数据结构和算法设计来完成。
③对数据结构进行物理设计,即确定数据库的物理结构。物理结构主要指数据库的存储记录格式、存储记录安排和存储的方法,这些内容都依赖于具体所使用的数据库系统。
(4)程序编码:将总体设计与详细设计的结果转换为计算机软件。此部分主要由学生为主自己完成,以组为单位,每个同学实现在详细部分设计的内容,教师在此环节的主要作用就是关注学生的学习需求和学习进度,帮助学生解决在编码过程中遇到的问题。
(5)测试:①测试环节,教师通过以下方式帮助学生了解和进行软件测试。②讲解测试的相关理论知识,包括测试的工具、方法和技巧。③讲解如何编写测试用例,以便他们在未来能独立进行测试。④通过项目中具体的测试案例让学生了解和掌握软件测试步骤和方法。⑤在测试过程中提供耐心的指导,解决学生测试过程中遇到的各类问题。⑥讨论分析测试结果,帮助学生掌握测试的可行性、有效性、可靠性。
(6)软件部署:教师首先通过课堂讲解,帮助学生理解软件部署的基本概念和原理;其次通过案例讲解帮助学生了解软件部署的步骤和细节;最后教师通过实际演练帮助学生熟悉软件部署的流程,增强实践能力。当学生在部署自己开发完成的软件过程中遇到困难,教师提供技术支持,帮助学生解决实际遇到的问题。
2.3网络课程资源建设
随着移动互联网技术的高速发展,从2013年到2017年,线上教育产品取得了爆炸性的发展。特别是2020年以来,线上教育已经成为高校日常教育中不可或缺的一部分。线上教育产品的优势是学生可以随时随地学习,即使在课堂上可能听不懂,课后也可以通过在线视频反复学习。由于实践课程涉及的课程多,技术难度大,在课堂的有限时间内,学生可能无法理解和掌握,因此在讲解关键内容时,必须将课堂内容录制处理后通过在线系统发布以方便学生课后复习。
2.4学习效果评估
2.4.1课程目标
根据人才培养方案,“JavaEE技术”实践课课程目标为:
(1)理解JavaEE平台各组件技术的使用原理和方法,并能够理解其局限性。
(2)能够运用相关法规及技术标准并合理地运用所学软件工程专业知识来分析、解决复杂工程实际中遇到的技术难题,具有软件工程技术设计开发能力。
(3)具有在团队中分工协作、交流沟通的能力、团队合作精神和组织管理能力。
2.4.2课程目标达成度结果及分析
从最近两年的课程考核目标达成度数据来看,显示课程目标1平均达成度为84%,课程目标2平均达成度为78%,课程目标3平均达成度为83%。
课程目标1主要考核学生理解工程领域常用现代工程工具、信息技术工具的使用原理和方法,并能够理解其局限性,数据显示大部分同学达到了考核要求,效果良好。课程目标2主要考核学生理解诚实公正、诚信守则的工程职业道德和规范,并能在软件工程实践中自觉遵守,数据显示大部分同学达到了考核要求。课程目标3主要考核学生能够在团队中独立完成个体及成员角色的工作,或与其他成员合作开展工作,数据显示大部分同学基本达到了考核要求。从本次考核来看,大部分同学在课程目标1和课程目标3达成度比较好,但是课程目标2还有待提高。
3结论
“JavaEE技术”实践课程教学改革是一个复杂的、艰难的过程,不仅涉及本门课程还涉及前导课程,需要相关教师、学生和学院共同努力,通过不断完善课程内容、灵活运用多种教学方法、提高课程评价水平等方式,使学生能够得到更好的学习体验,理解掌握JavaEE技术在实际应用的开发流程。在持续不断改进过程中,教学改革仍然面对许多可能和挑战。
教师素质问题:很多教师缺乏实际软件开发的项目经验,无法有效地灵活运用多种教学方法手段。
学生素质问题:由于该门课程是一门综合性的课程,技术难度大,如果其中有一门关键课程没学会就导致学生学习兴趣不高。又由于学生自身学习能力不强,无法得到有效的学习成果。
资源问题:课堂设备不够完善,实验室资源不够充足,无法得到足够的练习机会。
考核方式:在现有的考核评价方式上继续完善,以更加精准有效地评估学生的学习成果。
因此,本科教学改革是一项持续不断地改进和完善的过程,需要教师持续提高自身素质,努力增强教学手段、提升教学水平,建设在线课程资源;学校要不断完善和加大课堂及在线网络的教学设备和实验室设备资源的投入;同时,鼓励学生不断发挥自身潜能,提高学习兴趣和学习能力,为社会发展贡献自己的力量。
参考文献:
[1]胡德鑫,纪璇.中国工程教育专业认证制度四十年回眸:演变、特征与革新路径[J].国家教育行政学院学报,2022(12):7278+95.
[2]邓丹君,纪鹏,倪波,等.工程教育认证背景下JavaEE课程教学改革[J].软件导刊(教育技术),2019,18(08):5657+60.
[3]丁勇,朱长水,吴许俊.JavaEE课程教学改革探索[J].科技与创新,2022(11):1921.
[4]李永毅.程序设计类课程综合教学模式的构建与实践:以《JavaEE程序设计》课程为例[J].长治学院学报,2022,39(02):8891.
[5]于彬.基于OBE模式的《软件工程》课程教学改革[J].软件导刊(教育技术),2018,17(12):2022.
[6]邱赞.逆向教学设计法在软件工程课程中的创新与实践[J].教育观察,2019,8(27):8890.
[7]周扬.软件开发过程模型的应用与发展[J].电子制作,2014(19):5455.
基金项目:黔南民族师范学院2021年校级教育质量提升工程一流课程《JavaEE技术》(项目编号:2021xjg010);贵州省2022年金课项目《Java程序设计》(项目编号:2022SJJK26);黔南民族师范学院2022年政用产学研协同育人项目(UGS/UGE)《新工科背景下软件工程人才培养模式研究与实践》
作者简介:刘云玉(1986—),女,贵州平塘县人,硕士,副教授,研究方向:移动互联网开发;原晋鹏(1983—),男,山西阳城县人,硕士,讲师,研究方向:深度学习。