APP下载

软件工程课程实践与考核标准一致性研究

2024-01-02史泽宇

软件导刊 2023年12期
关键词:嵌入式软件方向软件

谭 鑫,史泽宇,吴 际

(北京航空航天大学 计算机学院,北京 100191)

0 引言

随着信息化和数字化的快速发展,软件技术已成为国家发展的重要支撑和竞争力的体现。因此,培养高素质、全面发展的软件工程人才,对我国信息化建设和数字化转型十分迫切与重要[1-3]。在此背景下,软件工程课程的重要性愈发凸显[4-8]。作为计算机科学领域中非常重要的一门课程,软件工程课程涵盖了软件开发的方方面面,包括需求分析、设计、编码、测试、维护等环节[9]。期望通过软件工程课程的学习,使学生掌握软件工程方法和全过程、规范的软件开发流程,熟悉常见的软件开发工具和技术,以提升团队协作能力,使其了解软件行业发展趋势和前沿技术,从而培养高素质的软件工程师,推动软件行业的发展和创新,为国家数字经济和信息化建设作出贡献[10]。

然而,软件工程教学往往面临非常大的挑战[11]。例如,软件技术更新换代速度非常快,而传统授课方式往往无法及时跟进,使学生所学内容和实际应用之间存在较大差距。此外,软件工程的知识点较多、涉及面广、难度大,需要教师花费大量时间和精力进行解释和讲解,而学生也需要更多时间自主学习和实践。因此,如何提升软件工程课程教学质量和效果,便成为当前软件工程教育领域亟需解决的问题。

为此,众多高校一直在不断探索和改革软件工程教学过程,采用更灵活、高效的教学方式和方法,为学生提供更实用和有价值的软件工程知识和技术,以培养更多优秀的软件工程师和人才。为了更好地响应计算机技术发展的新趋势,贴合不同学生兴趣,培养多元化、专业化软件工程人才,许多高校的软件工程课程设置了不同的方向[12]。例如,设置面向移动端开发、游戏开发、人工智能等方向的课程,让学生针对性地进行学习和实践,实现个性化和专业化培养。虽然,软件工程课程的多元化方向设置能更好满足社会对人才的需求,促进产业发展与创新,但也具有课程实践内容不一致、考核标准不一的问题,影响了学生选课的积极性。

为了解决这一问题,本文以北京航空航天大学计算机学院2022 年春季学期软件工程课程教学为研究对象,通过详细分析课程教学大纲、实践内容、考评标准,结合学生问卷数据分析不同课程方向学生的成绩分布差异、成绩指标差异。同时,根据美国航空航天局提出的任务负荷量表(NASA-TLX)[13],从6 个负荷因素对不同方向学生的任务负荷进行理论计算与分析。研究结果揭示了不同课程方向差异性的来源,给出了课程内容存在的问题与相关改进建议,证明了本文研究结果与研究方法有利于软件工程课程改革的科学探索和实施。

1 研究方法与相关背景

1.1 研究方法

为了分析软件工程课程实践与考核标准不一致的现象及其根本原因,本文对北京航空航天大学计算机学院软件工程课程不同方向的实践与评价标准进行深入分析。分析数据包括3 个方向的实际授课安排、学生的成绩数据、课程实践提交物(代码、文档等数据)、问卷调查数据(鼓励学生每周填写NASA-TLX 量表)等。基于这些数据,本文结合定量分析和定性分析方法,从不同角度对这一问题进行深入分析,以探究不同方向作业量、难度、考核标准的差异性以及存在的突出问题,还收集了学生的相关建议,为课程改革提供科学依据。

1.2 北京航空航天大学计算机学院软件工程课程基本介绍

