APP下载

面向工程思维能力培养的“软件工程”课程改革

2023-07-11王荣存

科技风 2023年17期
关键词:软件工程创新意识

摘 要:“软件工程”课程旨在培养学生运用工程化的方法和思维进行软件的开发、运行和维护,以高效地开发高质量的软件。针对该课程的特点及培养目标,以培养工程思维能力为导向进行课程教学改革,综合运用多种教学方法,将创新意识和解决复杂工程实践问题的能力培养融入教学环节中。通过教学改革,学生的创新实践能力和工程思维能力得以提升。

关键词:软件工程;工程思维;创新意识

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

The Teaching Reform of "Software Engineering" Course Derived

by Cultivating Engineering Thinking Ability

Wang Rongcun

School of Computer Science and Technology,China University of Mining and Technology JiangsuXuzhou 221006

Abstract:The purpose of software engineering course aims at training students to develop,function and maintenance of the software with engineering methods and thinking,so as to improve the quality of software and reduce the cost of software development.According to the characteristics and training objectives of the course,the course teaching reform is guided by the training of engineering thinking ability.A variety of teaching methods are comprehensively used to integrate the cultivation of innovation consciousness and the ability to solve complex engineering practical problems into the teaching process.Through the teaching reform,the students' innovative practice ability and the construction of engineering thinking were improved.

Keywords:Software engineering;Engineering thinking;Innovation consciousness

“軟件工程”课程是一门从技术(如数据库、操作系统)到语言(如语法和语义),再到社会和心理学等[1]跨学科的课程。该课程旨在培养学生运用工程化的方法、思维进行软件的开发、运行和维护,从而高效地开发高质量的软件[2]。该课程对学生面向复杂工程问题求解的工程思维构建与实践创新能力的培养至关重要。为此,需要更深入地探索更有效的教学模式,将创新意识和解决复杂工程实践问题的能力融入教学环节中。这对学生创新能力的培养与工程思维的构建,特别是,通过课程改革为持续提升计算机科学与技术专业内涵,并充分发挥该一流专业在人才培养和专业建设中的示范作用具有重要的现实意义。

STEAM教育理念[3]源于美国,强调了跨学科融合的教育理念。其中,工程思维是该理念的核心。通过工程设计、研究和工程实践培养工程思维,以综合运用多门学科相关的知识解决现实中的复杂问题[4]。在“中国制造2025”背景下,教育部2016年发布的《中国学生发展核心素养》强调了实践创新的本质是工程思维[5]。以实践问题为驱动,以项目形式融入教学活动中,从而培养学生的实践创新能力。鉴于“软件工程”课程的特点,采用STEAM教学理念改革该课程是切实可行的。

1 “软件工程”课程教学现状

在实际教学过程中,存在过于偏重理论知识的讲授,而忽略了实践能力的培养[6]的问题。以教师讲授为主的教学模式,学生的课堂参与度较低,导致学生学习积极性不高[7]。结合多年的“软件工程”课程教学经验,课程主要存在以下问题。

1.1 课程涉及知识面广

“软件工程”课程既包含分析(如需求分析)、设计(如界面设计、算法设计),又包含具体方法(如测试方法)与工具,课程内容众多。课程知识之间存在一定的鸿沟,例如,如何从分析阶段转换到设计阶段。另外,授课内容较为陈旧,当前新技术,比如微服务、低代码开发等相关内容介绍得较少。

1.2 学生缺乏主动思考

以教师为中心的课堂教学模式使学生的课堂教学参与度较低,单向的、互动度较低的知识传输模式使学生长期处于被动状态,缺乏批判性和创新性思维,致使教学效果不够理想。

1.3 文档书写能力不足

学生对软件开发过程中的相关文档的撰写与组织能力非常薄弱,缺乏专业文档的认知和书写能力。然而,这些文档对软件的开发、维护和不同人员之间的交流是不可或缺的。

1.4 项目案例库建设力度不够

