“软件工程导论”课程能力目标达成的课堂延展模式探索
2022-04-16于学军
于学军 张 丽 俞 敏 朱 青
(北京工业大学信息学部 北京 100124)
《软件工程导论》课程是软件工程专业的一门专业基础必修类课程[1]。其课程地位是软件工程专业学生专业能力培养的敲门砖,同时为后续的软件工程专业课程奠定基础。北京工业大学软件工程专业培养方案中,软件工程导论课程的设置基本目标为使学生理解什么是工程,什么是软件工程等基本概念,基本理论,掌握运用软件工程方法进行软件构造,管理的原则问题,为后续软件工程系列课程打下良好的基础。该课程设置在第3学期,以全生命周期开发过程的“方法、人、工具及过程”为主线,不仅强调软件工程知识的传授,同时强调培养学生工程能力,要求它同时也是一门实践性课程[2-4]。达到课程目标存在如下困难:
痛点1:有限学时限制:很难在有限的32学时内,对学生的能力进行综合培养。
痛点2:学生接受限制:传统的教学方式使学生已经习惯了以教师“教”为主的授课模式,这种模式对能力培养存在难度。
痛点3:能力基础限制:开课学期是第3学期,其先修课程只有C语言和面向对象的程序设计,学生的基础稍弱,对本次课程能力的培养也很困难。
本文围绕工程能力培养目标达成,提出“以学生为中心,以大赛为驱动,以集中课程设计为辅助”的实践探索模式[5]。
1 工程能力指标分解
结合软件工程导论课程的课程目标,作者将其达成指标分为两类:显式指标及隐式指标,两类指标分别对工程基础指标元素进行不同程度的支撑,如图1所示。
图1:软件工程导论课程指标体系
如图1所示,软件工程指标体系中包括知识指标及能力指标,其中知识指标所包含的要素围绕软件开发生命周期主要活动提取出来的,如需求、架构、过程、质量保证及标准等这些要素通过传统且成熟的授课方法可以达成;在能力指标中,沟通能力将培养学生将客户需求转化为系统需求的能力;协调权衡指标对应的是相互冲突的目标,提供备选方案的能力;工程设计指标对应的是在软件工程中对应用负责人的工程方法进行设计的能力;而持续学习指标对应的是在项目实施过程中有效工作、对系统能按照系统工程思路设计等能力的培养,而这些指标很难以传统的授课模式达成。
2 以“软件工程导论”课程为例的能力目标达成实践探索
为了达到“软件工程导论”课程中对学生工程能力的培养,同时考虑到实施过程中的痛点问题,笔者从两个方面进行了课堂的拓展,开展了“以学生为中心、以大赛为驱动,以集中课程设计为辅助”的实践。
第一个方面的拓展借助本专业的全国性质的大赛,以大赛为驱动,对“软件工程课堂”进行延展[6],促工程能力目标达成;第二个方面借助本专业的为期两周的集中课程设计环节对理论课堂进行延展,促工程能力目标的达成。本文以北京工业大学软件工程专业的“软件工程导论”课程为例介绍这两个方面的实践过程。
2.1 大赛驱动课堂教学延展促能力培养
针对“软件工程导论”课程设置学期靠前,学生基础弱的痛点,作者在授课过程中借助微信小程序入门门槛低,学生易上手的特点,将全国“微信小程序大赛”引入课堂,与“软件工程导论”课程有机的结合在一起,同时利用“微信小程序大赛”赛程与课程时间相吻合的优势,开展了以大赛为驱动的课堂延展实践。经过三年的实践,取得了很好的实践效果,达到了“大赛驱动课堂教学延展,促软件工程能力目标达成”的效果。
以2021年春季学期的“软件工程导论”课程为例,课堂人数为74人,其中参加微信小程序大赛的人数为65人,占比为87.84%,如图2所示。
图2:“软件工程导论”学生参加“微信小程序”占比示意图
从这个数据可以看出,学生对通过参与大赛对自身能力培养的需求和希望还是很大的,从而体现了这一措施是完全符合“以学生为中心”的举措。
由于大赛的赛程与课堂教学环节时间上是相吻合的,给“软件工程导论”课程中知识传授与实践落地的能力培养提供了非常好的机会。在授课过程中,教师通过对参赛小组的指导,将软件工程理论原则与实践有效的结合起来,对学生的知识的获取以及能力的培养起到了非常大的促进,取得了很好的效果。
三年完赛学生共计200余人。其中获得国家一等奖2组,国家三等奖1组,华北赛区一等奖3组,二等奖2组,三等奖2组。而且,通过大赛的驱动不仅避免了枯燥的软件工程理论传授,且对学生的能力指标达成起到了非常好的支撑,如图3所示是本次参加小程序大赛学生反馈大赛对能力达成显式指标支撑示意图。图4所示是参加大赛对能力达成隐式指标支撑示意图。
图3:大赛对学生能力达成显式指标支撑示意图
图4:大赛对学生能力达成隐式指标支撑示意图
2.2 实践环节驱动理论课堂延展促能力的培养
除以大赛驱动促能力达成举措之外,授课教师还借助在小学期集中课程实践的环节,进一步开展课堂延展促能力培养的实践。
本专业小学期的集中课程实践为期两周,在实践设置设计方面采用如下设计,已达到课堂拓展及能力达成的目标:
(1)延展课堂案例,将课堂案例落地于集中的课程实践。针对痛点问题1,笔者将在“软件工程导论”课堂中的案例延展到集中的课程设计环节,有效的将理论课堂与实践课堂衔接在一起,实现课堂的延展。
(2)明确评价指标,引导学生规范方法,自主学习。针对痛点问题2,笔者在课程实施过程中明确提出评价指标,规范要求,并注重环节的指导,大大的促进了学生学习能力,协调沟通能力等隐性指标的达成。
(3)提供成熟框架,充分做到“软件工程导论”的“引”和“导”的课程作用。针对痛点问题3,在课程中给学生提供成熟的框架,如在本学期的实施过程中引入“若依框架”,引导学生在有限的时间内掌握框架的部署,应用,体验敏捷开发以迭代的思想。
笔者通过调查问卷的方式,对实践环节能力达成情况进行了调查,调查结果如图5所示。
图5:集中课设对工程能力指标支撑示意图
同时,笔者对能力指标达成的显式指标及隐式指标分别进行了调查分析,得到如图6所示的调查结果。
图6:集中课设对工程能力指标达成示意图
从图6可以看出,大多数参与调查的同学认为能力达成为“基本达成”,符合导论对学生的导学的课程定位。
3 结语
软件工程导论课程是软件工程专业课程的先导课程,该课程是否能为软件工程专业的学生正确打开软件工程领域的大门,起到重要作用。为了切实做到导论课程“导”及“引”的课程作用,以及对学生工程能力培养奠定基础,作者开展了“以学生为中心,以大赛为驱动,以集中课程设计为辅助”的工程实践能力促成的实践探索。
经过三轮次的实践积累,取得了较好的成效。笔者通过调查问卷的方式分别对大赛驱动方式以及集中课程辅助方式对“软件工程导论”课程拓展助力方面进行的调查,调查结果如图7,图8所示。
图7:大赛驱动方式对课堂教学助力调查示意图
图8:集中课设对课堂助力调查示意图
其中图7是对通过大赛驱动方式对课堂教学和学生能力培养的调查结果,结果显示93.24%的同学认为是有所助力的。
图8所示是参加集中小学期课设的学生的调查结果,调查结果依然显示绝大多数同学认为,这种方式是对理论课堂的有效延展,对能力指标达成的有效支撑。