数据结构与算法课程实验建设探索
Exploration on Experimental Course Construction of Data Structure and Algorithm
DOI: 10.12677/AE.2021.115227, PDF, HTML, XML, 下载: 491  浏览: 638  科研立项经费支持
作者: 邹 丹, 蓝 强, 肖汶斌:国防科技大学气象海洋学院,湖南 长沙
关键词: 数据结构与算法实验课翻转课堂基于成果教学Data Structure and Algorithm Experimental Course Flipped Classroom Outcome Based Education
摘要: 实验课在数据结构与算法课程的整个教学体系中具有重要作用,是连接理论和实践的桥梁和纽带。然而由于多种原因,实验课的实施往往难以达到预期的教学目标。本文针对数据结构与算法课程实验的设计和实施过程中存在的问题进行分析,并基于翻转课堂和基于成果教学的教学模式,提出了一种以学生为主导、教师对整个实验过程实施全流程管理的实验方法,有助于提高学生学习的能动性,在有限的实验时间内实现既定教学目标。
Abstract: Experimental course plays an important role in the whole teaching process of data structure and algorithm course, which is the bridge and link between theory and practice. However, due to a variety of reasons, the implementation of experimental course is often difficult to achieve the expected teaching objectives. In this paper, we first analyze the problems existing in the design and implementation of the experiment of data structure and algorithm course. Afterwards, based on the flipped classroom and outcome based education mode, we put forward an experimental method that is student-oriented and teachers implement the whole process management of the whole experiment process. This method helps to improve students’ learning initiative and is conducive to achieve the established teaching objectives in the limited experimental time.
文章引用:邹丹, 蓝强, 肖汶斌. 数据结构与算法课程实验建设探索[J]. 教育进展, 2021, 11(5): 1485-1489. https://doi.org/10.12677/AE.2021.115227

1. 引言

数据结构与算法课程是信息类本科专业的必修课程,其目标是在学生具备基本的编程能力的基础上,通过常用数据结构和基础算法的讲授及实践,一方面培养学生运用经典的数据结构与算法解决问题的能力,另一方面培养学生的抽象思维和计算思维。与前序课程中的程序设计课程相比,数据结构与算法课程对学生的编程实践能力要求更高,不仅要求具有完备的程序设计和工程实现能力,而且要求具有分析问题并灵活运用已学数据结构和算法解决问题的能力。

为了实现该教学目标,实验课是数据结构与算法课程的必要组成部分。虽然课后的程序设计和算法实践作业也可以部分达到提高学生实践能力的目标,但主要存在以下问题:一方面,课后作业包括各类题目,重点在于通过各类测试题巩固学生对课上学习的概念、方法的理解,能够运用学到的知识进行问题分析和求解,其中程序设计和实现类型的作业比重较低,课后编程实践时间有限;另一方面,在课后编程实践过程中,学生不可避免会遇到各种问题,其中既包括编程技术方面的问题,又包括数据结构与算法应用方面的问题,只能借助书本和互联网自行解决,教师往往无法实时响应,因此学生无法及时获得支持,实践效率低且效果差。实验课作为目标明确的课堂活动,学生能够在确定的时间段内不受干扰地完成一项任务,并且在实践过程中能够与教师互动,及时解决实践过程中遇到的问题,从而保障了实践的教学质量和实施效率。

实验课在数据结构与算法课程的整个教学体系中具有重要作用,然而实际实施效果往往差强人意。这种情况既与实验设计和过程管理有关,也与学生的学习能动性有关。本文针对数据结构与算法课程实验的设计和实施过程中存在的问题进行分析,并基于翻转课堂和基于成果教学(OBE, Outcome Based Education)的教学模式,提出了一种以学生为主导、教师对整个实验过程实施全流程管理的实验方法,有助于提高学生学习的能动性,在有限的实验时间内实现既定教学目标。

2. 相关研究