当前项目案例类型单一、案例较少且比较简单,为此,应该加强案例库的建设,尤其结合当前流行技术和应用趋势,加强业内关注度高和流行的项目案例库建设。

1.5 考核方式单一

以笔试理论知识为导向的课程考核方式导致学生重理论、轻实践,重理论、轻实践的考核方式既不利于学生综合能力的培养,也不能客观、全面地评价学生的能力。

2 教学改革思路

针对上述问题,确定从以下三个方面进行教学改革:

2.1 课堂教学内容与方法改革

以培养学生实践创新能力与工程思维为目标,重构教学内容。同时,课堂教学内容应紧扣软件开发技术发展的脉搏,适时地引入当前流行的软件开发新技术涉及的相关知识。以提高学生工程思维与创新能力培养为目标,采取灵活多样的多种教学方式,让学生积极主动地参与课堂教学,从而提高学生学习的主动性与积极性。

2.2 案例库的建设

案例库的建设有助于让学生全方位地、深入地理解软件开发中的每一项活动具体含义。案例库的建设既要紧跟当前技术发展和业界应用趋势,还要考虑学生个性化的需求。以案例作为软件开发的知识载体,通过案例分析与实践将枯燥、抽象的“软件工程”基础知识进行实例化、具体化。案例库的建设需要高度体现统一过程这一思想,即以某个具体的项目为例,贯穿软件开发的全生命周期。同时,还需要根据授课内容提供更加多元化的、类型丰富的教学案例。

2.3 课程考核方式的改革

传统的考核方式中,课堂及课下作业的完成情况占30%;期末闭卷考试情况占70%。平时成绩的评定没有充分考虑学生的沟通、交流、创新实践等多方面能力表现,也没有考虑学生成绩评定的参与度。在课程成绩评定中需要体现出学生创新能力与课堂参与的成绩,以客观、全面地反映出学生的综合能力。

通过上述三个方面的改革,最终形成以软件开发任务为主线,问题为导向,案例分析为手段,通过PREPAID方法的实践,逐步培养学生的工程思维和实践创新能力。

3 教学改革具体实施措施

3.1 课堂教学内容与方法改革实施措施

以教学大纲与工程教育认证能力要求为指导,将课程目标进行分解。采用文献调研、实地调研与学生访谈相结合的方法重构“软件工程”课程教学内容,将原有的授课内容中的结构化分析相关的授课内容进行压缩,同时增加软件项目计划与软件新技术相关内容。教学方法上采用PREPAID方法[8]进行实践,鼓励学生参与课堂讨论,在教学中过程中强调创新思维、工程思维和批判思维的培养,逐步形成独立思考和相互协作相结合的教学模式。

3.1.1 建立课程学习小组

课前,提供3~5个候选项目,并根据学生人数进行随机分组。基于项目的背景知识和个人兴趣,每组选定一个软件项目,以项目开发为目标驱动课程教学。

3.1.2 成果答辩

采用软件项目管理的方式组织教学,每个阶段完成后以学习小组为单位展示阶段性成果,以此推动项目的顺利实施。最终,以成果答辩的形式分享项目成果。

3.1.3 产学、研学协同,赛教融合

采用产学、研学相结合的教学模式。一方面,与华为公司进行深度合作,在实践环节,引入了华为公司敏捷开发的项目案例。通过校企深度合作的项目实践,让学生全面深入地理解敏捷开发模型;另一方面,结合笔者在“软件工程”方向的研究进行教学,拓宽学生的视野,激发学生的学习兴趣。

3.2 项目案例建设的实施措施

3.2.1 引发软件危机的案例库

收集各种引起软件危机现象的软件项目案例,让学生从失败案例中汲取教训,充分认识引起软件危机的根源及其危害。

3.2.2 软件开发模型库

全面总结当前的软件开发模型,并对其优缺点及使用场景进行分析,以便让学生了解并熟悉在不同开发过程模型下软件项目管理的区别和管理的重点。

3.2.3 软件项目管理文档模板库

