基于学用互助的软件体系结构课程教学探索与实践

2022-03-25 04:44蔺一帅李青山王徐华
软件导刊 2022年3期
关键词:架构设计案例知识点

蔺一帅,李青山,鲍 亮,邓 岳,王 璐,王徐华

(西安电子科技大学计算机科学与技术学院,陕西西安 710071)

0 引言

在20 世纪90 年代,美国卡耐基梅隆大学(CMU)等国际知名高校首先开设软件体系结构相关课程[1-2]。随后,清华大学、北京大学、国防科技大学、东南大学、西安电子大学等国内知名高校也将软件体系结构相关课程学习列入了软件工程人才培养计划中[3-8]。

软件体系结构教学内容主要包括软件体系结构基础知识,常见的软件体系结构风格和模式,设计、分析、评估与构建软件体系结构的基本方法和策略,软件体系结构演化过程及最新研究进展等[6,9-10]。因此,课程教学中容易出现知识高深抽象、教学内容不切实际等问题,导致学生难以应用专业知识提升实际的软件架构设计工程能力。针对该学情,孙耀等[4]将真实项目案例引入软件体系结构课程建设中,旨在通过真实项目案例辅助课程知识讲解;覃征等[8]针对课程教学中知识抽象的问题,通过特定的实践教学环节设计,辅助对抽象知识的理解与应用;丁智国[11]从教学组织方式上进行改革,在课堂教学中引入翻转教学,以加深学生对课程知识的理解;刘玮[12]从课程内容与教学方法两方面进行探索和尝试,以期达到卓越工程师的培养目标。此外,各高校课程组都在不断进行课程教学模式的探索与实践,旨在通过教学改革消除知识学习与工程应用之间的巨大鸿沟,提升学生的实际工程能力[13-16]。

在综合分析现有软件架构课程教学方法的基础上,经过10 多年的教学实践,本文提出学用互助的课程教学创新体系,从教学方式、课程组织、考核评价、教学反馈等方面实现教学创新。

1 教学创新体系设计

如图1 所示,围绕学用互助,课程教学创新体系设计如下:教学方法采用“以面引点、任务导向、案例驱动、体验探究、立体思政”的特色课程教学方式;课程组织方式采用由教师课堂引导式互动讲授、学习效果自主实时检测、学生互动讨论和学生自主项目实践组成的混合方式;课程考核评价机制为基于学习数据的多阶段全过程式多维考核,以获得更实时的“教与学”效果监测,对学生进行理论知识、工程能力和综合素养的多维评价。同时,在校内外建立跨高校联动的教学效果研讨机制,使课程创新改革获得更大范围的教学效果反馈,辅助课程持续改进。

Fig.1 Curriculum innovation teaching system design图1 课程创新教学体系设计

2 创新方法及途径

2.1 特色教学方式

本文采用“以面引点、任务导向、案例驱动、体验探究、立体思政”的特色课程教学方式。其中,“以面引点”即从软件整个生命周期出发,引出体系结构风格、建模、质量属性及策略等体系结构课程的每一章节知识点,以软件全生命周期映射知识点的方式代替对知识点的孤立讲解;“任务导向”即在授课过程中,始终以软件项目实际任务引导学生运用理论知识主动思考项目架构设计方案,应用辅助设计工具完成系统架构的建模、评估与实现;“案例驱动”即通过“知识点案例+综合案例”的多种案例模式解决体系结构教学中理论知识抽象、概念定义朦胧、高深而不切实际的问题;“体验探究”即通过任务案例引导学生在学习过程中体验软件架构师在软件项目研发中的任务、角色,搭建课程“学与用”的桥梁;“立体思政”即将案例与讨论相结合的立体化课程思政方式。通过西电“农掌门”科技扶贫、嫦娥四号探测器高可用性软件设计、美团外卖解决贫困人口就业等自主软件研发案例,将课程思政以润物细无声的方式引入在线课堂知识点教学中,增强学生的民族自豪感和社会责任感。同时,基于学习系统,创建以“软件如何服务于国家,软件人如何做对社会有益的事”为主题的讨论区,结合课程知识内容,基于科研项目中遇到的卡脖子问题,定期发布相关讨论贴,培养学生积极向上的学习态度,引导学生做有知识、有温度的软件人,达到软件工程专业人才德智双向发展的培养目标。

2.2 课程组织方式

课程组织方式为教师课堂引导式互动讲授、学生互动讨论、学习效果自主实时检测和学生自主项目实践组成的线上线下混合式方式,实时获取“教”与“学”效果,形成课程教学闭环。