作为一门实践导向的计算机理论课程,数据结构与算法课程的实验教学是该领域的研究热点之一。史建焘等在数据结构与算法课程实验教学改革的背景下,针对国外几所典型的高水平大学该课程实验课的教学内容和教学方法进行研究和分析,并将本校的实验课程建设与其进行比较研究 [1]。杨晓波等针对数据结构与算法课程抽象程度较高,学生难以理解运用的问题,设计了数据结构可视化演示实验软件,并建立了交互式微课以提高学习效果 [2]。张华等设计了一种教学目标和内容分层的数据结构实验教学体系,并开发了一套开放的数据结构在线实验平台,致力于提高学生参与实验的主动性 [3]。梁冰等通过引入人工智能应用背景和算法,对数据结构与算法课程的实验内容进行改革,引导学生了解和掌握前沿算法和实际应用领域,有效的提高了学生的学习兴趣和积极性 [4]。连远锋等介绍了一种基于SPOC的数据结构课程虚拟实验教学改革方法,并给出了相应的虚拟仿真教学案例设计 [5]。张少仲等将ACM竞赛引入数据结构与算法实验课程,将学生的学习层次与ACM竞赛题目级别建立映射关系,提高了课程实验内容难度与学生能力的匹配度 [6]。王晓霞等为了提高数据结构与算法课程实验的过程化管理水平,提出在线上线下混合教学模式中遵循统一的文档规范 [7]。张兆维等对数据结构与算法课程的实验内容进行调整,突出理论部分,弱化代码部分,并增加对创新的激励,提高了学习成效和教学效果 [8]。付菊等面向数据结构与算法课程设计了一种面向能力培养的混合式实践教学方法,从教学目标、教学方法和过程考核几方面进行教学改革,并提出持续改进建议 [9]。宋歌对数据结构与算法课程实验教学中的问题及其成因进行分析,从教学内容和方法等方面设计改进措施 [10]。朱允刚等针对疫情期间线上实践教育的需求,从实际的数据结构与算法课程线上实践教学案例入手,通过与实际应用密切结合并提供在线评测功能,提高了学生的编程兴趣和参与度 [11]。王彤等以建设数据结构实验金课为目标,设计了实验教学的整体体系结构,采用线上和线下结合方式有效提高了学生的应用和思维能力 [12]。

3. 问题分析

数据结构与算法课程的单次实验课通常为2课时约90分钟,时间短但内容极其饱和。在实验课程开始后,授课教师首先需要约10分钟介绍本次实验的内容、具体的实验任务和实验要求、主要涉及的知识点以及编程方法等。在接下来的约80分钟时间内,由学生自主进行问题的分析、数据结构的选择、算法的设计以及编程实现。在该过程中,由教师对整个课堂的实验进度情况进行把控。一方面,教师需要轮循检查各个学生的实验进度,对进度滞后的学生及时指导;另一方面,教师需要及时响应学生的提问,对学生遇到的理论及实践问题予以解答。即使按照10~20人的小班计算,理论上教师平均辅导每个学生的时间只有4~8分钟,如此短的时间通常只够解答1~2个问题。以上分析只是考虑理想情况,在大部分实际情况下,一次实验课教师无法兼顾到每个学生,导致部分学生的提问无法当场得到解答。此外,在实验课开展过程中,学生除了数据结构与算法课程本身的概念、方法等方面的问题外,往往还会遇到编程技术、编程环境等本课程教学内容外的问题,而为了实验顺利开展,教师必须对所有提出的问题予以及时解答,这就需要教师在实验开始前不仅要规划和设计整个实验内容和实验流程,还必须充分考虑在实验过程中可能出现的各类问题并提前准备预案。这既增加了教师在教学课程内容范围之外额外的工作量,又在一定程度上增加了实验过程的不确定性,阻碍了教学实验的顺利开展。为了实现数据结构与算法课程实验的预期教学效果,必须针对以上问题采取相应的解决措施。

4. 数据结构与算法课程实验建设研究

数据结构与算法课程实验的参与主体包括两类角色:教师和学生。与理论授课过程中教师作为主导角色不同,实验实施过程中应当由学生作为主导角色。因此,翻转课堂这一教学模式适用于实验课程建设和实施。在实验课程建设过程中,需要以学生作为主体,设计各类支撑资源,确保学生提前熟悉实验任务和相关理论知识,并且了解在实验过程中有可能遇到的问题,以及教师预先准备的可以用来提供支持的资源有哪些,从而一方面有针对性的加强学生应对实验内容的思想准备和知识储备,另一方面提高学生自我解决问题的能力。具体而言,在实验课开始之前,教师需要预先准备好实验实施大纲,详细介绍实验目标、实验内容、实验工具、相关知识点和技能点,并提供相关的参考资料。根据学生的教学时间安排和课后空闲程度,上述材料需要在实验课开始前三到七天下发给学生,由学生按照自己的时间安排和学习节奏进行自主学习和准备。采用翻转课堂进行实验课程准备的优势在于,一方面,学生能够根据自身基础和学习习惯进行学习,并且提供的材料可以反复观看,这样不同学习能力的学生就可以根据自身状况进行调整;另一方面,学生能够自由支配学习时间,从而提高学习效率和学习的自主意识,并培养良好的学习习惯。在学生自主进行实验前准备的过程中,教师一方面需要继续准备实验课程的课上材料和问题应对预案,另一方面需要对学生的实验预习状况进行检查。对于学习主动性强的学生,通常会主动咨询预习中遇到的问题,而对于学习自觉性较差的学生,则往往很少提问。对于前者,教师可以很容易掌握学习进度和学习状况,而对于后者,教师必须在部署课前准备任务后上课前这段时间,安排一到两个时间节点,对没有主动反馈的学生的学习准备情况进行检查,从而保障所有学生不会落后于总体进度,并且提前掌握进度相对滞后的学生的问题情况,便于准备后续的实验课实施过程中可能遇到的情况处理预案。

