面向系统能力培养的软件工程课程改革与探索

2023-04-06 21:26祖弦范庆春程敏程舒慧
电脑知识与技术 2023年5期
关键词:软件工程应用型人才实践能力

祖弦 范庆春 程敏 程舒慧

关键词: 软件工程;教学改革;系统能力培养;实践能力;应用型人才

0 引言

随着大数据时代的到来,新工科及“双一流”高校建设对计算机类人才培养提出了更深层次的需求,要求学生从具备“基本的程序开发设计能力”上升为“强调系统能力的综合能力”[1]。系统能力重点包括系统分析、设计、验证三方面能力,相辅相成,以达到综合解决系统问题的目的[2]。计算机系统能力旨在通过系统化方法,提高对计算机系统层面的整体认知[3],从而培养学生从计算机系统的角度来设计开发并解决问题的能力。截至2021年的统计結果显示,教育部计算机类专业教学指导委员会(以下简称“教指委”) 已分批在80所高校内推广系统能力培养试点和研究课题。

目前,结合各类软硬件上下游产业链的现状及需求,各类高校在建设应用型本科的同时,以学生能力培养为导向,积极响应系统能力培养相关课程建设。以合肥师范学院为例,自2017年学校成功申报教指委开设的第二批系统能力培养试点高等院校以来,以计算机学院牵头成立的“系统能力培养”教学团队在近几年的计算机本科教学及教改工作中,通过以提高学生工程应用能力为导向的课程群建设,积极探索软件类课程体系新模式,旨在使计算机类毕业生不仅能具备系统的专业知识素养,还能具备企业需求的工程实践及创新能力,从而满足为安徽省级区域经济发展贡献大量软件人才的需求。

1 目前课程教学问题分析

本文重点对软件工程课程教学现状进行阐述及分析,并提出面向系统能力培养的软件工程课程改革思路,从而提升教学效果,提高学生计算机系统能力。

1.1 学科层面,知识体系缺乏系统性

软件工程课程作为普通高校软件工程专业的专业核心课,正常于大三上学期开设,学生已学完其先修课程如数据库理论与技术、数据结构、C语言等偏软件类课程,而任务管理类等偏后端硬件类课程均未开设或者未在本专业开设,但完整的计算机系统包括了计算机硬件和软件,缺一不可。学生在对软件系统设计与开发时,无法理解一些与系统有关的任务管理模块,如事件驱动型任务、时钟驱动型任务,这类任务之间优先级如何设定等与软件系统实际开发密切相关的问题,此时学生会出现不同程度的知识脱节,影响课程教学效果及学生未来的实际开发能力。因此,亟待加强知识点连贯的课程群建设,提高学生对计算机系统整体的理解程度,使学生具备从计算机系统层面去思考如何设计开发一个完整软件系统的能力。

1.2 教学方法层面,模式陈旧,方法单一

随着慕课、智慧课堂等多模态教学形式的兴起,传统的以教师为主体的教学模式弊端日益突出。目前多数软件工程课堂仍以教师课件教学为主,学生被动地接受大量理论知识点。在课堂教学中,忽略培养学生动手能力,教师重在讲解理论方法,缺乏软件系统项目的课内课程设计融合。另外,统一的上机实践环节,均设置一些验证性实验,如熟悉软件分析与设计工具Visio的使用、面向对象建模工具Rational Rose 的使用、软件配置管理工具VSS的使用、软件项目管理工具Project的使用等,缺乏开放性、综合性实验,无法提高学生的综合能力。软件工程本质上是采用工程的概念原理及技术方法来提高计算机软件的生产力,课程开设初衷在于提高学生解决软件实际问题的工程能力。而上述这种重理论轻实践的教学模式,很难调动学生上课积极性,从而失去学习兴趣。

1.3 教学资源层面,储备不足,影响教学效果。