北京航空航天大学计算机学院的软件工程课程是面向本科三年级学生开设的专业必修课,曾获北京市教学成果一等奖。课程采用“大课重课”模式,每年春季学期开课,学时为32 学时(为期16 周),包括课堂授课和课堂研讨,另外有约200 小时的课外在线项目实践。如表1 所示,课程分为高可靠高安全的嵌入式软件、快速迭代更新的互联网软件、大数据驱动的智能软件3 个方向同期分别授课。学生可任选一个方向进行学习,目的是学生通过学习该门课程,能通过团队协作的方式(5~7 人团队合作)开发高质量(使用技术性手段确保所开发软件的质量)、复杂(万行规模、领域实用)的软件系统。课程理论内容和实践项目同步开展,理论内容涉及软件工程基本概念、软件工程开发方法等内容,实践项目以团队项目实践为主线,实践后再进行深入学习和翻转课堂研讨。

课程团队包含9 位中青年教师,专业背景跨软件工程、大数据、人工智能等方向,专业技术互补性强。另外,借助计算机学院创立的本科生助教体系(Student Teaching Assistant AdvisoR,S.T.A.R.),由高年级本科生担任课程助教,深度参与学生课程实践全过程,以便及时把握学生学习动态,理解学生在学习过程中遇到的困难。

1.3 NASA-TLX任务负荷量表

由于软件工程课程实践提交物不仅包含源代码,还包含模型、文档等,难以直接通过定量方式评估3 个方向课程实践的工作量。即使仅考虑源代码,单纯统计代码提交行数也无法反映实际工作量。因为同一任务通常存在不同的解决方案,代码行数多也可能是因为实现方案不够简洁。为此,本文借鉴了一种由美国国家航空航天局(NASA)于20 世纪80 年代开发,广泛用于评估人类认知负荷的量表——NASA-TLX(NASA Task Load Index)任务负荷量表。该量表是一种主观评估工具,可用于评估任务执行时的认知负荷,包括脑力需求(Mental Demands)、体力需求(Physical Demands)、时间压力(Temporal Demands)、个人表现(Own Performance)、努力程度(Effort)和情绪状态(Frustration)等6 个因素。通过对这些因素进行评分,可计算出任务的整体认知负荷水平,从而提升任务执行效率和安全性。

Table 1 Software engineering course directions setting of Beihang University表 1 北京航空航天大学软件工程课程方向设置

目前,NASA-TLX 任务负荷量表广泛应用于航空、医疗、工业等各种任务和行业,近年来也逐渐应用于教育领域[14,15]。NASA-TLX 量表实验包含两步流程:第一步评估影响特定任务工作量的因素,在两两比较中进行权衡,每次选择一个认为更重要的因素,共15 组,某个因素被选次数越多即表示该因素与任务关联更大;第二步是对每个尺度进行打分,确定该因素在特定任务的影响量级,打分可在任务中间、单个任务后或整个任务完成后进行。如图1所示,每个尺度被划分成20 个相等区间,以0 为初始值100为最大值,每个小区间增量为5。在本文研究中,鼓励3 个方向的学生在每周结束时基于NASA-TLX 量表对本周实践内容进行评价。

Fig.1 NASA-TLX(taking mental demand as an example)图 1 NASA-TLX量表(以脑力需求为例)

2 实际授课安排

为了调研3 个方向课程实践和考核标准的差异性,本文对3 个方向的授课安排及实践内容进行调研。表2 展示了各方向的课程大纲,由此可见不同方向所设计的课程具有共同特点,主要体现在将理论知识与学生的课程实践相结合,以考核、培养学生的软件开发能力,例如需求分析、项目迭代、软件测试等。

然而,这些方向之间也存在一些不同之处。具体而言,在考核安排方面(表2 中加粗字体所示),嵌入式软件方向将总共进行5 次项目评审,分别为需求分析文档评审、设计文档评审及3 次迭代评审,但互联网软件和人工智能方向则进行3 次项目评审,分别为选题(需求)评审和两次迭代评审。此外,课程内容也存在一定的差异,例如互联网方向的课程内容额外涉及结对项目、风险管理,但人工智能方向则包括专家讲座和互测互评。

Table 2 Syllabus for three directions of software engineering表 2 软件工程3个方向的课程大纲

3 考核方法

3.1 考核内容与评价指标

3.1.1 嵌入式软件

在考核内容方面,嵌入式软件方向重点考查团队项目的完成情况,要求应用嵌入式相关知识,利用相关软件完成一个机器人的模拟实现(机器人取物)。具体考核参照5次评审情况(成绩由授课教师根据评审情况直接给出)及最终归档文件(包括代码、文档)。具体的学生成绩计算方式为:

