1. 引言
OBE (Outcomes-based Education)最早于1981年由美国学者Spady提出,在上世纪80年代到90年代,OBE得到了飞速的推广和发展 [1] [2],美国工程教育认证协会(ABET)全面接受了OBE的理念,并将其贯穿于工程教育认证标准的始终。在OBE教育模式中,重要的是学生学到了什么,教师必须对学生毕业时应达到的能力及其水平有清楚的构想,然后设计合适的培养体系来保证学生达到这些预期目标。
在2016年,我国加入了《华盛顿协议》 [3],这意味着我国高校也开始进行工程教育认证,并且通过认证专业的毕业生将得到国际上的认可。这是对学生来说一项很大的优势。也正因为此,各专业的各门课程也需要紧跟国际形势,适应国际需求,进行基于OBE的改革和创新 [4]。
2. 基于OBE的数据结构教学改进
在数据结构的教学中,传统的方式是以内容为驱动,一个知识点一个知识点的讲解,让学生掌握知识。而这种方式中没有把学生最终能做什么摆到明确的位置,也就是说,学生掌握了知识后并不清楚能用这些知识去干什么。而OBE的教学模式确能够衡量学生能做什么,学习完成后能有什么样的能力。这就要求在数据结构课程教学要进行改革,将教学设计的重心地聚焦在学生在完成学习过程后能达成的最终学习成果,也就是确定课程教学目标是什么,进一步再改革教学内容和教学方法,从后向前,逐步推进成果驱动教学的教学过程,如图1所示。
![](//html.hanspub.org/file/21-1161569x9_hanspub.png)
Figure 1. The education program based on learning outcome
图1. 学习成果驱动教学的过程
2.1. 数据结构课程的教学目标
数据结构课程教学目标就是要培养学生能够用数据结构去解决具体的问题。在课程教学中可以具体化为四个目标:1) 能够通过分析问题,将问题中的数据进行抽象,设计有效的数据结构,实现数据在计算机中的存储、传递、运算和转换,具备基本数据结构的学习和使用的能力。2) 能够利用图书、网络等资源进行文献研究,将基本数据结构运用到实际应用问题中,分析问题并设计方案,具备分析和评价设计方案的能力。3) 能够根据特定的软件需求,结合相应的算法,建立合理的软件体系结构和程序结构,实现编码、运行、调试等,具备可重用软件的设计开发能力。4) 能够分析问题特征,综合运用各种数据结构及算法,设计实验方案,具备解决实际问题的能力。
这四个教学目标如图2所示,第一个目标中基本数据结构的抽象、分析、学习、使用是最基础的学习成果,也就是说学生学习数据结构课程后具备的第一层次的能力。其次第二个目标中要能够利用一些资源进行问题分析设计及评价,这是要在解决具体问题时能够具备一定的分析设计能力,是学习数据结构课程后应具备的第二层次的能力。之后三个目标中能根据数据结构的特点去进行软件开发,这是将数据结构落实到计算机中实现的第三层次的能力。最后第四个目标能够综合运用数据结构和算法解决实际问题,这里面也包括了复杂工程问题,此即为学习数据结构最终要达到的学习成果,也就是第四层次的能力。数据结构课程的四个教学目标从不同的角度培养学生的不同的能力,它们相辅相成,层层递进,最终使学生能达到解决复杂工程问题的能力。
![](//html.hanspub.org/file/21-1161569x10_hanspub.png)
Figure 2. The four objects of data structure
图2. 数据结构课程的四个教学目标
2.2. 数据结构课程的教学内容和教学方法改革创新
为了达到的课程的学习成果,那么就要从学习成果出发,逆向来改进课程教学中课程的教学内容和教学方法。
教学内容方面,课程的最终目标是解决复杂工程问题,因此,要把“问题”引入课程教学中,把工程中出现的新的技术引入到课程教学内容里。具体教学内容改革分成以下两个个方面:
1) 课程教学的理论教学部分,在课程基本内容之外,积极引入新知识丰富学习内容,加强学习效果。比如在互联网迅猛发展的今天,网络搜索引擎应用广泛,而搜索引擎是如何实现的呢?这个问题如何解决?把问题抽象到数据结构中就是如何进行搜索,而它正好可以对应到课程内容中的查找部分,因此可以在讲解查找时就会加入搜索引擎的介绍及原理分析,引导学生用所学内容去分析、设计、解决问题。
2) 课程教学的实验教学部分,增加实践环节的权重,侧重学生的用计算机解决问题的效果。在课内实验环节中,在练习基本数据结构如何编程实现的基础上,增加不同类型的问题的设计实现,这些问题会用到一种或者多种数据结构去实现,除了数据结构外还会用到如何解决问题的简单算法实现,如此可以初步培养学生的分析问题的能力以及问题和数据结构知识点结合的综合能力。在单独实验环节中,会开放性的给出一些问题,由学时综合运用多种数据结构及算法,从分析问题开始,设计数据结构及算法,设计整体实验方案,完成编码开发,进行测试,最终解决该复杂工程问题,如图3所示。
![](//html.hanspub.org/file/21-1161569x11_hanspub.png)
Figure 3. The reform and innovation of the course content
图3. 课程内容的改革创新
教学方法上,传统的填鸭式教学方法已经不适合新的OBE的教学要求,因此也需要进行改革创新。OBE强调的是学习成果,因此,教学中要考虑如何达到该成果,也就是说如何让学生能够用数据结构解决复杂问题。因此在教学中不能一味地教,而是要引导型、开放式的进行教与学的结合,让学生能够主动学、自觉学,以能够解决实际问题为目标的学。具体采用问题驱动教学的方法,如图4所示。
在问题驱动教学中,首先提出问题,引起学生的学习兴趣。然后由学生进行发散思维,去试着解决问题,调动学生的学习积极性。当学生对问题提出了各种解决方案后,引导学生用所学的数据结构去解决问题中数据的组织、存储,用学的算法去设计问题解决的步骤和流程。之后学生自行进行设计及实现,自己动手解决这个问题。到此,学生真正学会了解决问题的方法,获得解决问题的能力。比如,以最小生成树这个知识点的教学为例来介绍一下这个过程。如图5所示。
![](//html.hanspub.org/file/21-1161569x13_hanspub.png)
Figure 5. The study process of minimum span ning tree
图5. 最小生成树的学习过程
从最小生成树的学习过程可以看出学生通过主动学习和自主思考,在教师合理的引导和评价下,完成了解决问题的全过程,并且能够举一反三,掌握了解决实际问题的能力。
3. 基于OBE的数据结构多层次考核评价
基于OBE的教学不仅要能够在教学内容和教学方法中体现,在考核评价中也要进行相应的改革。
3.1. 重实践、重能力的考核要求
OBE是以学生为中心的,也就是说学生学到了什么?而对于数据结构课程来说,重要的是让学生学会应用数据结构去解决问题,这就要涉及到在实践中去应用数据结构,最终要将数据结构在计算机中实现,用程序去解决问题。因此在考核中要增加实践、能力方面的考核,要真正能评价学生能不能够解决问题,是不是拥有解决问题的能力。
在数据结构的考核中,采用了多元考核方式,如图6所示。考核内容包括平时作业、上课表现、实验表现、报告撰写、期末考试等多方面考核。其中平时作业考查的是基本数据结构抽象和使用的能力,上课表现考查的是学生对问题的分析理解能力及设计解决方案的能力,实验表现考查的是学生将解决问题并设计实现方案的能力和编码开发能力,报告撰写考查的是学生对实验方案的设计能力和规范化写作的能力,而期末考试考察了多方面的能力,其中客观题占10%~20%,主观题占80%~90%,主要考查学生对数据结构的应用能力和解决简单问题的能力。
3.2. 多层次的实践考核标准
在考核中要侧重实践能力的培养,因此对实践考核采用因学生而不同的层次化考核方法,具体可以将实践考核分为三个层次,如图7所示。
其中基础实践考核为对基本数据结构的设计实现能力的考核;应用实践考核为使用一种或两种数据结构解决简单问题的能力的考核;综合实践考核为使用多种数据结构及算法来解决复杂工程问题能力的考核。这些考核通过学生解决不同层次的问题来实现,其中包括基本数据结构实现问题、基本数据结构应用问题、综合数据结构应用问题。针对这三类问题每类都会给学生提供3~5个问题题目,学生可以根据兴趣和水平选择实现其中某类问题解决,也可以循序渐进、由简到繁的逐步解决各类问题。针对学生所选题目的层次,完成情况以及完成过程中的实验表现综合评价学生的实践能力。
![](//html.hanspub.org/file/21-1161569x15_hanspub.png)
Figure 7. The three levels of practical assessment
图7. 实践考核的三个层次
4. 可持续改进
经过基于OBE的教学改革及创新后,对前几届学生学习效果及学习成绩进行了测算和对比,发现本课程的课程教学目标的达成效果在逐年提高。
为了更直观的进行对比,将表1中数据做成折线图,如图8所示。
![](Images/Table_Tmp.jpg)
Table 1. The comparison of achievement degree for data structure’s objectives in 2016~2019
表1. 2016~2019四级学生数据结构课程目标达成度对比
![](//html.hanspub.org/file/21-1161569x16_hanspub.png)
Figure 8. The comparison of achievement degree for data structure’s objectives
图8. 课程目标达成度对比图
对比2016~2019四级学生的四个课程目标的达成度情况,横向来看,各个课程的目标达成度都有上下波动,但整体上课程目标3 (根据方案实现算法程序能力)达成的不够好,实践能力有所不足。针对这种情况在课程教学中持续改进策略,增加问题及实验部分的比例,用案例引导学生分析设计,用程序示例教给学生怎么去写代码,从基础问题做起,切实提高学生的分析设计及程序编写的能力。
纵向来看,学生历年的课程目标达成度大体上是在逐年提升,但也有个别年份出现了下降,比如2019级课程目标1达成度有少许下滑,说明对基础的抽象、分析及使用部分有些放松,还需引起重视。
5. 总结
数据结构课程的OBE改革有许多学者也都在研究 [5] [6] [7]。本文描述的是经过四年的基于OBE的数据结构课程的改革创新后得到的经验成果。通过分析一系列的数据后发现,基于OBE的教学模式对学生的帮助很大,能让学生获得实实在在的想要的学习成果,学生的学习积极性也有了很大的提升。但在改革过程中也发现,课程教学目标的达成度也有时候会出现波动,这就需要进行不断的可持续的改进,确保学生的获得学习成果的整体情况是向越来越好发展的。
基金项目
本文得到2020北京信息科技大学教改项目“基于OBE的数据结构教学方法改革”资助。