其中,课堂引导式互动讲授即在每一章节知识点讲解中,授课教师首先向学生提出软件项目案例在软件全生命周期某阶段的实际任务,通过任务引导,学生跟随授课教师对课堂知识点的讲解,主动思考该软件任务的解决方案,在听课过程中体验软件架构师在完成软件架构设计相关任务中的角色;学生互动讨论即基于课程知识内容,在线下课堂和学习平台线上讨论区中让学生面向架构设计相关任务展开架构设计方案、架构评审等互动讨论,体验架构师的角色,激发学生的学习动力和热情;学习效果自主实时检测即在每一节课堂授课结束后,学生通过课程组建设的知识点自测题库自主检测学习效果。通过学习平台对学生测试结果数据的统计分析,授课教师在每一次授课后即可掌握学生对该节课程知识点的学习效果。针对学生在学习中存在的普遍性问题,授课教师可安排在后续课程中进行二次讲解,针对个性化问题,则做好单独沟通交流和个性化辅导工作;学生自主项目实践即在掌握相关理论知识的基础上组建项目团队,逐步完成中等规模的软件系统需求分析、软件架构设计和建模表示、架构设计方案评估,最后基于评估改进后的架构设计决策完成编码实现与系统测试,并以项目报告和现场验收答辩的方式进行评审。如图2 所示,通过设计从需求分析、架构设计、架构建模到架构评估、代码实现与测试的软件开发全生命周期项目实践任务,覆盖课程理论知识点的全面综合应用,以培养学生的工程实践能力与综合素养。

Fig.2 Project practice design图2 项目实践环节设计

2.3 课程考核方式

课程考核采用基于学习数据的多阶段全过程多维考核方式,在课程教学过程中实时检测教学效果和学习效果,对学生进行理论知识、工程能力和综合素养的多维评价。在评价机制中,各部分所占比例和计算依据如下:学生课程总成绩=课堂单元考核4%+讨论单元考核5% +自测单元考核5% +项目实践单元考核30% +期末单元考核56%。

(1)课堂单元考核。基于学生的课程知识学习完成度(线下课堂参与度/在线课程视频学习时长)计算得出。

(2)讨论单元考核。由学生在案例分析、架构设计、架构评估评审等课堂讨论和线上学习平台讨论区中的参与度与活跃度计算得出,以奖励课程中积极主动进行思考与探究的学生。

(3)自测单元考核。由章节知识点测验成绩计算得出,章节测验与章节知识点对应,在学生完成每节课程学习后,通过完成以客观题为主的知识点自测题,实时检测学习效果。

(4)项目实践单元考核。学生以项目团队为单位,根据课程进度,面向中等难度的软件系统需求,完成从需求分析、架构设计、架构建模到架构评估、代码实现和测试的软件开发全生命周期的项目实践任务,并以项目报告和现场验收答辩的方式进行评审,考核学生发现、分析、解决问题的能力,沟通合作能力及语言文字表达能力。

(5)期末单元考核。通过线下闭卷考试形式进行,命题标准为30%知识点+70%案例应用,主要考核软件体系结构定义、软件体系结构风格、软件体系结构设计与评估等知识的掌握情况。

2.4 教学反馈与改进机制

本课程组在国家级在线课程开放平台“学堂在线”发布了国内首门软件体系结构MOOC 课程,该在线课程不仅支持了西安电子科技大学的线下/线下混合教学工作,而且支持了多所高校的混合教学工作。因此,本课程组与其他高校软件体系结构课程组授课教师建立了跨高校联动的教学效果反馈与改进机制,统计分析多所高校学生的课堂反馈情况,不断优化该课程的教学方式以及测试题库、教学案例等,实时更新维护学习平台中关于“典型问题及其解答思路“的课程讨论区。通过跨高校联动的方式获得更大范围的教学效果反馈,从而辅助本课程组更好地进行教育教学改革与创新实践。

3 效果及示范作用

本课程组对上述创新的教学方式进行了实践与应用。在线下教学方面,在西安电子科技大学本科生、研究生课程体系中,软件体系结构课程平均线下授课人数为500 人/学年。教学评价数据显示,在近3 年的教学评价中,学生满意度名列前茅,尤其在“课程知识是否能够提升学生实际应用能力”方面,获得了较高的满意度评价。在线上教学方面,西安电子科技大学面向社会学员开设的软件体系结构在线开放课程以授课视频、课程思政讨论等方式为33 个省级行政单位以及台湾和香港特别行政区,累计近1.7 万学生提供了教学服务,并通过用户问卷调查、社交网络群学生代表访谈等方式对线上教学实施效果进行持续的调查跟踪。在调查样本中,有近65%的学生认为课程案例对于增强其对理论知识的理解与应用起到了非常有效的作用。此外,该课程的特色创新实践也多次获得软件工程教学领域专家的肯定,曾荣获软件工程实践教学案例全国一等奖,并多次在计算机、软件工程教学研讨会上进行分享。

4 结语

作为计算机类软件工程专业课程,软件体系结构课程聚焦软件生命周期中的软件设计阶段,以期提升我国软件工程专业人才的软件设计能力。本文提出“学用互助,做有情怀、有温度的软件人”的软件体系结构课程教学核心理念,创新设计了“任务导向、案例驱动、以面引点、体验探究,立体思政”的特色教学方式并在实践中进行了应用。结果表明,该课程在线下教学和线上教学中均取得了较好效果。

猜你喜欢
架构设计案例知识点
一张图知识点
一张图知识点
第四页 知识点 歼轰-7A
案例4 奔跑吧,少年!
基于安全性需求的高升力控制系统架构设计
随机变量分布及统计案例拔高卷
发生在你我身边的那些治超案例
关于G20 的知识点
一个模拟案例引发的多重思考
对称加密算法RC5的架构设计与电路实现