由此可见,嵌入式软件方向的学生最终成绩评定方式将考虑个人和团队贡献,结合出勤扣分或其他减分项。具体地,成绩计算公式中各部分分数含义为:①团队总分指整个评估期间团队获得的总分数,该分数可根据团队项目中的表现评定;②个人占比表示个人在团队中的权重或贡献比例,每个团队成员的个人占比根据其在团队中的工作量、贡献程度或其他指标来确定;③集体占比表示团队整体的权重或贡献比例,该比例反映团队整体贡献程度,例如团队合作效果、团队成员间的协作等;④团队人数指参与评估的团队成员总人数,团队人数会影响团队的集体占比,因为随着团队人数增加,每个人的贡献可能相对较小;⑤贡献率表示个人在团队中的贡献程度或贡献比例,每个团队成员的贡献率根据其在团队中的表现、工作质量或其他指标来评估;⑥出勤扣分或其他减分项指根据个人的出勤情况或其他扣分规则所减去的分数,例如迟到、旷课、缺席或其他违反规定的行为。

3.1.2 互联网软件

互联网软件方向的考核内容较多,主要包括个人项目(独自实现某个较为简单的编程任务)、结对项目(两人组队完成一个稍复杂的编程任务)、团队项目(包含两轮迭代,除项目本身外还包括规格说明书、博客等文档的撰写)、平时作业。学生成绩计算方式为:

原始成绩=个人项目成绩+结对项目成绩+

其中,团队项目成绩根据两轮迭代,计算方式为:

由此可见,互联网软件方向的学生成绩计算方式涉及多个组成部分,综合在一起才形成原始成绩,这种计算方式综合考虑了学生在不同项目和阶段的表现、个人和团队的贡献,从而得出代表学生最终成绩的数值。

3.1.3 智能软件

智能软件方向要求学生以团队形式,应用人工智能算法实现评论文本情感分析、图像内容识别、个性化推荐等AI 应用元素,并开发出系统的前端与后端。此外,优秀作业额外要求有手机端(小程序或应用软件)。具体考核要点如表3所示。

成绩计算方式依据各小组文档、产品各得到的A、B、C档数目加权评分,以获得小组成绩,具体计算方式为:小组成绩=30 × A类文档个数+15 × B类文档个数+

其中:A 档为超出预期;B 档为完成得很好;C 档为完成但一般(基准档);D 档为完成但较差;E 档为很差或未完成。

Table 3 Assessment content of intelligent software direction表 3 智能软件方向考核内容

通过上述分析可知,3 个方向在考核内容方面均有各类文档说明书、团队项目(代码任务)、项目答辩等任务,不同之处在于互联网软件方向额外包括个人任务、博客任务和结对编程任务,智能软件方向则涉及互测内容和额外的手机端(小程序和app)任务。在作业量方面,互联网软件方向的平均作业量相较于嵌入式软件、智能软件方向稍多。

对于评价指标而言,互联网软件方向相较于其他两个方向增加了博客作业和结对编程作业,提升了任务难度和工作量。在成绩计算中,将个人表现与3 项任务相关联,要求个人单独提交博客作业或与一名队友一起完成结对编程才能获得相应分数。相比之下,互联网软件方向对队员个人的要求更高,任务量更大。

在团队合作开发方面,互联网软件方向将个人贡献作为加分项,将其与团队总分一起计算在总成绩中,与其他两个方向团队得分乘以个人贡献的计算方式有所不同。

3.2 成绩分布情况

由表4 可知,互联网软件方向的学生成绩普遍较高,平均分相较于智能软件方向和嵌入式软件方向高约7 分,但嵌入式软件方向和智能软件方向的学生成绩均值相近,中位数也相近。由图2 可见,3 个方向的学生成绩分布情况存在一定的差异,具体为互联网软件方向和嵌入式软件方向的高分成绩较集中,但智能软件方向的学生成绩接近正态分布。综合分析上述差异,可为改进3 个方向的课程 评价标准提供一定启示。

