基于OBE的《数据结构》课程实践改革探讨
2021-04-13常合友周恺
常合友 周恺
【摘要】针对《数据结构》课程内容抽象,学生普遍有对知识点掌握不牢的问题,本文分析了当前数据结构教学实践过程中存在的主要问题,探讨了以OBE为目标,利用OJ对课程的教学实践和课程评价环节进行改革。通过注重过程化考核、加大实践教学力度、设计针对性题目、开展探究式教学,提高教学质量和学生的创新能力。
【关键词】数据结构 教学改革 OBE OJ系统
【基金项目】国家青年自然科学基金(NO. 61806098);江苏省高等学校自然科学研究面上项目(18KJB520029);南京晓庄学院青年专项(2017NXY49)。
【中图分类号】G642 【文献标识码】B/A 【文章编号】2095-3089(2021)10-0116-02
随着我国综合实力和国际地位的不断提升,高等工程教育正面临着由大国向强国转变的历史机遇。目前,我国高等工程教育改革的主流方向是与国际接轨,培养得到国际认可的工程技术人才。OBE(即Outcomes?Based Education)是一种基于学生学习产出为导向的教育模式。在目前的中国工程教育专业认证体系中,要求将OBE工程教育理念贯穿于人才培养目标、课程体系设计、教学内容与教学要求、教学评价等各环节[1]。在实际的教学环节中,如何建设课程内容、改进教学过程,培养学生的抽象思维能力,提高学生的计算机应用能力是计算机工程教育教学所需考虑的重要问题。
《数据结构》作为计算机学科理论性和实践性较强的专业基础必修课,其教学目标是要求学生掌握各种常用数据结构的定义、特点以及基于这些数据结构的基本算法,具备一定的数据抽象能力,学会分析算法复杂度、比较算法性能和优化算法,提高应用计算机技术解决实际问题的能力。由此可见,通过该课程教学目标的实现,将对学生达到工程认证毕业要求,如具备解决复杂工程问题所具有的扎实的工程知识、问题分析能力、深度研究能力以及终身自主学习习惯等起到重要的支撑作用。
虽然工程知识和基础理论可通过课堂教学传授获得,但是如何分析实际问题,通过数据抽象建立数学模型,并选择合适的数据结构将问题转换为计算机能够处理的形式等抽象思维过程很难在传统的课堂教学模式中培养出来。学生只有通过针对性的系统化实践训练,才能真正培养和提高抽象思维能力,理解和掌握课程的内容,培养主动和深入学习的习惯,提高分析和解决问题的能力,达到专业认证对学生素质和能力的要求。
1.教学实践环节存在的问题
由于《数据结构》课程包含的知识点多、逻辑性强且抽象性高,涉及各种常用数据结构的定义、特点以及基于这些基本数据结构的基本算法等,教师常常重点讲授理论知识,使用伪代码来描述数据结构及其算法实现,教学内容比较抽象[2]。学生被动地接收理论知识,普遍感觉课程内容过于抽象,对抽象数据类型(Abstract Data Type, ADT)的理解比较肤浅,不知道如何利用 ADT 进行相关算法的设计,无法满足工程认证教育的基本要求。
作为实践性较强的专业基础必修课程,实践教学环节是数据結构教学的重要组成部分。然而有限的实践教学往往过于注重基本理论的验证性实验,实验题目比较陈旧,多是围绕消化课堂内容而设计的一些碎片式的题目,缺乏系统化的实践题目设计,尤其缺乏对数据结构的核心内容,即ADT的系统性训练,导致学生无法实现算法从伪代码到实际代码的真正转换。此外,在编程实验过程中,学生遇到问题时无法与教师保持沟通,导致学生无法及时获得教师的指导,影响学生的学习积极性。由于算法设计能力并未从实践环节中得到实质性的锻炼和提高,学生普遍对实践教学的积极性不高,缺乏学习能动性,实践教学效果不好。这种状况显然不利于学生分析和解决问题能力的培养。
为了真正领悟和掌握抽象思维能力,学生不仅需要从理论上掌握基本的知识点,还需要通过大量的课后训练来提高算法设计能力,只有这样才能将具体的数据结构和相关算法应用于解决实际问题。然而,大多数学生的自主学习能力较差,很难自觉地完成课下训练。此外,《数据结构》课程大多以书面和理论知识考核为主,对实验部分的考核则主要通过实验报告。由于课后作业和课程实践报告中普遍存在抄袭现象,教师无法全面了解学生对知识的实际掌握情况。
2.教学实践改革探讨
为了解决上述教学实践过程存在的问题,我们在教学实践中引入OJ(Online Judge)系统,并围绕该系统对教学方法、实践方法以及课程评价方法进行改革。通过引入OJ,引导学生从实际问题出发,将所学知识应用到具体问题中,通过编写程序解决问题来加深学生对概念和算法的理解和掌握,进而提升学生的获得感和学习积极性[3]。
OJ系统主要用于在线检测程序源代码的正确性。当学生提交程序后,该系统可以快速地返回学生一个状态:通过、答案错误、超时、超出输出限制、超内存、运行时错误、格式错误或无法编译、未知错误,并返回程序使用的内存、运行时间等信息。目前广泛应用于世界各地高校学生程序设计的训练、参赛队员的训练和选拔、各种程序设计竞赛等。
与程序设计竞赛不同,《数据结构》课程的目标是培养学生按照ADT定义实现数据结构的能力,按照预定义的结构实现函数的能力以及选择合适的算法解决问题的能力。因此需要根据实际需求对OJ系统进行改进,才能有效地将OJ系统嵌入到《数据结构》课程的教学中。
2.1案例化、层次化教学
从实际问题出发,进行问题驱动教学,激发学生的学习兴趣,刺激学生进行自主探究。例如在讲解线性表内容时,从图书馆借书开始,让学生思考如何才能快速定位到图书,进一步探讨如何摆放图书可以提高定位效率;再比如讲解图相关内容时,提出如下问题:从学校东门步行到地铁站,有几条路线可以选择?哪条路线耗时最少?通过案例教学法帮助学生理解复杂问题,引导学生思考问题,利用所掌握的知识解决实际问题。
利用OJ系统,教师可以针对知识点布置随堂作业。针对学生的不同能力,作业分为必做和选做两部分。必做题重点考核学生对基础知识点的掌握情况;选做题涉及更多的知识点,主要针对学习能力较好的学生。只有在完成必做题的前提下,学生才能打开选做题。比如在二叉树的遍历部分,必做题包括给定二叉树,利用递归思想实现先序、中序和后序遍历。选做题则要求学生利用线性表、栈和队列等知识,完成非递归方式的二叉树先序、中序和后序遍历。得益于其强大的后台统计能力,教师可以快速掌握学生对知识的理解程度,进而开展针对性、层次化教学。通过有重点地讲解,帮助学生理解和掌握难度较大的知识点。
2.2有效整合教学和实践环节
利用OJ系统,教师可以将理论教学与实践教学合二为一,即全部课程均在机房完成,教师在讲授知识点后,学生立刻进入OJ系统进行实践训练,从而打破传统理论教学和实践教学的异步性问题,提高教学效率。另外,OJ系统可以对学生的实践结果进行快速地判别,帮助教师及时发现学生存在的问题,便于教师开展指导,保证问题得到及时解决,进而提高学生的获得感。在教学实验过程中,我们在OJ系统中增加交流平台。教师可以通过该平台与本班学生进行交流,回答学生的提问,进而更好地了解学生对知识的掌握程度。通过增加师生的交流和了解,促进教师因材施教,提高教学质量。OJ系统还可以自动检测代码的重复度。通过引入惩罚机制,可以有效杜绝抄袭现象,培养学生独立完成作业的习惯。
2.3注重过程化考核,优化考核方式
借助OJ全天候开放的优点,学生可以随时随地进行练习。通过提交程序代码,锻炼自己分析问题、解决问题的能力。为了强化学生实践动手能力,有效监督学生保质保量完成训练任务,课程改革中强调过程化考核,即期末总分=随堂练习部分×20%+课下练习部分×30%+实验作业部分×20%+期末考试×30%。值得注意的是,四部分均在OJ环境下完成,OJ系统会记录学生使用系统的信息,包括练习、作业、实验以及交流情况,保证考核和评价的客观性。通过不断优化考核方式,逐步建立起完善的评价与管理机制。
2.4题库设计
基于数据结构教学大纲,适应工程认证教育的要求,我们重新设计了数据结构的实践题目。目前,试题库已包含了 200 余道题目,15个专题试题集。这些题目的内容包括:(1)数据结构(线性表、链表、栈、队列、二叉树、最优树、图)的完整 ADT 设计;(2)建立在 ADT 基础上的数据结构应用算法题目;(3)算法设计实现部分(结构体、排序、查找)题目等。上述三部分内容环环相扣,层层递归。ADT设计考查學生对数据结构的掌握程度,应用算法题目要求学生按照给定的ADT实现特定的数据结构,算法设计实现部分则要求学生根据算法的定义实现特定算法,解决特定问题。
3.实践案例
以图为例,我们安排了18道实训题目,如表 1 所示。题目可对应于四个阶段:阶段 1,建立图的邻接矩阵、邻接表存储结构;阶段 2:在图存储结构之上,完成各种遍历操作,包括深度优先遍历、广度优先遍历,完成后将其加入到图的 ADT 基本操作集中。阶段 3:在存储结构及各种遍历算法的基础上,实现 ADT 的其他基本操作,包括拓扑排序、连通分量、生成树等,完成后将其加入到二叉树的 ADT 基本操作集中。阶段 4:通过完成的图的抽象数据类型,完成简单的应用算法设计。
实训内容包含的知识要点满足OBE要求,题目从易到难并环环相扣,有助于学生巩固所学理论知识并加以应用,帮助不同水平层次的学生提升算法设计能力。
4.结语
本文针对当前《数据结构》课程教学过程中存在的问题进行了探讨,提出了以OBE为目标,将OJ系统全方位引入到该课程的教学和实践改革中的几点措施。通过几年的建设,《数据结构》课程在教学实践方法、实验内容和考核方式等越来越系统化,能够满足多层次、多角度的实验教学活动。《数据结构》课程的教学实践改革不仅促进了学生动手能力和思维能力的培养,还提高了学生应用数据结构知识解决实际问题的能力,有效地提高了教学效果。在未来的教学实践过程中,我们会继续从实践教学方法和手段等多个方面入手,不断完善《数据结构》课程的OBE建设,提高课程的实践教学水平。
参考文献:
[1]骆小红,马永红.基于OBE理念的数据结构教学设计[J]. 科技视界,2018(30):112-113.
[2]谭定英,陈平平,刘慧玲.以问题为中心的案例教学法在数据结构与算法课程中的应用[J].计算机教育,2013(12):50-53.
[3]张仕,吴闻,郭躬德,等.基于PCOJ的数据结构实验教学探索[J].计算机教育,2015(3):30-32.
作者简介:
常合友,男,讲师,研究方向为机器学习,模式识别。
周恺,男,实验师,研究方向为智能交通。