黄焱
摘要:基于软件工程课程的特点,提出软件工程课程思政的总体思路,挖掘理论和实践环节的课程思政元素,探索基于课程思政的课程评价方法,将课程思政融入软件工程课程教学环节,实践树德立人的教学目标。
关键词:软件工程;课程思政;思政元素
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2022)35-0122-03
1 概述
课程思政是以构建全员、全程、全课程育人格局的形式将各类课程与思想政治理论课同向同行,形成协同效应,把“立德树人”作为教育的根本任务的一种综合教育理念[1]。
软件工程是高校计算机学科各专业的专业必修课程,课程的培养目标是将软件工程的理论与软件开发实践相结合,旨在培养学生运用软件工程基本原理解决实际问题,以及从事复杂软件项目开发和维护的实践应用能力与创新能力[2]。软件工程课程立足于工程化角度,从技术和管理等方面规范和指导软件的开发过程,本文从强化创新意识、科学素养、生活处事哲理等方面对软件工程课程思政教学方法进行研究与探索[3]。
2 软件工程课程思政的总体思路
2.1 总体目标
软件工程课程思政通过紧密跟踪社会需求和软件工程学科发展前沿动态,积极开展教学和科学研究,将课程思政融入学科、教学、教材等专业体系当中,积极探索“课程思政”的教学培养模式。本课程在课程思政方面的建设目标是培养学生爱国情怀、科学精神、团队协作能力、道德法治、民族自信及创新意识、人文素养等。
2.2 实施方法
软件工程是理论与实践相结合的课程,课程思政教学需要通过课堂案例分析、课外任务拓展、团队项目合作等方式将课程思政融入课堂内外。
课堂案例:在理论环节,将思政元素以小故事和行业案例的形式引入课堂,引导学生进行思考与讨论,不能生硬地加入课堂。
课外拓展:组织学生观看计算机行业会议,培养学生专业兴趣和专业自豪感,激发其爱国情怀、民族自信及创新意识;组织参与网络招聘会,了解业界的真实需求,确定自己的目标,促使学生脚踏实地学习专业知识。
团队项目:在课程设计环节,学生分组共同完成一个真实的软件项目,培养学生团队合作能力,践行课程思政理念。
软件工程课程思政的总体思路如图1所示。
3 软件工程课程的思政元素
软件生命周期贯穿了软件工程课程的全过程,本课程根据软件生命周期划分教学模块,挖掘各教学模块的思政元素,將其融入理论和实践环节。各教学模块的思政元素如表1所示。
3.1 理论课程的思政元素
1)软件工程概述中的思政元素
软件工程概述主要讲解软件工程学科的诞生和发展。这一部分从软件产业讲起,让学生了解我国软件产业的发展现状,意识到自主、安全、可控的计算机软件对于国家的战略性意义,是我国大力发展的重要领域,启发学生科技报国的意识。通过对国内信创产业案例的讲解,激发学生投身信创产业的热情。
随着软件规模的不断增大,软件危机出现了。为了应对软件危机,软件工程学科应运而生,软件产业迎来了发展的机遇期。通过对软件危机的讲解,引导学生树立危机意识。告诉学生出现问题不可怕,问题的出现既是挑战也是机遇,引导学生直面自己成长中遇到的问题,从问题中寻找机遇。
2)软件过程中的思政元素
软件过程是软件开发的方法论,包括基本过程、支持过程和组织过程。与任何事物的生命周期类似,软件生命周期包含了软件从诞生到消亡的全过程。生命周期理论有助于引导学生从全局的高度认识自身,清楚地认识自己当前处于哪个阶段,过去已经经历了什么,将来还要经历什么。壮志在胸、路在脚下、把握当下,做好当前的事情,这样才能抓住机遇、赢在未来。
软件工程的三要素是方法、工具、过程。这三要素是学习软件工程的关键,也是学生成长、求学道路上需要注意的关键问题。学生在学习过程中需要讲究方法论,如果不讲究学习方法,不注重劳逸结合,可能会出现学习效率低下的问题。学生在学习过程中需要借助学习工具,集中注意力,提高学习效率。结果固然重要,但过程更重要,脚踏实地走好每一步,结果自然水到渠成。
3)项目管理中的思政元素
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员、产品、过程和项目进行分析和管理的活动,涉及的范围覆盖了整个软件工程全过程[4]。学生的成长道路上有不少大大小小的“项目”,如考证、升学、就业等,学生可将项目管理的知识进行灵活运用。软件规模估算是进度管理、成本估算的基础,软件规模估算可采用自上而下的方式对项目功能进行分解汇总得到。学生需要对这些项目的工作量进行正确的评估,对其可行性进行正确的评估,从而对项目的进度做出合理的规划,培养学生的自我规划意识。在项目全过程进行质量控制,为项目的成功保驾护航。同时学生需要在项目管理中具有风险意识,及时发现蕴含的主要风险,对风险发生的概率和后果严重程度进行评估,在项目的执行过程中对风险进行监控,风险出现后给出应对措施,培养学生的风险管理意识。
4)需求分析中的思政元素
在需求分析环节需回答的核心问题是用户的需求是什么。这是系统分析、设计、实现的起点,也是软件项目失败的重要原因。需求分析阶段需从用户角度描述系统必须完成的任务。这就需要学生学会换位思考,试着站在别人的角度来看待问题,不能以自我为中心看待问题。需求分析阶段需要对用户的需求做深入调研,没有调研就没有发言权。调研方式有面谈、需求专题研讨会、观察用户工作流程等。以用户的角色深入参与到用户的工作中可以真实地体验用户的需求,再加上换位思考,才能有效地获取用户的需求。通过多种渠道了解用户需求,锻炼学生的沟通能力,培养学生的利他精神。
5)总体设计中的思政元素
总体设计阶段的主要任务是设计程序的系统结构,回答“总的来说如何实现目标系统”[5]。总体设计阶段要对项目进行顶层设计,这就要求设计者具有大局观,这有助于培养学生的全局意识。“不识庐山真面目,只缘身在此山中”,遇到问题、解决问题的时候引导学生跳出局部,从总体上看一看,不要一下子钻到细节里。
学生的成长也需要总体设计,软件工程的设计思想可以运用到学生的成长中。引导学生根据自己的特点,制定中长期目标,规划设计大学期间的成长总体路线,进行合理安排学习、娱乐、社交等活动,开阔视野,增强大局意识,最大限度发挥专业课的人才培养作用。
6)详细设计中的思政元素
详细设计阶段主要回答“应该怎样具体实现目标系统”。这个阶段是对总体设计阶段的系统结构进行细化,具体设计每个子模块的接口、数据结构、算法等。这一阶段考查的不是创新能力,而是根据总体设计的方向,落实设计细节的能力。详细设计的好坏直接决定了系统的质量,这个阶段引导学生以一丝不苟的严谨态度,落实每一处设计细节,为后续软件实现提供良好的设计。
7)软件实现中的思政元素
软件实现阶段的任务是写出正确、容易理解、容易维护的程序代码。“千里之行,始于足下”,“不积跬步,无以至千里”,精美的设计,最终需要通过一行一行的代码来体现。这个阶段的工作量大、枯燥,锻炼学生任劳任怨和担当的精神。一个软件如果代码质量低下,即使其界面精美、设计高级,也是“金玉其外,败絮其中”。系统实现阶段可以锻炼学生“工匠精神”,引导学生像对待艺术品一样,对待自己写的程序。通过踏踏实实工作,一点一滴地实现目标。
8)软件测试中的思政元素
軟件测试的任务是通过各种类型的测试使软件达到预定的要求。软件测试的目的是证明程序有错,而不是证明程序无错[6]。为了实现高质量的软件系统,开发人员需要通过软件测试开展“批评与自我批评”。单元测试阶段是程序员对自己的程序进行“自我批评”,自我批评无法彻底发现全部的问题,需要别人的批评和帮助。后续的单元测试、集成测试、系统测试、验收测试则是别人对自己的“批评”和帮助。测试阶段既需要测试人员从用户的角度进行大量的黑盒测试,也需要从设计者的角度进行白盒测试。这个阶段锻炼学生根据问题线索按图索骥发现问题的能力,也锻炼学习细心解决每一处问题的能力。
9)软件维护中的思政元素
软件交付并不是软件工程的终点,软件交付之后还有大量的软件维护工作需要进行。软件维护是软件交付之后,为了改正错误而进行的软件修改工作。在现代软件产业中,软件开发和维护阶段的界限不再固定,软件维护是软件新的生命周期的开始。软件维护阶段的工作很多,按照紧急程度可以分为改正性维护、适应性维护、完善性维护和预防性维护。可以引导学生对手头的任务进行分类,根据轻重缓急对各项工作作出合理的安排。维护工作和开发工作相比重复性的劳动较多,需要更多的耐心和责任心,以此引导学生树立吃苦耐劳的精神。
3.2 课程设计的思政元素
软件工程是一门实践性学科,在课程设计环节需要运用软件工程的方法、过程、工具完成一个真实的软件项目案例。该项目由多人构建项目小组模拟软件项目的申报、竞标、评审、需求分析等环节。团队按照软件生命周期完成问题定义、可行性分析、需求分析、系统设计、系统开发、系统测试与维护等环节,体验需求方的角色,担任项目发包方和项目评审等环节。通过完成课程设计,培养学生独立完成核心工作的能力,同时通过小组协作,扬长避短,培养学生团队协作能力。这是软件工程课程培养的核心目标,也是软件工程课程思政的重要内容。
4 基于课程思政的课程评价
软件工程的课程评价分为平时成绩和期末成绩,课程思政教育评价体现在平时成绩里,主要表现为以下两个方面。
4.1 通过命题作文考核课程思政效果
在学期初布置命题作文,要求学生选取软件工程课程中所学到的某个概念、思想、理念,对给自己带来的启示展开阐述,作为一次平时成绩。通过这种形式使得学生带着问题进行学习,促进学生对课程思政内容进行深入思考。对于学生提交的报告进行认真批阅,了解学生的思想动态,并将有价值的作业作为案例,供后续教学使用。
4.2 通过项目汇报和项目文档,考核学生在课程思政方面的实际表现
软件工程项目汇报和提交的项目文档是学生平时成绩的重要组成部分,在此部分的评价中加入对课程思政实际表现的评价。在此部分强调以下考核要点。
诚实守信:检查项目报告的原创性和真实性,对于存在抄袭情况的报告退回整改,并降低分数等级,提高学生诚信意识和知识产权意识。
创新意识:要求学生在报告中体现出一个创新点,如过程模型、项目管理方法等,并在报告详细阐述,以此来考核学生在项目实践的积极主动性和创新能力。
5 结束语
软件工程是计算机相关专业的专业必修课程,是实践课程思政的专业课程。通过挖掘软件工程课程思政元素,探索软件工程课程思政评价方法,将课程思政融入课程教学的全过程,实践高等教育立德树人,提升软件工程课程的综合教学效果。
参考文献:
[1] 高德毅,宗爱东.从思政课程到课程思政:从战略高度构建高校思想政治教育课程体系[J].中国高等教育,2017(1):43-46.
[2] 李宗花,朱林.软件工程原理与实践[M].南京:南京大学出版社,2020.
[3] 中华人民共和国教育部. 教育部关于印发《高等学校课程思政建设指导纲要》的通知[EB/OL].(2020-06-01)[2020-11-12].http://www.moe.gov.cn/srcsite/A08/s7056/202006/t2020 0603_462437. html.
[4] 韩万江,姜立新.软件项目管理案例教程[M].3版.北京:机械工业出版社,2015.
[5] 张友生.软件体系结构[M].北京:清华大学出版社,2004.
[6] 黑马程序员.软件测试[M].北京:人民邮电出版社,2019.
【通联编辑:谢媛媛】