基于工程能力培养的职业本科软件工程专业实践教学改革探究

作者: 查英华 鞠慧光

基于工程能力培养的职业本科软件工程专业实践教学改革探究0

摘要:针对职业本科学生工程能力培养存在的问题,基于OBE理念开展学生工程能力培养的教学改革。深入剖析工程能力的内涵,构建突出工程能力培养的实践教学管理方案,以实际项目的开发流程为引导,逐步推行需求分解、任务分配、任务跟踪以及成果交付等全过程的跟踪管理与评价,系统培养学生的软件项目认知、工程质量意识、工程实践与创新能力。以学生的项目成果为导向进行量化评价,提升了学生从被动接收转变为主动探究的积极性,切实提高实践教学效果和质量。

关键词:职业本科;工程能力;实践教学;OBE理念;教学设计

中图分类号:G642 文献标识码:A

文章编号:1009-3044(2024)17-0137-04 开放科学(资源服务)标识码(OSID) :

0 引言

随着数字经济已成为国民经济转型升级、高质量发展的动力引擎,企业对软件技术人才的需求与日俱增,也对软件技术人才解决复杂工程问题的实践能力提出了更高要求[1]。实践教学作为工程实践能力培养的重要途径,面临着深刻变革的迫切需要。

学界围绕职业本科的实践教学改革开展了积极探索,朱涛等[2]基于能力分解设计实训项目教学框架,建立实训教学和能力养成的联系,促进学生综合能力的培养;黄美根等[3]将CDIO工程培养教学法应用于实践教学,用以提升学生的工程能力培养质效;闫群等[4]通过搭建基于Moodle的实验教学平台,强化实验过程的管理与评价,以项目驱动引导学生分析和解决问题,提升学生掌握知识应用的能力;李英玲等[5]在软件工程实践教学中搭建智能软件实践管理平台,解决实践过程难以监管、作业质量难以保证等问题。以上研究涉及实践教学设计、教学方法以及教学评价等方面,但实践教学的全周期管理的研究相对较少。本文以职业本科软件工程专业为例,剖析职业教育工程能力的内涵,构建实践教学的管理方案,实现工程能力培养的过程跟踪、任务协同以及质量监管的全周期管理,探讨实践教学过程管理的改革策略,提升实践教学效果和质量。

1 职业本科学生工程能力的内涵解析

职业本科的培养目标是培养具备可持续竞争力、适应技术快速发展的高层次技术技能人才,通俗含义也就是培养工程师。由于职业本科教育目前还处于发展初期,对工程能力的内涵还未达成共识,参照工程教育认证的12条毕业要求,职业本科应聚焦学生的专业能力、协作能力、社会能力和自主能力的培养[6],这与职业本科培养适应高质量发展的高层次技术技能人才的目标相一致[7]。

职业本科的工程能力培养与应用本科、高职专科的区别实质上就是三者培养目标定位的不同。应用本科以培养知识、能力、素质全面协调发展、具备扎实专业理论以及解决复杂问题能力的专业技术和管理人才为目标,注重理论与技术相结合[8]。职业本科教育主要培养掌握一定专业理论知识,具有较强工程实践和复杂技能操作能力,注重技术的综合性、系统性和先进性[9]。高职专科教育的人才培养以具体岗位的技能为主的高素质技术技能人才为目标,以技能训练为主,强调岗位现场操作的熟练度[10]。

可以看出,这三种不同类型、层次的教育在专业知识、工程实践以及能力要求上都有侧重点,只有厘清职业教育的培养定位,明确工程实践能力的内涵,才能在实践教学过程中突出工程能力的培养。

2 实践教学过程中存在的问题

软件产业作为新一代信息技术的灵魂,是国民经济高质量发展的关键支撑,数字化创新发展不仅给软件产业带来了巨大的发展机遇,也使得软件的生产方式向智能化、服务化、专业化转型,传统的软件系统架构已难以支撑数字化的快速迭代,这些新变革、新趋势导致现有的软件工程专业的课程体系与行业的人才需求相错位,实践教学与行业发展脱节,学生的培养质量无法满足软件产业发展的新需求。实践教学中存在的问题具体表现在:

第一,实践教学缺乏企业参与。实践教学是培养学生工程思维、实践能力等综合素质最为关键的教学环节,应紧跟行业的发展趋势,与企业深度融合,但目前大多数的实践教学都缺乏企业的深度参与,使得实践教学项目与实际需求脱节,采用的技术与行业主流技术存在差距,使得实践教学无法帮助学生了解实际项目的复杂性,导致学生实践能力不足,复杂问题无从下手,进入实习岗位则无法胜任岗位的工作要求。

