0 引 言
软件工程是社会需求量非常大的一级学科专业,社会对软件工程应用型人才的实践能力要求很高。随着人工智能的快速发展,一方面,在企业级应用软件系统中引入智能化组件,已是相当普遍;另一方面,大模型人工智能的出现,加速了软件工程相关工作的智能化,低端的软件开发、测试和运维工作将被人工智能逐步替代。新技术的出现对软件工程领域从业者的专业素养和实践能力提出了更高的要求,给软件工程应用型人才的培养提出了新的挑战。为了适应当前社会需求,围绕学生实践能力培养,多所高校进行了各种有意义的实践教学改革。
一些改革主要针对软件工程系统能力培养和解决复杂问题的能力,依托学科竞赛、创新创业教育、校企合作、项目课题等对学生进行实践能力的全面培养,如构建以学生为中心面向产出的实践教学和课程体系等[1-5];还有一些改革为适应新工科发展需求,关注学生创新实践能力培养,构建相应的实践教学体系,并建立多元化的实践教学评价机制[6-7]。此外,人工智能技术相关课程实验也被尝试融入到软件工程专业的课程教学中[8],以便软件工程应用型人才能够更好地将人工智能技术应用到软件的设计、开发、测试、运维等工作中。
1 当前面临的问题
1)实践能力培养缺少统一规划和合理的课程支撑。
实践能力培养依赖于所开设的实践课程,但课程中实践内容的设置,在多数情况下依赖课程负责人对课程的理解,很少考虑与其他相关课程的衔接,也缺少从软件工程专业应用型人才培养的角度对实践内容的统一规划。
2)传统实践课程缺少现有人工智能工具和技术的融入。
近几年,受人工智能技术快速发展的影响,软件行业出现了不少高效的开发、测试和运维工具,以及新的应用场景。当前的实践课程内容更新较慢,还没有将人工智能工具和技术更好地融入实践教学过程。
3)培养方案外的实践能力训练没有全覆盖。
培养方案外的实践能力训练只是针对参与竞赛、项目团队或校外实训的部分学生,相关内容没有真正融入到课程教学,实践能力的提升并没有面向全体学生。
4)针对人才实践能力培养的评价和持续改进机制不完备。
对于软件工程专业课程,其实践内容通常设置为多次课内实验,在课程结束后对实验进行单独考核,其考核方式通常是教师根据学生提交的实验报告进行评分。这种评价方式比较单一,缺少专门针对实践相关专业技能的达成情况评价机制,也没有持续改进机制。此外,同一专业技能需要多门实践课程共同培养或提升,但目前课程对培养效果的评价是独立的、分散的,缺少对软件工程应用型人才实践能力培养情况的整体评价与持续改进方案。
2 人工智能背景下的软件工程实践能力培养体系的构建
人工智能背景下的软件工程实践能力培养体系是充分落实工程教育中的成果导向理念[9],根据社会需求确定实践能力要求,并将实践能力分解并落实到实践培养方案的课程体系中,同时将人工智能相关知识融入到实践课程中,以适应人工智能背景下软件工程应用型人才的培养。
2.1 实践能力分解方案
遵循“产出导向”理念,从用人单位对人才的需求出发,综合考虑当前社会需求、新技术发展对应用型人才培养的影响,以及专家意见、生源特点等多方面因素,进而确定软件工程应用型人才实践能力培养目标,即运用软件工程专业技能解决各行业领域的复杂软件工程问题,具备从事应用级软件系统研发、测试、运维、技术支持与市场营销和项目管理等工作的能力。
为保证实践能力目标的达成,结合工程教育先进理念,将该目标对应到 4 项毕业要求,分别是问题分析、设计与开发、研究、使用现代工具。每项毕业要求又分解成若干专业技能作为观测点,从而落实到相应的实践课程中,最终形成具体的的实践能力分解体系,为后续实践课程体系的构建、评价、持续改进提供明确的目标。应用型软件工程人才实践能力分解方案如图 1 所示。
每个专业技能观测点对应于一项具体的专业技能,主要是围绕应用级软件系统研发、测试、运维、管理等工作应该具备的基本技能,满足社会对软件工程应用型人才毕业时的基本技能需求。后续实践课程以这些专业技能观测点的达成为目标,从而设置实践内容和各项实践活动。
(1)“问题分析”毕业要求被分解为两项专业技能,分别是“软件分析与设计”“编程基础”。①“软件分析与设计”是从工程的角度进行应用级软件的需求分析、功能概要设计、详细设计等技能的培养,使学生能够借助于各种工具利用软件工程理论对应用领域的复杂软件工程问题进行分析与设计,形成规范文档;②“编程基础”主要是针对计算思维方面的培养,使学生能够从计算机的角度分析具体的现实问题,给出解决问题的基本思路。
(2)“设计与开发”毕业要求包含 3 项专业技能,分别是“数据管理”“应用软件开发”“软件测试”。①“数据管理”是针对现实世界中不同场景的数据管理需求,训练学生利用现有数据管理工具对数据进行抽象、处理和管理的技能;②“应用软件开发”培养学生利用合适编程语言、开发框架和各种开发工具从事应用级软件设计与开发的技能;③“软件测试”培养学生利用软件测试理论和现有测试工具进行单元测试与系统整体测试的技能。
(3)“研究”毕业要求仅包含“计算机系统基础”技能,主要培养学生掌握系统软件的基本设计和开发技能,以便更好地理解系统软件的基本原理,为在系统软件之上开发的应用级软件提供保障。
(4)“使用现代工具”毕业要求包含“应用开发进阶”“项目管理”“综合实践”。①“应用开发进阶”是在学生掌握应用开发基本技能的基础上,训练使用流行开发框架进行应用级软件设计与开发的技能,以及自行进行开发框架研发的能力;②“项目管理”培养学生从工程项目的角度,利用现有项目管理工具对整个应用软件开发过程进行规划与管理的能力;③“综合实践”主要培养学生综合运用所学专业知识和各种软件工具对应用级软件产品从设计、开发、测试、管理、运维角度进行全过程实践的能力。
2.2 实践课程体系
软件工程专业实践课程的设置要承担各项专业技能的培养任务(如图 1 所示),同时还要考虑两方面的影响。①开设的实践课程应该适应授课对象的实际情况。以山东建筑大学(以下简称我校)为例,作为一所省属院校的软件工程专业,学生理论基础一般,基于接受能力,设置的实践内容应围绕面向企业应用或互联网应用的软件系统的建模、设计、开发、测试、运维、管理等技能展开。②人工智能技术的迅速发展对软件工程领域影响较大,实践课程应该融入新的人工智能工具或智能化应用软件系统相关内容。综合前面的分析,需构建满足我校生源特点且适应人工智能技术发展的软件工程应用型人才实践课程体系(如图 2 所示)。
实践课程主要由专业基础课课内实验、专业课课内实验、面向单科的课程设计、面向多门课程的综合实践课程(综合课程设计和专业实训)和毕业设计组成。这些课程承担了各项专业技能的培养任务,图 2 中课程名右上标的数字对应相应的专业技能。AI 相关软件技能被融入到这些课程的实验大纲或实验指导书中,在学习专业技能的相关实验或实践项目中体现人工智能技术的应用与影响;在综合课程设计、专业实训、毕业设计等综合性实践课程发布的课题任务中,增设软件智能化模块设计与实现环节。特别是在培养方案中,开设“人工智能概论”“Python 案例实战”“智能建筑概论”“大数据分析”等人工智能相关课程,为人工智能技术的融入做基础。
比如,在“数据库原理及应用”课程中增设实验,使用大模型工具自动生成 SQL 和数据库设计;在“软件测试基础”课程中增加实验,利用大模型工具为应用软件系统自动生成测试用例和测试脚本;在“软件工程”课程中,增设相关实验,使用大模型工具生成软件设计文档;在“Web 应用综合课程设计”“专业实训”和“毕业设计”的任务书中引入智能化功能模块,比如使用人脸识别技术进行安全登录验证、使用机器学习算法进行预测类功能设计与开发等。
3 评价与持续改进机制

