1. 引言
2018年教育部颁布《普通高等学校本科专业类教学质量国家标准》,强调教育应该“成果导向” [1] 。OBE-CDIO工程教育模式是符合新工科背景下人才培养的需求和理念。OBE (Outcome Based Education),即成果导向教育,也称之为能力导向教育,它以学生通过教育学习的过程,并在此过程中所收获的相关学习成果作为教师教学设计以及教育实施的目标 [2] 。CDIO工程教育模式是近年来国际工程教育改革的最新成果。对CDIO进行拆析解读,“C”是构思(Conceive),“D”是设计(Design),“I”是实现(Implement),“O”是运行(Operate),即在工程实践中践行工程教育理念,CDIO工程教育模式以实际项目为载体,引导学生在项目的构思、研发、应用到改进的整个过程中,积极主动将课程理论知识运用到实际项目问题中,以此掌握工程能力,关键在于培养学生通过解决实际项目问题的全过程思维,掌握相应的知识和技能,使得学生在工程实践中学会充分运用理论知识,拓展思维,提升学生的逻辑表述能力和实践技能 [3] 。
本文拟融合OBE和CDIO理念,从成果产出入手,将工程教育理念运用到《数据结构》课程中,推动课程教育教学改革和实践探索。一方面,在讲授基本理论知识的基础上,强化对数据结构算法的分析和运用,并将其与新技术进行结合,以案例的形式进行引入,逐步培养学生的兴趣。另一方面,在实验设计方面,突出理论与实际相结合,强化实验的应用性,构建以问题驱动、项目导向的实践教学模式。通过教学改革促进学生将所学知识融会贯通,培养学生的创新思维和解决实际应用问题的能力。
2. 《数据结构》课程教学现状及分析
《数据结构》课程中所涉及到的理论知识,是解决计算机相关专业领域中诸多问题的基础。通过该门课程的学习,能够使得学生掌握理解常用的数据结构,学会分析计算机处理的数据的结构特征,在解决实际应用问题时,学会根据问题的特点选择合适的逻辑结构、存储结构和算法,同时培养学生对数据类型的抽象能力和学生的逻辑思维能力,为其他专业课的学习夯实基础。然而由于该课程的知识较为抽象、难理解,导致学生的主动性不高,无法将知识融会贯通。总体而言,目前《数据结构》课程的教学存在一些普遍问题,主要表现在以下三个方面 [4] 。
(1) 教学内容偏重理论,缺乏算法分析和实践应用。
从普遍使用的教材的各个章节来看,《数据结构》的主要内容基本涵盖了线性表、栈、队列、串、数组、广义表、树和二叉树、图等线性和非线性逻辑结构、存储结构和相应操作的实现,还包括哈希表、查找、排序算法等综合应用知识的实现过程 [5] 。这些章节内容繁难,在教学过程中,部分教师可能会倾向于理论知识和算法实现的讲解,但是又对算法的分析深度不够,从而忽略了知识应用和工程能力的培养。“重理论,轻实践”是学生无法学以致用的主要原因。
(2) 实验内容设计单一,缺乏探索性和创新性。
目前《数据结构》的实验设计多采用单一的“验证型”实验。“验证型”的实验能够有效帮助学生理解课堂知识点和掌握基本技能,但这类实验缺乏应用性,与实际问题贴合度不高,在提升学生独立分析和解决问题的方面存在不足,无法激发学生的主动性和探索性。此外,设计的实验内容之间的关联性较差,无法使学生成体系地掌握数据结构知识和灵活地完成复杂真实系统的开发与设计。
(3) 考核形式单一,无法全面评估学生的学习效果。
目前《数据结构》课程的成绩评定通常以期末理论笔试考试成绩,作为对学生对该门课程的最终评分的主要依据,考核中实验课所占比例太少,形式单一,无法全方面体现学生的学习情况。例如,学生的编程实践能力无法在笔试考试中体现出来,学生个人的相关实践成果也无法纳入成绩评定范围。传统单一的笔试考核方式严重影响学生对于实践项目的投入积极性,导致学生的编程实践能力无法提升,也不利于培养学生的逻辑思维能力和创新精神。
总之,当前的《数据结构》课程仍然是传统的教学模式,即以教师为主体,学生被动接受知识,这与OBE和CDIO理念背道而驰。因此,为提升学生分析和解决实际问题的能力,培养学生的编程能力和逻辑思维能力,以及思维创新应用能力,夯实学生的理论基础,全方位提升教学质量,培养符合工程认证能力要求的高质量人才,以OBE-CDIO理念为导向,对《数据结构》课程进行教学改革,通过对理论课程、实践课程进行多方面进行探索,同时改变传统的考核方式,建立多维度的考评体系,持续改进教学过程实施策略,在培养计算机类专业学生思维、学习、实践等方面起到了极大的推动效果。
3. 基于OBE-CDIO理念的《数据结构》教学改革策略实现
3.1. 课程培养目标的改革
基于OBE-CDIO理念,针对上述所提到的《数据结构》课程中理论课程、实践课程和教学考评等教学环节进行改革,总体针对以下几个目标展开。
(1) 通过在课堂教学中推行项目导向、问题驱动,课堂教学与实验教学一体化的“教、学、做”教学模式,提高学生分析和解决实际问题的能力。基于OBE-CDIO理念,对《数据结构》课程中教学设计、教学内容、教学方法等多模块进行多方面改革,注重学生编程能力的培养,夯实学生的理论基础。
(2) 通过引入以项目为导向的案例式教学,将经典的理论机制与实际项目紧密联系,激发学生学习的主动性和兴趣,同时重新组织和选择兼具新颖性和实际性的真实项目,培养学生的逻辑思维能力和实践拓展能力。
(3) 通过改革传统单一的纸质试卷考核模式,引入多维度考评,全面考核学生对理论知识的掌握程度,动手编程实践能力,思维创新应用能力。
3.2. 理论课程改革的探索
研究分析现有的《数据结构》教材等资料,教材的主体内容分为线性表、栈和队列、串、数组等线性结构,树形结构、图形结构以及查找排序等综合应用等知识。传统的教学模式主要以教师讲授为主,学生被动接受,这种模式下,学生难以保持学习的兴趣,同时,由于该课程理论知识相对较多、内容相对其他专业课而言更为抽象,并且部分知识点的理论推导的逻辑实现过程比较复杂,同时编程实现与常用的高级程序设计过程存在较大差距等特点,导致学生对理论知识的掌握理解程度难以保证,编程就更难以实现。因此对理论课程的改革探索问题亟待解决,具体措施是,优化传统教学组织方式,融入OBE-CDIO人才培养理念,将《数据结构》课程中每个章节的理论知识与实际问题相结合,让学生经过构思、设计、实现和运作整个过程,融入OBE-CDIO理念,在成果导向的基础上,推行问题驱动、理论教学与实践教学一体化的“教、学、做”模式,突出以学生为主体,引导学生将所学知识融会贯通,课程设计的过程如图1所示。在这个过程中,为了优化教学组织方式,其中必不可少的一个环节就是课程设计,课程设计旨在培养学生的工程能力和团队精神,融入OBE-CDIO理念,重新构建《数据结构》课程的教学模式,能够显著提升学生的编程实践能力和逻辑表述能力。
为了有效改善《数据结构》课程的教学设计管理,对于教师而言,系统地梳理教材各章节的内容是首要任务,包括顺序表(Seq-List)、链表(Link-List)、栈(Stack)、队列(Queue)、数组(Array)、广义表(G-List)、树(Tree)、图(Graph)、查找(Search)以及排序(Sort)等。根据OBE-CDIO理念,对课程设计报告中的需求分析、总体设计、详细设计、测试用例、测试分析等阶段的目的进行拆解分析。例如在求解迷宫的问题中,引导学生在需求分析阶段中,将问题抽象为一种特定的数据结构——“栈”,分析如何利用“栈”这种数据结构,描述求解迷宫的问题。在总体设计阶段,要求学生能够针对需求分析阶段中提出的软件性问题,实现案例项目的体系结构设计向编程实现的过程。在整个课程设计过程中,可以分小组进行,但是为了避免小组中个别学生“摸鱼”的情况,教师要对课程设计的组织方式进行优化,例如规定小组人数在2~4人一组,并且设计报告中要明确小组成员的具体分工,同时设置一名组长,负责课程设计中的部分任务,并对设计任务进行分解分工,协调小组工作,使得课程设计任务得以顺利完成。
Figure 1. The course design process integrating OBE-CDIO concept
图1. 融入OBE-CDIO理念的课程设计过程
以课程设计过程为基础,对《数据结构》课程的教学组织方式进行改进,将班级里的学生,按3~5人分成不同的小组,每个小组在教材目录中节选一个知识点,通过课前查阅资料、观看视频等自学预习的方式,对所选知识点进行分析理解,在教师本学期的教学进度过程中,以PPT讲解或算法分析的形式,向其他同学讲解。在讲解之前,要求小组长提交待讲解的PPT或编写的算法,以及小组内的明确分工计划表;在讲解过程中,根据成员分工按顺序进行讲解;讲解完成之后,教师对小组成员进行点评,同时针对小组成员对知识点的讲述进行查漏补缺,并通过编程演示,加深同学们对知识点的理解程度。最后留出相应时间,让其他同学参与讨论,对知识点是否还存在不理解的地方,及时进行补充讲解,最大程度保证同学们对知识点的掌握理解。
此外,还可以充分地利用网络课程资源,进行线上线下的混合式教学模式,包括中国大学慕课平台上的精品课程、雨课堂、超星学习通等在线教学管理平台,以及相应的一些高级程序语言编程平台,为学生进行课下学习提供丰富的学习资源,便于教师考核和管理学生课后学习过程 [6] 。线上线下融合的学习模式具体过程见表1。
Table 1. Online and offline mixed learning modes for different learning processes
表1. 不同学习过程线上线下混合的学习模式
3.3. 实践课程改革的探索
OBE-CDIO理念强调以学生为主,突出知识的应用性和创新性,通过采用项目驱动与课程基础知识相结合的策略,将《数据结构》课程的基本知识与应用型项目相结合,通过案例将学生带入一种特定的场景中,学生利用已有的知识和背景,从项目任务驱动出发,发现问题,分析问题,查找解决问题的策略,然后进行上机实现并优化。引入以项目为导向的案例式教学,采用任务–分析–求解的方式,将实践中加深对理论知识的理解,充分调动学生学习的主动性,在解决实际应用问题的过程中锻炼学生的实践能力。对实践课程的探索改革模式如图2所示。
Figure 2. Practical course teaching design
图2. 实践课程教学设计
(1) 综合型验证性实验。单一验证性实验的内容,简单而言是表示某一数据结构逻辑结构,以及存储结果的实现过程,通过单一验证性实验,学生能够更深层次地理解数据结构的逻辑结构和存储结构,以及相关算法的基本原理,同时能够通过高级程序设计语言编写、调试程序。《数据结构》课程中,传统的实验课程设置大多以“验证性”为主,并且通常是按章节的单一型验证性实验,不能很好地把各个章节衔接起来,因此,对实践课程的改革,可以串联教材中的两个章节或者多个章节内容,设置一些综合性的验证性实验,加强学生对章节内容理解的同时,也能厘清章节与章节之间的联系,更好地帮助学生对本门课程的全方位掌握。例如,通过指定方式录入一些数据,让学生根据这些数据通过高级程序语言构造出一种数据结构,并实现这种数据结构的一些基本操作,存储表示和实现,再将这些数据按照某种排序方式进行排序,得到相应的序列之后,对这些数据进行编码。综合几个章节的知识点进行综合型验证性实验,能够加深学生对章节知识点的理解,同时厘清不同章节、不同数据结构类型之间的联系,也能提升学生们的编程能力。
(2) 优化实践课程设计选题。OBE-CDIO理念中不可或缺的一个环节就是课程设计选题。在《数据结构》课程中选题设计自然必不可少,但不足之处十分明显,即课程设计的选题与实际生活情况贴合度相差较大。针对该问题,教师在设计选题时,注重从项目驱动出发,选题应该直接来源于学生真实的生活学习场景,明确在该场景中完成具体的项目设计,以此激发学生的兴趣。以校园导游咨询为例,该项目要求学生设计一个校园导游程序:① 设计校园平面图,记录校内各建筑物、景点,用顶点记录建筑物、景点的名称、代号、简介、所在位置等信息;用边表示路径,记录路径长度、所需时间等信息;② 为来访人员提供图中任意建筑物、景点相关信息的查询;③ 为来访人员提供任意建筑物、景点的问路查询,返回距离最短的行走、校车方案。这种案例项目,以学生真实所处的学习生活校园场景为例,根据所学到的数据结构基础理论知识,理解选题的任务要求,逐步对项目问题进行拆解分析,最终完成该项目的设计要求,在完成项目过程中,加深学生对理论知识的理解,以及解决实际问题的思维创作能力。完成选题设计后,还可以增加学生答辩环节,让学生们针对此次课程设计的完成过程进行简述并演示,提升学生的团队合作能力和逻辑表述能力。
3.4. 评价体系改革
传统的考核评价模式通常采用理论笔试成绩作为对学生的最终考核结果,无法全面地评价学生对于本课程的真实掌握情况,不利于学生的学习的积极性和创造性的引导和培养。因此,改革传统的评价考核方式十分有必要,结合OBE教育理念,按照CDIO四大环节,建立多维度的考评体系。如图3所示,多维度评价方式不仅可以考核学生的理论知识,还可以将理论知识与实践相结合,同时可实时监控相应的教学环节,提高教学的效率。改革的考评主要以理论为基础,以培养学生创新精神和能力为目的,将教学过程分为课上、课下两个阶段,同时将课下再细分成课前和课后两个过程,并对不同阶段给出明确且合理的评价方式,构成全教学环节的考核体系,主要包括以下三个方面。
(1) 学生平时表现成绩:主要从学生签到、课堂活跃度、章节测验,参与讨论,作业完成情况,课后学习过程等方面进行考核;
(2) 考核卷面成绩:主要考察学生的基础理论知识;
(3) 实践项目:主要从提交项目的设计功能、代码、答辩演示、小组协作、实践报告书写等方面进行评定,通过教师打分、其他小组评分、自我评分来综合确定实践环节分数。
针对以上几个方面,对学生期末考试方式、内容和评分标准进行改革,对学生的学习产出给出较为科学的考评。具体考核模式见表2。
Table 2. Course assessment standards
表2. 课程考核标准
4. 教学改革效果
参与本次课程改革试点的对象为高等院校相关专业的100名本科生,通过此次教学改革,学生学习的整体参与度相较于改革前有了明显提升。根据在线学习平台的数据跟踪结果和调查问卷、课程设计实验报告以及期末考试的情况表明,大多数的学生能够基本掌握线性表、栈、队列、串、数组、树等结构的逻辑结构和存储结构的表示和简单实现过程,同时能够理解查找和排序的基本原理及查找、排序过程。图4选取的部分调查问卷情况。根据学生提交的实验报告以及小组汇报的情况,如图5所示,95%以上的学生能够完成基本的验证性实验,同时选做综合型验证性实验和课程设计项目的学生,均达到了80%以上的完成度。
通过统计结果表明,理论课程和实践课程的教学效果都得到了显著的提升,在理论课程中,大部分同学表示通过在线学习平台进行的线上线下混合教学方式的过程中,学习积极性相较之前有了较大的提升,在实践过程中,编程能力得到提升的同时,解决实际问题的思维也得到了拓展,但是调查问卷的收集度不到90%,说明教学改革还有很大的提升空间,后期会针对调查情况分析具体原因,并进一步对教学改革做出改善,从而实现新工科背景下基于OBE-CDIO理念的专业人才培养。
Figure 4. Knowledge points mastery of linear tables
图4. 线性表知识点掌握情况
Figure 5. Degree of experiment completion
图5. 实验完成度
5. 结语
《数据结构》是一门理论知识繁难、实践性强的课程,通过该课程的学习,可使得学生掌握常用的数据结构,学会分析计算机处理的数据的结构特性,在解决实际问题时,学会选择合适的逻辑结构、存储结构和相应的算法,同时培养学生的数据抽象能力和逻辑思维能力,通过完成项目化课程设计,提高学生的编程实践能力。本文基于OBE-CDIO理念,对《数据结构》课程,从理论知识、实践内容和评价体系等方面进行了改革优化,使得学生能熟练地掌握《数据结构》课程的理论基础,并将理论知识与实践相结合,融会贯通,解决真实场景的应用问题。通过线上线下混合教学、拓展学习等方式,有效提高了教学质量。
基金项目
西南大学教育教学改革研究项目“基于OBE-CDIO理念的《数据结构》课程改革与实践探索研究”(2022JY093)。
参考文献
NOTES
*通讯作者。