软件开发涉及多个开发活动,每个活动的阶段性成果都是通过各种文档体现的。通过提供全面文档模板库,进一步提高并规范使用文檔的能力。

3.2.4 软件项目工具库

“软件工程”涉及软件开发的全生命周期,在每个阶段都有一些流行的自动化或者半自动化工具,收集当前流行的、与每个阶段相关的工具,如原型设计工具Aux Pro;需求分析工具Visio;测试工具Load Runer、Test Manager;代码管理相关工具SVN、Git;面向对象分析与设计工具Star UML与Rational Rose等。

3.3 课程考核方式实施措施

针对“软件工程”课程的特点及其培养目标,进一步提高平时成绩的考核力度,丰富平时成绩的考核方式,期末试卷增加综合应用能力的考核,强化学生工程意识和实践能力的培养和考核。平时成绩与期末成绩各占50%,平时成绩包括课程作业、课堂讨论与课堂小组答辩等。课堂讨论与课堂小组答辩两部分的成绩由教师与学生打分综合计算,分别占60%与40%,学生打分是通过组间打分完成的。

4 教学改革效果评价

从教学的内容、效果、考核方式和方法四个维度设计了问卷,以评价教学改革的效果。针对授课的班级共发放问卷66份,有效回收问卷62份。问卷分析的统计结果如下图所示。

观察上图所示的问卷调查评价结果可以发现,围绕四个维度开展的教学效果的满意度较高。另外,在第十一届中国软件杯大学生软件设计大赛中所指导的学生获得二等奖、三等奖各一项。这进一步表明,面向工程思维能力培养的课程教学改革取得了较好的结果。

结语

首先分析了现阶段“软件工程”课程教学中存在的主要问题,阐述了教学改革的必要性,进一步明确了以培养工程思维为导向的课程教学改革思路,并从教学内容与方法、案例库的建设、课程考核方式三个方面进行了教学改革。最后,针对教学改革的效果进行了问卷调查。结果表明,面向工程思维能力培养的“软件工程”课程教学改革取得了较好的结果。

参考文献:

[1]Claes W,Per R,Martin H,et al.Experimentation in Software Engineering[M].Springer Heidelberg New York Dordrecht London,2014.

[2]Naur P,Randell B.Software engineering:report on a conference sponsored by the NATO Science Committee[J].Scientific Affairs Division,NATO,1969(1):231232.

[3]Connor A,M,Karmokar S,Whittington C.From STEM to STEAM:strategies for enhancing engineering & technology education[J].International Journal of Engineering Pedagogy,2015,5(20):3747.

[4]周光发,卢天鸣.实践性研究的工程思维方法[J].实验室研究与探索,2018,37(4):254257.

[5]核心素养研究课题组.中国学生发展核心素养[J].中国教育学刊,2016(10):13.

[6]胡劲松,张亮,黄海军.项目驱动的启发式教学在软件工程课程中的应用[J].计算机工程与科学,2016,38(1):228231.

[7]杨楠,李童.案例教学视域下软件工程“一体两翼”教学模式的构建与实践[J].高等工程教育研究,2020(01):177181.

[8]田文洪,祝峰,向艳萍.计算机专业英文教学PREPAID方法探討[J].计算机教育,2009(17):115116+107.

基金项目:中国矿业大学教学改革一般项目(2020 YB34)

作者简介:王荣存(1979— ),男,博士,中国矿业大学计算机科学与技术学院副教授,硕士生导师,研究方向:软件测试、软件维护与软件安全。

猜你喜欢

软件工程创新意识
依托工作室的软件工程实践教学研究
应用瀑布模型的MOOC制作方法
融合APTECH体系的软件产业人才培养探究
基于工程教育认证的《软件工程》课程教学质量建设研究 
数学教学中培养学生创新意识的几点尝试
高中化学教学中学生创新意识的培养
关于如何创新和完善计算机软件工程管理的探讨
高中体育教学中创新意识的培养
浅析农村小学数学教学中如何培养学生创新意识
素质教育背景下音乐欣赏教学的实践与思考