为了保证应用型软件工程人才实践能力培养的质量,基于实践能力分解方案和已构建的实践课程体系,构建整体的实践能力评价与持续改进机制(如图 3 所示)。该机制既包含每门实践课程本身的评价与持续改进方案,称为局部方案;又有针对专业技能和毕业要求的评价与持续改进方案,称为全局方案。同时,为了保证培养方案外的实践活动效果能够应用到全体学生,将实践成果整理到实践案例库,为实践课程内容的持续改进提供教学案例。
3.1 局部方案
在局部方案中,每门课程的实验教学大纲中都指明了所支撑的若干课程目标,而每个课程目标由该课程所承担的专业技能决定,且由若干实践活动来支持。在课程结束后,课程负责人会根据各项实践活动的考核结果对每项课程目标的达成情况进行定量分析。假设实践课程 C 有 n 个课程目标支持某一项专业技能 T,对于每个课程目标 Oi(1≤i≤n)对应的实践活动满分成绩为 Gi,实际得分为 gi,则在该课程中技能 T 的达成度计算见公式(1)。
定量分析是从客观成绩的角度来衡量技能的达成度,具有一定的局限性,如有的课程仅凭借实验报告来给定成绩,无法杜绝抄袭带来的虚假成绩,导致某些成绩的可靠性降低。为了平衡定量分析的局限性,借助于网上匿名问卷的方式开展针对相应课程课程目标达成情况的各种调查,从学生的角度对达成度进行主观评价。综合定量和定性分析结果,课程负责人对课程进行达成情况分析,尤其是在近 3 年达成情况比较的基础上,提出可衡量的持续改进意见,保证课程内容的持续更新和教学效果的持续改善。
3.2 全局方案
在全局方案中,每项专业技能的培养由若干实践课程支撑,但每门课程的支撑强度不同,为了便于计算专业技能的达成度,在确定专业技能对应的支撑课程时,同时组织相关课程负责人商讨每门课程对技能的支撑强度,最终确定各课程的强度系数。基于每门课程中量化的专业技能达成度和强度系数,可以对专业技能的获得情况进行定量评价。假设专业技能 T 有 m 门实践课程支撑,其在第i(1≤i≤m)门课程的达成度为 Di,支撑强度为 Si,则技能 T 的达成度计算见公式(2),其中。
同样的,除了定量分析外,来自学生角度的各类主观调查也在进行,比如“在校生中期调查”“应届毕业生调查”“综合项目实训问卷调查”等。这些调查可以通过问卷或线下座谈会的形式进行,目的是进一步了解学生的各项专业技能获得情况。①“在校生中期调查”主要是针对在校生开展关于个人实践能力水平的评价,从每门实践课程所支撑的专业技能达成目标角度进行调查,便于及时改进单门实践课程授课效果;②“综合项目实训调查”主要面向综合实践类课程开展的调查,如“综合类课程设计”“专业实训”“毕业设计”等,从学生个人的角度对自己的综合实践技能获得情况进行评价,用于后续综合实践课程的持续改进;③“应届毕业生调查”主要是从毕业要求达成的角度针对学生个人实践能力获得情况进行评价,用于进行实践能力培养效果的整体改进。
通过对定量与定性结果的综合分析,确定专业技能达成情况和遇到的问题,一方面为实践课程体系的及时调整提供有价值的信息,另一方面也为软件工程应用型人才的实践能力分解方案提供建议。进一步地,每项毕业要求可以分解成多项专业技能,这些技能必须都达成,才意味着毕业要求的达成,因此,从定量的角度考虑,毕业要求的达成度将取决于专业技能达成度的最小值。
3.3 基于实践案例库的持续改进
部分学生在课外参加各类竞赛、项目和校外实训的过程中形成了各种应用软件成果,这些是贴合社会需求和技术发展趋势的。为了保证全体学生能够体验这些软件成果,教师将这些软件成果整理成若干实践案例,形成实践案例库。案例库为实践能力培养的持续改进提供了有效的教学资源,其目的是为了让教师能够方便地将先进的和有创新性的案例资源融入到自己的实践课程中,保证实践内容的实效性,特别是融入人工智能背景下出现的各类智能应用软件案例。这对软件工程应用人才实践能力的培养尤为重要。
4 实施成效
从 2021 年开始逐步构建适应我校学生特点的应用型软件工程人才实践能力培养体系,并在日常实践教学中注重人工智能相关技术的融合。从 2018 级开始,“专业实训”课程引入“面向 AI 的 Python 应用实战”培训模块,2019 级与企业合作基于实际的 AI 应用案例进行该模块的培训。在 2022 届和 2023 届的毕业设计中,人工智能相关的课题 有22 个。随着 2021 级培养方案中人工智能相关知识的深度融入,预计这个数量会大幅增加。
针对 2023 届毕业生,按照前面提到的评价方法,计算了各项专业技能的达成度和相关 4 项毕业要求的达成度。考虑到毕业设计成绩可以很好地反映学生综合的实践能力水平,选取毕业设计成绩为 89 分的学生作为示例(展示专业技能和毕业要求达成评价效果),并用雷达图形式清晰展示各项指标的达成度。图 4(a)中反映了该学生计算机系统基础技能是偏弱的,应用开发技能较强;图 4(b)进一步反映了该学生研究能力欠缺,但使用现代工具的能力较强。
同时,在 2023 年的应届毕业生调查中也对这 4 项毕业要求的达成情况进行了主观调查。在问卷中针对每项毕业要求达成情况要求学生进行自我评价,选项包括:达不到、部分能达到、基本能达到和完全能达到,这些选项对应的赋分分别为 0、1、3、5。由于问卷是匿名进行,最终将所有问卷答案进行汇总整理后获得学生的平均达成度。图 5 展示了问卷得到的毕业要求达成度和 3 个学生样本的毕业要求达成度的对比情况,其中 3 个样本的毕业设计成绩分别为 89、81、67。从问卷结果看,还是有不少学生认为自己达不到或仅部分达到毕业要求,虽然从实践课程成绩的角度看达成度挺高,但和真实水平有出入。这也从侧面反映了我们的实践课程考核内容、考核方式和评价标准还存在问题:考核内容多验证性实验,无法考查学生能力;考核评价方式单一,仅从实验报告表面给成绩,无法反映学生真实水平等。这也是后续实践课程改革需要进一步解决的问题。
总之,这些不同来源的数据对于分析单门课程和整个培养体系的教学效果提供了很好的支撑,是后续进行持续改进的基础。
5 结 语
[1] 林广艳, 张莉, 谭火彬, 等. 面向软件工程系统能力培养的渐进式实践课程方案探索[J]. 计算机教育, 2022(9): 196-201.
[2] 荣辉桂, 边耐政, 蒋洪波, 等.“做中学, 学中创”软件工程实践创新能力培养[J]. 计算机教育, 2021(3): 149-152, 156.
[3] 李青山, 李瑞, 宋胜利. 人才需求导向的软件工程专业实践能力培养体系建设与实践[J]. 软件导刊, 2020(19): 7-10.
[4] 吴建斌, 彭浩. 新工科背景下的软件工程专业实践创新体系建设探索与思考[J]. 计算机教育, 2021(5): 84-86, 90.
[5] 周维, 许海霞, 王小宇. 基于校企深度合作模式的软件工程专业实践教学体系探索与实践[J]. 计算机教育, 2022(3): 175-180.
[6] 张强, 吴秀芹, 薛继伟, 等. 专业认证视域下的软件工程专业创新型实践教学体系探索[J]. 计算机教育, 2023(6): 87-91.
[7] 郭良敏, 陈传明, 俞庆英, 等. 面向新工科学生创新实践能力培养及评价探索: 以软件工程专业为例[J]. 大学教育, 2023(2): 136- 138.
[8] 李波, 覃俊, 李子茂, 等.“人工智能+新工科”视域下软件工程专业实验实践教学改革[J]. 计算机教育, 2021(7): 82-86.
[9] 李志义. 解析工程教育专业认证的成果导向理念[J]. 中国高等教育, 2014(17): 7-10.
基金项目:山东建筑大学教学改革一般项目([2023]12号);山东省本科教学改革研究项目(M2022101)。
引用格式:王向辉,刘毅,孙倩.人工智能背景下的应用型软件工程人才实践能力培养体系探索[J].计算机教育,2024(12):34-39,44.
文章头图由“智谱清言”绘制而成。
(完)
更多精彩:
