霍纬纲
(中国民航大学 计算机科学与技术学院,天津 300300)
自2005年教育部开展工程教育认证工作以来,工程教育认证的产出导向、学生中心、持续改进等先进理念有力地推动了我国工程教育专业的教学改革[1]。产出导向要求专业要根据学校定位、社会需求、利益相关者的期望确定学生毕业5年左右的培养目标,由培养目标确定学生毕业要求,由毕业要求确定专业课程体系,课程体系的每门课程都要以毕业要求的能力产出为教学目标。以学生为中心的教学理念强调教学设计要考虑学生学什么、怎么学、学得怎么样,教学过程注重激发学生兴趣和潜能。持续改进是指专业要在合理评价专业实施效果的基础上持续改进课程体系、毕业要求及培养目标。因此,工程教育认证的理念对于提升专业层面和课程层面的建设质量都具有积极的指导意义。
软件建模与分析是计算机科学与技术专业软件方向选修课,在学生具备了一定的面向对象程序设计编程能力的基础上,进一步培养学生面向对象的思维方式,使其在实际软件项目开发时,能给出良好的设计方案。对照工程教育认证要求,课程存在的主要问题如下。
(1)课程的教学目标定位不清,与毕业要求或专业培养目标没有明确的支撑关系。由于课程目标过于笼统抽象,导致没有实施教学目标的有效方式和方法。
(2)教学过程强调以知识传授为主,以软件建模与分析相关知识点讲解的完整性和清晰度为目标,没有针对学生的软件分析设计能力设计教学活动。
(3)课程考核方式单一,无法科学量化评价教学效果。目前本课程的考核采用笔试闭卷考核方式,这种方式只能考查学生的理论知识掌握情况,无法考核学生是否具备软件分析与设计的具体能力。
根据工程教育认证标准和学院计算机科学与计算机专业的毕业要求指标点分解情况,选取的毕业要求指标见表1。由表1中计算机科学与技术专业毕业要求指标点,软件建模与分析课程教学具体目标可确定如下。
目标1:理解面向对象技术的基本概念和核心特征(支撑毕业要求2.1)。
目标2:掌握UML中用例图、类图、顺序图、状态图、活动图的相关概念,能使用这些图表述软件建模问题(支撑毕业要求2.1)。
表1 与本课程相关的毕业要求指标点
目标3:能编撰软件需求规格说明书的相关内容(支撑毕业要求2.1)。
目标4:能针对特定的软件需求进行领域分析,抽象领域概念、领域概念之间的关系,并能以领域模型的方式表达分析结果(支撑毕业要求3.1)。
目标5:能基于领域模型设计软件类,定义软件类之间的关系,给软件类分配职责(支撑毕业要求3.1)。
目标6:理解基本的软件设计模式、面向对象设计的基本原则,能使用这些原理分析软件设计方案的合理性(支撑毕业要求3.1)。
目标7:能够与团队合作完成课程项目需求分析及建模任务(支撑毕业要求9.1)。
由既定的教学目标确定教学活动内容,包括课堂讲授、课外作业、课内实验、课程项目共4个教学环节。各教学环节内容、学时及其与课程目标的对应关系见表2。课堂教学内容系统讲解统一建模语言UML和面向对象分析与设计的基本概念和方法,使学生具备面向对象分析设计的基础知识。
表2 课程教学内容、学时与教学目标对应关系
教学方式采用多媒体与传统板书相结合,增加教学信息量和直观性。使用Rational Rose工具当场操作演示UML各种图的绘制使用方法,如在讲用例实现时采用启发式教学方法,一边阅读用例描述一边引导学生抽象实体类、边界类、控制类,在此基础上绘制顺序图实现用例。这种授课方式活跃了课堂氛围,有助于强化学生的实践技能。
教学手段采用以案例驱动的启发式和讨论式教学,激发学生的学习兴趣。一个好的案例应该能覆盖课程教学中足够多的知识点,并具有一定的复杂度,案例的业务背景也要易于学生理解。可以采用图书借阅系统[2]和NextGen POS系统[3],这两个案例均能满足上述案例选择的原则。图书借阅系统案例包含从需求分析、类建模、交互建模的详细分析设计结果。NextGen POS系统全面展示了基于领域模型、系统顺序图、操作契约、通用软件职责分配原则的面向对象分析设计方法,而且以伪代码形式作为分析设计结果,让学生感觉到软件建模“立竿见影”的效果。
此外,根据课程教学目标设置4次作业,作业类型以分析题、应用题为主,考查学生对面向对象技术中类、对象、多态、封装、软件职责分配原则等重要知识点的理解和掌握程度;通过学校BB学习平台、课程微信群方式,及时解决学生学习过程中的问题,鼓励学生以中国大学MOOC平台中相关视频资源辅助学习。
新布卢姆教育目标模型把认知过程分为记忆、理解、应用、分析、评价、创造6个维度,其中记忆与理解是认知过程的基本阶段,应用、分析、评价和创造是对知识的迁移、加工和应用,使学习者获得解决问题的能力。课堂教学与作业环节主要让学生实现知识的记忆和理解,而为了达到应用、分析、评价和创造则需要通过实践教学环节实现[4]。为此,笔者设置了用例图建模、类图建模、顺序图建模、状态图与活动图建模共计8学时的课内实验环节,旨在使学生应用及理解课堂教学UML相关知识点。同时为使学生具备软件建模分析能力,还设置了课程项目分析与设计环节,目前提供3个课程设计建模题目:大学选课系统、仓库管理系统、航空公司订票系统。每个题目都提供了具体的建模要求,也给学生留有一定的发挥空间,要求学生以小组为单位完成课程项目,每个小组3~5人。每个小组须提交涉及需求到分析设计的文档:愿景、用例模型(包括用例模型中每个用例的描述)、补充性规格说明、词汇表(数据字典)、业务规则、用例实现文档,包括顺序图和VOPC(View Of Participating Class)图。另外,要求组内的每位学生至少要建模实现用例模型中的一个用例。
根据工程教育认证标准,课程教学过程中的每个教学活动都需要有具体可操作的评价方法,科学合理的课程评价方法能反映教学中的问题,为教学内容、教学方法的持续改进提供依据。课程达成度评价是以评价学生能力产出为主要目的,以考查学生对知识点的理解和应用能力为重要内容。由此,根据3.2节设计的教学活动,设置了期末考试、课程项目、作业、实验4个评价环节。基于4个评价环节对课程教学目标的贡献度[5],设置的各评价环节在课程达成度评价中的权重分别为0.5、0.2、0.25、0.05。各评价环节与课程教学目标的支撑关系及目标分值见表3。
根据表3的目标分值分配结果,各评价环节均设有若干考查点。考试环节的4个考查点A-1、A-2、A-3、A-4分别对应课程目标2、4、5、6。考试环节各考查点的分数由考题评分标准计算。课程项目的3个考查点B-1、B-2、B-3分别对应课程目标3、5、7。课程项目各考查点的分数由表4所示的量规表计算。作业环节的4个考查点C-1、C-2,、C-3、C-4分别对应课程目标1、4、5、6。每个考查点的得分从作业完成进度及完整性、作业内容准确性、能否对作业问题提出新颖的解决方法等3个方面计算。实验环节的考查点D对应教学目标2。学生实验的得分从实验报告的完整性及规范性、实验报告内容准确性、报告真实性等3个方面计算。作业和实验环节的主观性评价部分均设计有量规表,限于篇幅略去。由表3中每个课程目标的总目标分值,计算分配各评价环节每个考查点占整个评价环节目标分值的比例,具体见表5。由表5计算出每个学生对应于每个课程目标的得分及其达成度。据此,可以算出教学班内所有学生对于每个课程目标的平均得分及平均达成度。
以学院2016级软件建模与分析教学班的课程目标平均达成度计算结果为例说明教学改革实践结果。课程目标4、5、6的平均达成度分别为0.64、0.63、0.61,该3项课程目标达成度较低,结果表明学生在领域模型分析、软件类定义及职责分配、基本设计模式应用等能力方面尚有欠缺。为此,在下一轮教学过程中,课程组可以适度增加这3项课程目标涉及的知识点的讲解学时,在作业环节新增领域模型、软件类职责分配等知识点的应用题目。课程目标1、2的平均达成度分别为0.67、0.73,结果表明学生可以较好地理解面向对象技术的核心特征和概念,能掌握UML的用例图、状态图等核心图形的知识点及其应用。下次教学过程可以考虑增加课程目标1、2的考核难度。课程目标3、7的平均达成度为0.73、0.84,说明学生能较好地撰写软件需求规格说明书,并且在课程项目设计过程中有较好的团队协作能力。但这两项目标的考核标准需要进一步修订,以便更好地反映出学生能力水平。
表3 课程目标的达成度评价环节及目标分值
表4 课程项目量规表
表5 课程目标的达成度评价计算方法
中国民航大学计算机学院为提高计算机科学与技术专业的培养水平,于2018年着手开展了工程教育认证的准备工作,依据认证标准要求对专业培养方案进行了修订,笔者按照培养方案的要求对软件建模与分析课程进行了改革实践。以工程教育专业认证的学生为中心、以产出为导向的教育理念为指导,设计的软件建模与分析教学改革方案基于计算机科学与技术专业的毕业要求,设置了软件建模与分析的具体教学目标,构建了与教学目标相适应的教学活动内容、教学方式方法、考评环节及课程目标达成度计算方法。实践结果表明,面向工程教育认证的软件建模与分析课程改革能发现课程教学过程中的“短板”,有助于实现该课程教学水平的持续改进,持续提升该课程的教学质量。