Fig.2 Distribution of grades in three directions图2 3个方向成绩分布情况

Table 4 Basic information of course grades in three direction表4 3个方向课程成绩基本信息

4 任务量评估

考虑到课程实践环节不仅要求学生提交代码,还涉及文档、视频、周报等多种内容,因此难以直接量化3 个方向之间工作量差异。为此,本文采用了NASA_TLX 量表,从6个负荷因素评估课程实践的工作量。具体为,向软件工程3 个方向的学生发放NASA_TLX 问卷,鼓励学生根据每周完成课程实践的真实感受填写问券,便于动态跟踪学生工作量的变化。根据上述方法,本文共收集到208 份问卷(嵌入式软件方向58 份,互联网软件方向65 份,智能软件方向85 份),涉及109 名学生,大致覆盖50%以上的选课群体,并对问卷结果进行统计分析。

由图3 可见,软件工程3 个方向的学生在脑力需求、体力需求、时间压力、个人表现、努力程度和情绪状态方面的评分总体分布情况不同。其中,互联网方向在脑力需求、体力需求、时间压力和努力程度方面的评分明显高于其他两个方向,说明学生主观感受互联网方向需要花费更多的脑力和体力才能完成课程实践任务,并且时间紧迫,这与前文分析结果一致。

Fig.3 Overall distribution of the six indicators of NASA-TLX图3 NASA-TLX六项指标的总体分布情况

值得注意的是,在个人表现方面(该指标分数越高代表越不满意)智能软件方向的评分较高,而在情绪状态方面嵌入式软件方向的评分较高,表明智能软件方向的学生在完成课程实践的过程中自我满意度较低,嵌入式软件方向的学生在完成课程实践时遇到挫折的概率更大。原因是智能软件方向涉及人工智能算法的实现,开发嵌入式软件需要学生掌握一定的嵌入式开发相关知识,对于本科三年级的学生而言具有一定的挑战性。

(四)在免疫、检疫、监督的同时录入信息 通过对县、乡、村人员层层培训,让他们熟悉、掌握了挂标及通过识读器信息录入的方法。从2007年起州、县、乡每年投入官方兽医787人,村协检人员1 230人参与挂标、基础信息录入和免疫、产地检疫、屠宰检疫信息录入工作,到目前,共录入养殖户的基础信息5.8万条,戴标579 483条、免疫2 060 858条、产地检疫9 467条、出县境检疫53 576条的信息录入,上传中央数据库。为信息查询提供了坚实的基础保障。

图4 显示了软件工程3 个方向学生在脑力需求、时间压力、个人表现、努力程度和情绪状态方面的评分的每周分布情况。结合3 个方向的课程大纲(见表2)可获得以下发现:

Fig.4 Dynamic distribution of the six indicators of NASA-TLX图4 NASA-TLX六项指标的动态分布情况

(1)脑力需求方面。智能软件方向第4 周(系统建模)需要较高的脑力,互联网软件方向第1 周(软工概述)、第4周(团队软件过程)、第10 周(用户体验,项目进度追踪)、第11 周(Alpha 阶段项目评审)需要相对较高的脑力;嵌入式软件方向第7 周(需求分析文档评审)需要相对较高的脑力。

(2)体力需求方面。互联网软件方向第9 周(项目经理,项目进度追踪)、第11 周(Alpha 阶段项目评审)、第12周(Alpha 阶段反思、Beta 阶段改进计划)需要较高的体力;智能软件方向整体体力需求较平滑,最高为第9 周(软件测试);嵌入式软件方向整体较为平滑,第8 周(软件设计与迭代开发)和第12周(集成测试)需要较大的体力。

(3)时间压力。互联网软件方向第11 周(Alpha 阶段项目评审)、第12 周(Alpha 阶段反思、Beta 阶段改进计划)和智能软件方向第9 周(软件测试)时间压力较大;嵌入式软件方向整体时间需求较低。

(4)个人表现。学生们对于互联网软件方向第3 周(结对编程)、嵌入式软件方向第16 周(课程总结答辩)、智能软件方向第4 周(系统建模)、第10 周(Alpha 版本发布汇报评审)和第16周(课程总结)的个人表现不太满意。