对于教学资源,本文从课程资源和师资队伍两个方面进行详细剖析。首先,教学资源缺乏,目前学生教材选择的是2013年修订的第四版张海藩主编的《软件工程》,软件更新速度较快,教材内容的老旧已跟不上软件工程快速发展的步伐,另外课程组缺乏有关软件项目电子资源的储备,教学中的项目实例无法更直观地展现给学生,使课堂效果达不到教学目的。其次,课程组师资队伍方面,部分教师缺乏企业实习实训的经验,由于各类知识的储备不足,无法在课堂上贯彻落实理论联系实践,因此提高课程组教师教学素养迫在眉睫。

1.4 考核层面,缺乏个性化考评标准

课程考核上,评价标准缺乏个性化设置,导致评价目标不明确。目前软件工程仍采用统一的理论课试卷来评估学生对知识点的掌握情况,但缺乏对工程应用能力的考核,一些动手能力强的学生也可能卷面成绩不高,缺乏对学生个体的个性化考量标准。没有个性化且针对性的评估,就无法做到因材施教及个性化培养。

2 面向系统能力培养的软件工程课程改革新思路

面向系统能力培养的软件工程课程改革,坚持以学生为主体,厘清新工科背景下的计算机类学科培养目标,以应用型成果为导向,探索教学改革新模式。培养学生的计算机系统能力,本质上要引导学生从多维度去理解计算机系统,从而培养学生在计算机系统各层级组件上均具备设计及工程实现能力[4]。

2.1 软硬件课程深度融合,参与特色课程群建设

对软件相关专业学生而言,计算机系统能力的培养需要为学生构建更全面、更系统、更连贯的课程体系,从而使学生在未来实际软件项目开发中,能从多角度去思考。具体思路如下:首先,软件工程课程组应重新组织知识架构,尝试与其他上下游课程建立完整的计算机系统课程群。本文尝试对课程群设置进行重组改进,如图1所示。对于课程群的重组设定应严格遵循软件工程中功能模块知识分解的脉络,设计开发一个完整的软件系统应该分解为四个部分:人机交互部分、问题域部分、任务管理部分和后台数据管理部分,在图1中系统每一部分均对应了相关联课程,相关程度较大的课程尝试设置在同一学期开设,如软件工程和操作系统,学生对操作系统中任务管理概念的理解,直接决定了在设计软件动态模型时,对于并发任务优先级的分配策略。另外,类似计算机组成原理这些计算机功能部件类硬件课程的先导学习,可以加深学生在开发人机交互系统时,能更好地契合软硬件系统。当课程结束后,为了巩固所学知识,在后续学期的课程设置中,继续设置了软件工程运维及管理活动的后续课程,从而有利于增加软件的生命周期。通过上述与知识关联较密切的课程建立协同教学,使学生对知识点的前因后果能达到更深层次的理解,最终达到能提升和促进学生对计算机系统不同角度认知的目的。

其次,借助综合性教学平台,通过数据分析促进教学改革。如引入浙江大学的拼题A平台、超星学习通等平台辅助教学,与教学同步,还能实时通过大数据实现学情分析,并能根据不同班级的教学情况对教学进度做出动态调整。最后,邀请高新企业人才及专家技术团队,共同参与软件工程课程标准和培养方案的制定工作,明确软件工程应用型人才培养目标,将工程能力培养融入课程教学的各个阶段。

2.2 结合项目实践,变更课堂主体

软件工程课程属于实践性综合性较强的一门课,更应强调通过实验实训促进知识内化。首先,教师在教学过程中需以学生为中心,开展知识传授活动。教师在课堂教学中则扮演引导和参与的角色。其次,以项目驱动教学进度,具体来说,软件的生命周期大体上由软件定义、软件开发、运行维护这三个阶段构成,因此,课程组尝试以软件生命周期为主线,配合每个阶段对应的项目开发,推进教学进度。最后,上述过程具体实施由学生为主体进行,每位学生选择一个信息管理系统,模拟项目管理人员、项目开发人员、项目测试人员等角色,积极参与每个章节对应的系统开发进程,边学边实践,以教促学,以学促教,逐步构成以学生为主体的良性教学过程。比如在需求分析这一章节,当教师对本章节知识点讲解结束后,组织每一个项目小组的学生,以课堂PPT演讲的方式,将各组的可行性分析(经济、技术、法律或社会认同感)和需求分析(功能性需求+非功能性需求)逐一在课堂上向教师及其他同学详细阐述,不仅锻炼了个人表现能力,还能增加其他同学对各类型项目知识的认知和学习。相较于传统的填鸭式教学,经实践教学中的学生反馈,学生对于这种新型教学方式更感兴趣,更能提高自身主动学习及主动解决问题的能力。