第二,学生只关注编程,轻视项目设计与文档编写。职业本科的软件工程专业注重编程技能的训练,学生在实训过程中更关心能否把一个系统或功能开发出来,往往忽略项目的需求、数据库等方面的设计过程,也不重视技术文档的编写,导致开发的系统偏离原有的设计,技术文档也不符合软件工程规范。

第三,实践过程难以监管,过程考核难以实施。传统的实践教学基本都是大班教学,一个任课教师指导一个班级,由于实践过程是密集的过程输出,教师不仅要及时跟踪每个小组的项目进度,还要完成过程考核,从时间上基本难以保证过程考核落到实处。现有主流的MOOC等在线平台能很好地组织理论课程的教学,但是针对具有明显行业特征的软件工程实践课程,则无法完成软件项目的文档提交、代码版本控制以及项目过程管理等。

第四,实践工作量难以量化,质量无法保证。软件工程专业实践教学的载体一般是完成一个具体的软件项目,实训成果是具有完整功能的软件和实践报告,小组成员完成的工作量往往仅凭学生的表述和展示,无法定量获取工作量数据,代码和文档的质量也只能通过教师的检查和指导得以保证,很难杜绝个别学生浑水摸鱼的现象。

第五,缺乏项目协同机制,团队协作困难。实践教学一般由5~8个学生组成团队进行项目开发,一般采用自由组队的方式,由于每个学生进入团队的目的不同,以致有些小组的成员的能力不均衡,有的甚至仅靠一、两个能力强的学生完成项目任务,其他学生做一些写报告、文字排版、画图等边缘性任务,根本无法进行团队协作;而目前这种“散养”式的教学模式使得这种现象屡见不鲜。

为更好地培养学生的项目工程能力以适应软件行业的技术变革,软件工程专业实践教学须与时俱进,面向新一轮的科技和产业变革,根据职业本科教育高质量发展的要求进行改革、创新和升级。

3 职业本科实践教学的方案设计

为解决传统实践教学存在的不足,根据职业本科的人才培养目标定位和产业升级对软件人才的需求,以职业本科软件工程专业的实践教学为例,参照国际工程教育认证的“以学生为中心、成果产出为导向以及持续改进”OBE工程教育理念,实现软件项目实践教学的全周期过程管理。

3.1 实践教学目标

为了设计一个切实可行的管理方案,首先应确定本方案的教学目标,第一,企业深度参与。邀请软件企业工程师参与方案设计与项目实施,企业项目合理裁剪后用于实践教学,培养学生对项目复杂度以及技术路线的整体认识。第二,全员协作开发。每个成员都承担软件开发过程的一个角色,按照角色职责完成任务,角色之间只有密切配合才能完成整个系统和技术文档的交付,培养团队协作和语言交流能力。第三,提高项目实践能力。采用企业项目组的工作方式,对各小组的工作组织、方法及成果进行管理,按照企业的开发流程进行完整的项目开发实践,提交各个阶段的技术文档,培养适配岗位的实践能力。第四, 教师监管小组进度,工作量的量化管理。使用项目管理工具及时掌握每个小组的开发进度,了解每个成员的贡献,培养学生的工作态度、团队责任等职业素养。

3.2 实践教学管理方案

整个实践教学的管理方案包括项目组的构成、角色工作细则、协同开发工具以及绩效考核规则四部分。

针对软件项目开发的特点,一个3~6人的小型项目组由1名项目组长、多名开发组员和1名测试组员构成,结合项目组成员的专业基础、工作能力以及个人意愿,讨论后确定成员的角色分工和工作职责,如表1所示。

明确每个角色的工作职责只能让学生了解承担角色的任务大纲,还需制定具体的工作细则和考核点,让学生与教师对过程管理达成共识,不仅让学生体验企业的软件开发模式,保证产出结果的质量,也便于教师的过程监管和考核。参考企业的项目管理制定的每种角色的任务清单及工作细则见表2。

3.3 实践教学绩效考核方案