(5)努力程度。总体而言,3 个方向的学生们的努力程度差异不大。

(6)情绪状态。嵌入式方向第7 周(需求分析文档评审)、第12 周(集成测试)、第13 周(第二次迭代评审)、第16 周(课程总结答辩)的挫折程度较高,原因可能由于学生第一次进行嵌入式软件学习(如ROS 学习)比较困难所导致。

5 总结与建议

基于以上分析可知,软件工程课程3 个方向的要求(考核内容、任务形式、任务量、成绩评定方式)不一致是导致不同方向学生任务不均衡的主要因素之一。在课程改革中,为确保不同方向的特色得到保持和发展,在宏观上统一课程安排、任务形式、任务要求和工作量非常重要。如此,既能确保学生在学习过程中得到公平、均衡的任务分配,也能满足各方向的学习需求,给予学生一定的自由度,又让他们在选课和方向选择时根据自身兴趣和目标作出适合自己的选择,有助于减少不同方向学生任务的不均衡性。

统一课程安排、任务形式、任务要求和工作量可确保学生在学习过程中获得相似的学习机会和挑战,避免某些方向的学生承担过多或过少的任务。因此,确保各方向的特色得到保持,并在宏观上统一课程安排、任务形式、任务要求和工作量,是解决不同方向学生任务不均衡问题的有效途径之一。如此,可为学生提供公平、均衡的学习环境,促进学生全面发展。具体可以采取以下措施:

(1)统一课程安排。每个方向的课程安排应有固定的时间安排评审,以平衡各方向的评审次数和项目迭代次数,确保每个方向都有相同的机会展示他们的工作成果,鼓励不同方向课程交叉评审。

(2)统一任务形式。3 个方向的任务形式应该大致相同,包括团队任务(代码任务)、文档任务、答辩任务。如果有其他任务形式,应保证对每个方向的学生相同,以确保评估标准的一致性。

(3)统一任务要求。对于文档、博客等文字性任务,应保证每个方向的学生都有相同的要求和指导,以确保评估标准的一致性。此外,还应该鼓励各方向共建、共享学习资源。

(3)统一工作量。每个方向的课程实践任务量应大致相同,以确保学生有相同的工作量和学习负担。对于互联网方向的工作量较多的问题,可适当减少任务量使其与其他两个方向持平。

综上所述,通过以上措施可确保软件工程课程的3 个方向在考核内容、任务形式、任务量、成绩评定方式上的一致性,为学生提供更公平、公正的学习机会,从而提升课程教学质量和学生学习效果。此外,统一课程设计和考核标准也有助于促进不同方向学生之间的交流和合作,提升团队协作和沟通能力,培养全面的软件工程师素质。

6 结语

软件工程课程的重要性在当前信息化和数字化时代十分突出。然而,软件工程教育面临许多挑战,例如知识更新换代快、难度大等问题。为了更好地响应计算机技术发展的新趋势,贴合不同学生兴趣,培养多元化、专业化软件工程人才,许多高校的软件工程课程均设置了不同方向,从而实现个性化和专业化培养。

然而,软件工程课程的多元化方向设置也带来了一些教学上的问题,例如不同方向的课程实践内容和考核标准不一致性,影响了学生选课积极性。为此,本文以北京航空航天大学计算机学院软件工程课程教学为例,探讨不同课程方向的教学内容和考评标准存在的问题,并提出一些改进方案。上述研究结果和方法,将有助于软件工程课程改革的科学探索和实施,未来在全社会共同努力下,软件工程教育将更完善和高效,为我国数字化转型和发展提供更坚实的支撑。

猜你喜欢

嵌入式软件方向软件
2022年组稿方向
禅宗软件
2021年组稿方向
2021年组稿方向
软件对对碰
实时嵌入式软件的测试技术
全景相机遥控器嵌入式软件V1.0 相关操作分析
基于Eclipse的航天嵌入式软件集成开发环境设计与实现
航天嵌入式软件浮点运算误差分析与控制
谈软件的破解与保护