基于成果教学理念的核心要义在于“教育系统中的每项活动设计都应基于学习者最终的学习成果”。在具体执行过程中,基于成果教学需要定义教学成果产出的具体目标。对于数据结构与算法课程实验,其教学目标是通过具体的实验设计和实施过程,让学生掌握相应的理论知识、思维方法及实现方法。具体而言,学生的实验最终产出包括实验代码和实验报告。实验代码反映了学生的实操能力和编码能力,实验报告则完整的记录了从问题分析、方案设计、方案实施和效果评估等一系列完整的实验过程。学生是否达到了实验的预期效果,除了在过程中教师通过交互和节点检查等形式获取的中间状态外,主要还是需要通过学生提交的实验代码和实验报告来检验实验效果是否达成。因此,从最终结果反推,在确定课程实验的教学目标后,需要进行逐层细化分解,将目标量化为可考核的具体实验要求,并体现在学生提交的实验代码和实验报告中。从基于成果的教学理念出发,课程实验的产出是学生形式上得到的学习成果,最终可以通过预设的评估准则来判断是否实现预期的教学目标。与理论课相比,课程实验的教学目标不仅包括知识传授,更重视知识运用和能力培养,因此课程实验的成果必须充分体现学生自主实践的过程和最终达到的水平。教师基于学生的实验成果对学生实验情况进行评估,判断是否达到预设的教学目标,并进一步对整个过程进行回顾和反思,同时针对没有达到预期教学效果的学生开展后续辅导。综上,基于成果教学理念的引入,为实验的设计、开展和评估的全过程提供了统一和明确的方向。

5. 小结

作为一门重视实践的课程,数据结构与算法课程包含了大量的实验内容。然而由于实验课程时间有限而内容饱和,数据结构与算法课程实验的实施效果往往差强人意,学生难以在课上完成既定实验目标。本文针对数据结构与算法课程实验的设计和实施过程中存在的问题进行分析,基于翻转课堂和基于成果教学(OBE, Outcome Based Education)的教学模式,提出了一种以学生为主导、教师对整个实验过程实施全流程管理的实验方法,有助于提高学生学习的能动性,在有限的实验时间内实现既定教学目标。

基金项目

本文系湖南省教育科学“十三五”规划2020年度立项课题“区块链在军事职业教育监测评估中的应用研究”,课题编号XJK20ZJ001。

参考文献

[1] 史建焘, 李秀坤, 娄久. 国外高水平大学算法与数据结构实验课程研究[J]. 计算机教育, 2016(11): 163-166.
[2] 杨晓波, 陈邦泽. “数据结构”演示实验类交互式微课设计与实践[J]. 实验技术与管理, 2017, 34(8): 153-157.
[3] 张华, 张淼, 张岩, 等. 数据结构实验教学研究与实践[J]. 实验技术与管理, 2018, 35(5): 218-221.
[4] 梁冰, 冯林, 杜猛, 等. 人工智能背景下数据结构与算法课程的实验设计[J]. 实验室科学, 2020, 23(3): 55-59.
[5] 连远锋, 王智广, 等. 基于SPOC的数据结构课程虚拟实验教学改革探索与实践[J]. 计算机教育, 2020(11): 82-85.
[6] 张少仲, 白英, 王小妹, 陈媛嫄. 基于ACM竞赛的数据结构实验课程教学研究[J]. 计算机时代, 2020(10): 73-75.
[7] 王晓霞, 刘炜, 孙连山. 数据结构实验标准化管理探索与实践[J]. 计算机教育, 2020(11): 107-110.
[8] 张兆维, 王建华, 陶曦鸣. “数据结构”课程的课内实验教学探索与实践[J]. 计算机时代, 2020(5): 92-95.
[9] 付菊, 孙连山, 赵晓, 等. 基于能力培养的数据结构与算法实验教学模式探索和实践[J]. 计算机教育, 2021(3): 99-103.
[10] 宋歌. 《数据结构》实验教学手段和方法的改革初探[J]. 电脑与信息技术, 2021, 29(2): 92-94.
[11] 朱允刚, 杨博, 虞强源, 刘大有. 面向应用场景的数据结构线上实践教学案例[J]. 计算机教育, 2021(2): 41-43.
[12] 王彤, 鲍玉斌, 杨雷, 等. 数据结构实验金课建设教学探索与实践[J]. 实验室研究与探索, 2021, 40(5): 184-192.