2.3 丰富教学资源,加强双能型师资队伍建设

教学资源方面,尝试搭建产学研一体化教研平台,将教学研究、工程实践、学生实验平台贯通,融合各类专业课程实践实验项目,预先设定课程群,丰富各类电子教学资源的同时,也能汇总课程群各科目的教学成果,为后续教学提供项目资源支撑。例如多数教师在承担校级或者省级质量工程项目的教研活动中,会积累一些新的教学想法或改进措施,及时将这些新思想总结至一体化教研平台,能高效促进与其他教师之间的交流沟通和学习。

师资队伍建设方面,教师水平和教师知识素养的提高,对提升课程教学效果起到了不可或缺的作用。为积极响应普通高校推进各类专业认证和新工科建设需求,课程组教师以提高工程实践能力为目的,开展各类师资培训活动和企业轮岗任务。一方面教师利用寒暑假积极参与各类软件公司的设计研发工作,如讲授面向对象程序设计类课程的教师,可以利用假期积极去软件公司的开发技术岗进行实习研发工作,讲授软件测试类课程的教师,可以利用业余时间去公司进行软件测试类工作,而讲授软件项目管理类课程的教师可以多与软件管理人员之间进行沟通学习;另一方面,还可以考虑聘请企业高工来院系兼职授课,共同参与教学过程。总之,提高教师队伍中双能型教师配比,可更好地服务和促进学校办学向应用深度转变。

2.4 培养应用型人才,建立个性化评估标准

个性化评估标准与2.2小节介绍的项目实践紧密联系,形成教学及考核闭环。具体来说,对课程的期末考核不再局限于闭卷笔试,替之以项目各环节成果打分为主,对不同个体进行个性化考核。依照软件工程中对软件生命周期的定义,可将每位学生的项目阶段与生命周期对应,每一个阶段需提供相应的里程碑成果,并以文档进行记录,作为学生对当前阶段知识点掌握程度的考量依据,具体评分细则如图2所示。教师可根据每位学生的实际进度、答辩情况和完成程度进行个性化打分。在软件工程实际教学中,由于教学脉络紧跟软件工程生命周期的几个阶段,因此在每一阶段课程讲授结束后,均会设置相应的阶段性验收考核,如需求分析阶段,会对学生的课堂演讲PPT和课后所交的需求规格说明书进行一一打分,在详细设计阶段,会对学生的课堂表现和提交的详细设计说明书进行一一打分,最终当所有阶段均结束后,将汇总每一阶段的打分情况作为最终的综合分数。阶段性多维度的考核打分,相较于传统的纸质试卷,更能体现和验收每位学生的学习能力和学习效果。

3 结束语

本文详细阐述了一种面向系统能力培养的软件工程课程改革模式,从学科建设、教学方法、教学资源及教学考核四个角度剖析了现有课程教学中存在的問题,并以计算机系统能力培养为目标,分别从以上四个方面提出改革创新,旨在提高软件工程教学质量,也为软件工程专业的新工科人才培养提供了一种新思路。

猜你喜欢
软件工程应用型人才实践能力
关于如何创新和完善计算机软件工程管理的探讨
高校单片机课程设计教学方法探讨
浅析应用型人才培养下的物理教学改革
应用型人才培养背景下模块化教学研究与实践
基于应用型创新人才培养的模块式实践教学体系构建
刍议大学生实践创新训练计划项目