林永意,卜言彬
(南京传媒学院,江苏 南京 211172)
随着现代信息技术的迅猛发展,计算机类专业学生的就业门槛也在日益提高。然而,传统的理论课程难以满足学生日益增长的技术需求。因此,基于就业导向的实践性课程在计算机类专业的教育中越发重要[1]。
“Java软件项目开发实训”是一门实践性课程,通过实际项目的开发,培养学生的软件开发能力和团队合作能力。然而,传统的实训课程在教学内容和方法上存在一些问题,如课程学时少内容多、学生个体差异性较大等[2]。因此,本文探讨基于就业导向的“Java软件项目开发实训”课程的改革与实践,以提高学生的就业竞争力和实践能力。
“Java软件项目开发实训”课程历时5天,共计40课时,但该课程涵盖的知识点非常丰富,包括Java基础知识、面向对象编程、Java核心类库、数据库、Web开发、前端开发、框架与工具、软件开发流程、项目管理与团队合作等方面的知识。仅靠传统的教学方式,学生很难在有限的时间内学会以上知识点。老师不得不采取“满堂灌”的授课方式,以完成教学任务[3]。在这种被动学习的教学方式下,学生缺乏主动性和参与度,学习兴趣降低,创造力和自主学习的能力受到限制,对知识的理解也不尽如人意。授课教师疲于上课,疏于对学生的指导和交流[3]。
传统的“Java软件项目开发实训”课程注重理论知识的讲解和传授,而实践环节相对较少。这意味着学生在实训课上进行听课、笔记和讨论的时间相对较长,而进行实际操作和实践训练的时间相对较少[4]。理论知识的传授可以为学生提供所需的基础知识,但实践操作的匮乏将会导致学生对所学知识的理解和应用不足[5]。实践是巩固和应用理论知识的重要手段,只有实践才能让学生真正理解和掌握所学内容。
“Java软件项目开发实训”课程开设在大三上学期期末,主动性强的学生已经学习了本实训所需的知识,并且具有良好的编程基础,他们需要的是理论知识的拓展和实践能力的提升[2]。但很多学生只接触过本实训所需知识的一部分,还需要进一步加强理论知识学习,并且实践能力也有待提高[6]。还有少部分学生专业基础比较薄弱,需要系统地学习本课程所需的理论知识,并在此基础上多实践多练习。
实训课程的选题坚持以学生为中心,关注学生的需求和兴趣,让他们能够参与其中并获得实际的学习收益。选题与学生的专业方向和未来职业发展相关,优质的课题可以提升他们的专业能力和职业竞争力。选题同时遵循循序渐进的原则,根据学生的学习进度和能力水平进行分层次、分阶段的设计。初级水平的学生可以完成课题中60%~80%的基础部分,他们通过本次实训夯实专业基础。中级水平的学生完成课题100%的内容,他们解决问题的能力得以提高。高级水平的学生在完成课题的基础上,对课题进行拓展优化,以挑战他们的能力极限。
本次实训课程选择“基于SpringBoot的用户管理系统”作为课题。首先,该课题实用性强,用户管理系统是很多实际项目的必备功能之一,几乎所有的Web应用程序都需要进行用户注册、登录和权限管理。一个实际的用户管理系统的开发,可以让学生更好地理解和掌握Java开发的基本技术和流程。其次,该课题技术广泛,SpringBoot是目前Java开发中常用的框架。应用SpringBoot可以快速搭建一个稳定高效的Web应用程序。再次,该项目是一个综合性项目,涉及多个功能模块的设计和开发,包括用户注册、登录、信息管理、权限管理等。最后,该项目具有强烈的就业导向,用户管理系统是企业常见的需求之一,掌握这个项目的开发技术可以提高学生的就业竞争力。很多企业在招聘时,会优先考虑有实际项目经验的候选人,通过完成该系统的开发,学生可以在简历中添加自己的项目经验,增加就业机会。
传统的实训课程一般基于模块划分角色,老师依据系统功能模块,将完整的项目划分成若干子模块,每位学生完成其中一部分。然而本次实训课程基于常见的软件开发流程和团队合作模式进行角色划分,常见的角色包括:系统分析师、系统设计师、软件开发工程师、软件测试工程师、运维工程师、项目经理。
系统分析师和系统设计师对从业人员的专业能力、工作经验、沟通能力、团队合作能力及自身综合素质要求比较高,薪资水平也相对较高,属于进阶岗位。软件开发工程师的市场需求较大,该岗位大致可分为前端开发工程师、后端开发工程师、移动端开发工程师等[1]。软件开发工程师需要很强的学习和实践能力、较好的问题理解和解决能力、团队合作能力等。软件测试工程师主要负责设计测试用例、执行测试、记录测试结果、分析和报告缺陷、与开发团队合作解决问题等。从业人员需要扎实的软件测试理论和技术,熟悉各种测试方法和工具,准确分析和评估软件质量,并提出修改意见。运维工程师主要负责维护,对专业知识要求相对较低,比较适合专业知识不扎实但又想从事本行业工作的学生,其薪资待遇也相对较低。项目经理负责整个项目的管理,包括项目的设计、资源的分配、进度的控制、风险的管理等,从业者需要具备良好的组织协调能力和扎实的专业知识。
教师对每种岗位的招聘条件、薪资待遇、工作内容、职业发展等情况进行介绍,学生基于自身专业能力、兴趣爱好和对未来就业岗位的了解,选择此次实训的角色。本次实训设置6名学生为一组,其中项目经理1人、开发和测试工程师各2人、文档/运维工程师1人。本次实训可以让学生提前了解社会需求,审视自身差距,从而明确学习目标,提高学习兴趣和动力。
教师应转变现有的教学模式,把课堂的主角交给学生,提高学生学习的主动性。本次实训主要采用项目/案例驱动法和小组讨论法混合的教学方式,旨在结合实际项目和案例,让学生在小组中进行深入的讨论与合作。老师在课堂上讲解实训项目所需的基础知识和实训案例的分析,并分解任务,再根据学生反馈的问题进行答疑、指导和点评。学生通过参与项目和解决实际案例,将理论知识有机地应用于实际情境,从而提高了解决问题和创新思维的能力。同时,通过小组讨论与合作,学生能够提高沟通技能、团队协作能力以及批判性思维水平。
本次实训选取“基于SpringBoot的用户管理系统”作为教学案例,项目的后端技术栈采用SpringBoot和MyBatis框架,前端技术栈使用Thymleaf、Jquery、Boostrap等Web技术,数据库使用MySQL关系数据库。SpringBoot和MyBaits分别为创建Spring应用程序和框架以及操作数据库的持久框架,两者组合使用,可方便开发人员进行数据库操作。Thymleaf、Jquery、Boostrap分别为生成动态HTML页面的服务器端模板引擎、简化JavaSeript编程的库、构建响应式和移动端优先的Web页面前端框架,这些技术的组合使用使得开发人员可以更快速、高效地构建现代化的Web应用程序。MySQL是一种开源的关系型数据库管理系统,其具有高性能、可扩展性和安全性等特点,广泛应用于Web应用程序和企业级应用程序的数据库解决方案。
在本次实训中,项目经理负责整个项目和团队的管理以及实训结束后各种资料的收集汇总;2名开发人员负责系统代码的撰写,具体分工由项目经理决定,实训结束后向项目经理提交项目源代码;2名测试工程师负责软件系统测试,具体分工听从项目经理的安排,实训结束后向项目经理提交测试脚本;文档/运维工程师负责撰写设计文档、程序发布脚本和程序运行脚本,实训完成后将文档和脚本提交给项目经理。
实训结束不安排考试,而是以组为单位以结课作业的形式进行考核。结课作业包括Java软件项目开发实训汇报PPT、Word版实训报告、项目源代码、测试脚本、部署脚本。每位学生都需要进行结课汇报,用PPT的形式介绍自己在本小组内担任的角色和承担的工作,每组成员在项目经理的带领下,依次上台展示。
在本次实训中,学生们都能合作完成整个项目,部分小组超额完成任务指标,对系统进行了优化。实训激发了学生们对未来就业的思考,通过实际项目的锻炼,学生们能更真实地看到职业领域的机遇和挑战,明确了自己的职业方向和发展目标。
通过本次Java软件项目开发实训,学生们不仅对未来职业有了初步了解,还掌握了一定的实际操作技能,并且提升了团队合作、沟通协调和解决问题的能力。学生们可以依据市场需求,结合自身兴趣爱好和能力选择适合自己的就业方向。
由于时间有限,本次实训也存在一些不足,如没有教授敏捷开发等现代管理方法、没有使用Git的版本控制工具等。未来的实训考虑进入敏捷开发的理念,包括迭代开发、用户故事、持续集成等,以更好地模拟真实的项目管理场景。同时,未来的实训考虑在项目中引入Git,要求学生使用Git进行代码管理,从而培养他们在团队中的协作能力。
希望本文的研究能够为计算机类专业的教育提供一种有效的实践教学模式,提升学生的综合能力和就业能力。同时,也希望能够为其他相关领域的课程改革和实践教学提供一些借鉴和启示。通过对基于就业导向的“Java软件项目开发实训”课程改革与实践的研究,我们可以更好地理解如何将理论与实践相结合,培养学生的实际工作能力和解决问题的能力。这对于计算机类专业的学生而言,是一次宝贵的学习和成长机遇。