实践教学一般安排2~3周集中完成,无法像理论教学一样通过课堂、作业、测验、考试等对学生进行综合考核,传统的形式一般通过教师在教学过程中对学生的课堂表现、工作量估算以及验收答辩给出总体评价,无法给出过程考核;学生则认为完成最终的项目交付就能得到高分,过程如何考核既不清楚也不关心,这种状况显然不利于培养学生的工程观和职业素养。因此,设计健全、有效的绩效考核方案,可以起到提高项目组成员的工作积极性的作用,提升项目组的凝聚力以及工作效率,参照企业的绩效考核设计的小组的绩效考核方案见表3。

此绩效考核管理方案清晰地描述了项目组、项目组成员所承担工作的考核点,项目组成员的考核得分由项目组与角色个人两部分共同组成,使得每个项目组成员都必须关注整个团队的工作,有助于培养学生的集体观念和团队意识。考核方案不仅仅针对项目功能的实现,还对整个项目的所有交付件给出了明确的考核点,使得学生不能忽视各个项目阶段的技术文档的编写。

但是,仅有考核方案是不够的,方案中的分数如何获取则还需给出明确的评价指标方案,才能使得整个实训的过程评价得以落地,给出每个阶段的评价内容和评价方法,使得学生明确了解如何做好自己的工作,对团队作出贡献(表4) 。教师只需根据项目各阶段的评价内容记录分数即可,当项目结束时就能轻松获得令学生心悦诚服的分数,不仅减轻了教师拖车考核的工作量,也让教师对每个项目组的工作进度和项目质量了如指掌。

3.4 实践教学的工作协同

软件项目的开发过程的工作协同必不可少,包括源代码开发协同和日常工作协同。源代码开发协同通常使用Git仓库进行管理,推荐使用Github或Gitee 等公开的代码仓库进行代码的版本控制,方便统计每个开发人员的代码贡献。日常的工作协同指项目组在实训期间,高效在团队内部进行信息同步的工具。比如:项目组长需要掌握每个功能的开发进展,bug是否处理完毕;测试人员需要了解开发进度,逐步开展测试工作,也需要知道每个缺陷的处理情况,及时进行回归;开发人员需要通过协同工具了解自己的开发任务,并汇报开发进展等。这些工作的协同如果通过项目组成员之间口头沟通会导致信息误差大、数据无法留痕导致无法追溯等问题,通过项目管理工具可以轻松实现日常工作的管理,常用的工具软件有禅道、钉钉、Teambition、Teams等。

本文提出的软件工程实践教学实施方案,可用于职业本科程序设计、软件开发类的实践课程教学,通过多学期的实践教学可以强化学生对项目开发流程的熟悉度,循序渐进地训练学生从简单项目到复杂项目的工程实践能力,培养软件项目规范、项目管理等职业素养,对于尽快适应企业复杂项目的开展大有裨益。

4 职业本科实践教学的改革实践与成效

4.1 教学实践

基于上文提出的实践教学方案,在软件工程专业大一下学期的“前端框架技术综合实训”课程完成了软件开发全过程的实践,此实训课程共有3周,教学过程包括三个阶段:第一阶段,课前准备阶段。教师课前学情分析,与企业工程师共同准备不同层次的项目,讲解实训过程管理的开发流程、考核方案等,解答学生疑惑,与学生达成共识。学生根据岗位构成和岗位责任组队,团队成员充分讨论后选出组长,进行岗位分工,确定项目选题。第二阶段,开发阶段。绩效考核方案的设计不仅使每个小组的开发任务明确,也让小组的每个成员非常清楚开发各阶段的交付物,使得整个开发过程紧张且有效。各小组进行项目需求分解,设立开发计划和里程碑,根据角色进行任务分配;组长每天跟踪任务的完成情况,代码、详细设计文档等产出物是否提交到代码库、协作平台文档模块;开发组员根据开发计划完成开发任务,提交代码和技术文档;测试组员根据项目需求编写测试计划和测试用例,对已完成功能进行测试,当检测到缺陷时进行记录,并提交到协作平台进行缺陷管理和跟踪,直到缺陷被修复后关闭;教师在小组设置的里程碑阶段根据考核要点进行阶段性成果的检查。第三阶段,测评和答辩分享阶段。实训接近尾声时,小组间进行项目互评,发现缺陷并进行修复;每个小组分享项目成果,进行项目复盘,听取建议;教师对实训全过程的数据进行收集,利用数据分析技术对每个学生的任务完成情况、完成质量、个人贡献等进行评估,给出小组和每个学生的综合评价。

上一篇 点击页面呼出菜单 下一篇