数据结构实验金课建设教学探索与实践
2021-06-24鲍玉斌张立立刘佳良
王 彤, 鲍玉斌, 杨 雷, 张立立, 刘佳良
(东北大学a.计算机科学与工程学院;b.PBL教学创新研究中心,沈阳 110819)
0 引 言
数据结构课程是计算机专业及电子信息类等其他专业的一门专业核心课程,具有知识点多、理论性强、抽象程度高及实践性强等特点,是学习数据库系统、编译原理、操作系统的重要先行课程,也是软件开发的基础,具有较高的实践要求。在教育部实施的“高等学校教学质量与教学改革工程”中,提出要“高度重视实践环节,提高学生实践能力”[1-2]。因此,实验与实践教学是数据结构教学的必要环节。但学生在数据结构实验课程学习过程中常遇到内容多、算法抽象难于理解、难以将算法转化为可运行代码以及遇到实际应用问题无从下手等问题,影响了后续课程的学习。
为着力解决上述问题,顺应社会对创新人才需求的趋势,响应教育部打造实验教学各类“金课”课程建设,全面提高人才培养质量,支撑引领教育现代化发展[3]的号召,围绕教育部指出的“金课”需要具备的“两性一度”,即高阶性、创新性和挑战度,本次数据结构实验金课建设教学探索围绕解决实际应用问题,以在线实验平台和线下教师引导相结合的线上线下混合式的方式开展,主要探讨了实验教学体系构建、实验教学内容设计与指导、实验考核要求与评价方法以及实验教学效果等。实验内容分为验证型、设计型、应用性探究式综合创新型实验3个层次,具体实现形式为在线课前预习、线上基础实验以及线下应用性探究式综合创新实验具体实现形式,即线上预习、线上较难知识点动画演示、在线基础实验、线下教师引导、线下学生分组协作应用性综合创新实验、线下答辩、综合评价等具体环节以及课后方便学生自学的在线习题、配套参考资料“数据结构实验教程”等。
课程体系构建与金课建设相适应。首先,课程具备高阶性,本实验课程建设旨在深化教育改革,注重知识、素质和能力全面发展,以培养具有坚实专业基础、实践能力和创新思维等综合能力的人才为目的;实验题目设置具有创新性,应用性探究式综合创新型实验为实际应用问题具有前沿性和时代性,学生分组完成,并可根据小组情况从教师提供的题目中选题或自拟题目,同时教学形式具有较强的互动性,采取线上自主实验与线下教师引导探究式学习相结合的方式开展课程并以答辩、综合评价等形式结课;课程题目同时具有一定程度的挑战性,因课程题目以日常生活、工作中遇到的实际问题为背景,如何存储数据和数据之间的关系,并基于存储结构设计合适的算法已达到解决实际应用问题的目的是数据结构实验的教学目标。
本课程建设旨在帮助学生扎实基础、开启创新思维,进而提高实验教学质量,培养学生在知识综合运用和工程设计等方面的分析并解决复杂问题的综合能力和高阶思维,为以后的进一步学习奠定基础。
1 研究现状
近年来,不少院校从实验教学体系、教学方法、教学内容、教学平台、教学方案等方面进行了研究、改革和探索,实验与实践教学的重要性也得到了一定的认同,同时总结了教学中出现的常见问题。文献[4]中针对数据结构知识点多、理论性强、实践性强的特点,提出了3层阶段递进式实验教学方案。文献[5]中根据CDIO工程教育原理,提出将软件工程训练融入数据结构实验教学过程的方法和实践手段,教学设计包括验证性和设计性两部分实验,该方法有助于提高学生对该课程的学习兴趣,有效提高课程教学效果,并为学生后续课程的学习奠定良好的软件工程基础。文献[6]中设计实现了一个以数据结构经典算法为主体的双边教学实验平台,可以支持教师的算法动态教学演示和学生的自学推导,通过图形化、虚拟化的方法逐步展示经典数据结构与算法分析和计算过程,可以帮助学生理解数据结构课程中经典算法的设计思想,设计策略,时空复杂性以及实现过程,使学生更好地掌握数据结构与算法课程的教学内容,提高课堂教学效率和学生的自学创新能力。文献[7]中构建数据结构实验教学体系,对实验目标和内容进行分层设计,让普通学生学得更扎实、好的学生走得更远,通过实践学生参与实验的主动性增强,数据结构与算法的设计与应用能力得到了有效训练和提高。文献[8]中针对课内实践教学的突出特点是学时少、任务重、期望值高的特点,提出了找出关键知识点,利用有限的课内实践教学重点对这些关鍵知识点进行强化,使学生有进行课外实践能力的基本思路和教据结构课内实践教学方案,并根据难易程度将实验题目分为基础型实验题目、单点设计型实验题目和多点设计型实验题目。文献[9]中针对现有的教学模式提出引入CDIO思想的教学模式,阐述了CDIO大纲的实施标准,将该方法应用于课程的具体教学环节,并对实践教学项目和考核方法进行重构,包括验证型、综合型、设计型和创新型实验。文献[10]中通过构建数据结构课程实践教学平台,形成了从平时实验、期中和期末考试的模式,并依靠该教学平台和资源,实现了多角度的以教师为主导、学生为主体的教学改革与实践。文献[11]中讨论以自主开发的Online Judge(OJ)为实验平台,在数据结构实践教学过程中,引入学习团队和分层次教学,运用探究式教学模式,以OJ上的问题为核心与载体,在课堂内、外的自主探究与合作探究中凸现学生学习的主体性、实践性,提高学生的实践能力,以及改革实验考核方式来提高教学质量。文献[12]中针对数据结构课程中出现的学生编程基础不扎实、重理论轻实践、缺乏实践能力和创新能力,提出了内容面向应用的教学改革方案。文献[13]中探讨了大规模开放在线课程(MOOC)的出现对计算机实验教学提出新挑战、实验教学的重要性和特点以及目前实验教学在在线大规模实验方面的一些探索和实践,介绍了软件实验借助在线评测系统自动完成实验程序的验证和评价。文献[14]中基于SPOC教学模式,阐述了计算机实验教学云平台设计及其在教学实践中的应用,包括学生可在该平台上完成课前预习、课堂实践、在线提问、课后整理实验数据、撰写并提交实验报告等,通过平台的使用提高了有效学习时间,形成了有效的师生互动和及时反馈的评价机制。文献[15]中介绍了学生对“数据结构”逻辑结构与存储结构及其经典算法理解困难,利用动画演示将数据结构算法的执行过程像物理实验和化学实验一样直观形象地呈现在学生面前,帮助学生理解和学习。文献[16]中针对数据结构课程实践教学中的若干问题,在自主开发的程序设计竞赛在线测试平台上有针对性地提出平台改进、试题设计和教学改革的方法,阐述这些方法应用到实际教学工作中对数据结构课程教学的促进作用,并取得了良好效果。文献[17]中针对数据结构实验教学过程中学生积极性不高、实践动手能力不强的教学实际,分析传统实验教学存在的主要问题,提出分层次教学的基本思想,从目标分层、分层评价和分层次教学应注意的问题等方面阐述分层次教学的实施方案。
针对以上情况,结合课程学习目标提出了围绕解决实际应用问题,以在线实验平台和线下教师引导相结合的形式开展多层次、立体化数据结构实验教学体系构建,并详细阐述了实验教学内容与方法、实验考核要求与评价方法等。
本数据结构实验课程建设目标旨在深化教育改革,加深学生对数据结构理论知识的理解,并注重知识、素质和能力全面发展,以培养具有坚实专业基础、实践能力和创新思维人才为目的,提高问题求解能力和创新思维水平,同时这也是我校计算机国家级实验教学示范中心实验课程一直遵循的教学理念。
2 实验教学体系构建
数据结构实验教学体系以理解抽象的理论知识、掌握典型的应用以及利用数据结构知识求解实际问题的创新探究能力为教学目标;实验教学内容的题目设置以多层次、立体化为宗旨,由基础到应用,由易到难,循序渐进,分为验证型、设计型以及应用性探究式综合创新型3个层次实验;借助于购置的希冀在线实验平台开展在线验证型实验和设计性实验,具体实现形式为验证型实验为在线课前预习形式开展,设计型实验为线上基础实验,二者均为在线自动测评实验;线下应用性探究式综合创新实验则以问题求解为驱动,“教师引导,学生主导”的方式,以2或3名学生为1组的组长负责制从教师所提供的题目中选择或自拟题目并通过任务模块化、探究、讨论以及教师答疑等方式逐步完成实验题目,并组织学生以组为单位进行项目展示,考核机制为过程和结果相结合的综合考核评价机制,并通过教师、学生不同角度评价得到最终的考核结果。最后,鼓励学生进一步完成数据结构课程设计、参加开放实验项目、校企合作项目以及参加竞赛等,引导学生综合运用所学知识解决实际应用问题。数据结构实验教学体系如图1所示。
2.1 实验教学目标
实验教学目标为理解抽象的理论知识、掌握典型的应用以及利用数据结构知识求解实际问题的创新探究综合能力3个层次。
理解抽象的理论知识是开展数据结构实验的基础。强调达到理解、验证基本概念,即在理解和掌握数据结构基本概念的基础上实现所学数据结构中涉及的基本操作。
掌握典型的应用是学习算法设计和完成后续实际应用问题的核心,即完成后续应用性探究式综合创新型实验。强调掌握每种数据结构中的一些经典应用和算法,并具备通过数据结构和算法设计思想解决简单的实际应用问题,进而举一反三为后续的高阶实验做准备。
利用数据结构知识求解实际问题的创新探究综合能力是最终完成应用性探究式综合创新型实验的关键。强调将探究式学习能力、创新思维能力和问题求解能力相结合发现问题、解决问题,将实际问题抽象为数据结构的逻辑结构和存储结构,并设计高效的算法解决实际应用问题。
2.2 实验教学内容
对应于实验教学3个层次的目标,实验教学内容分为验证型、设计型和应用性探究式综合创新型3部分实验内容。
验证型实验部分与理解抽象的理论知识的实验教学目标相对应。通过验证基本概念、实现数据结构、相应的基本操作并进行简单调用,使学生加深对概念和数据结构相应知识点的理解,提高学生的代码实现能力。如线性表结构中,链表及其基本操作的实现和简单的调用;如队列结构中,循环队列及其基本操作的实现和简单的调用,验证队列的空和满操作;例如,图结构中邻接表、邻接矩阵及其基本操作的实现和简单的调用。
图1 数据结构实验教学体系
设计型实验部分与掌握典型的应用的实验教学目标相对应。通过将教材中以伪代码形式给出的典型应用算法等转化为可运行的代码,或启发学生通过调用验证型实验已实现的部分数据结构及其基本操作并结合算法设计思想解决一些简单的实际应用问题,从而达到拓宽学生视野、启发学生思维、提高学生的算法设计和实现能力的目的。这些经典应用、算法和简单的实际应用问题的特点是相对于复杂的实际应用可以较直接的抽象出与之对应的数据结构,并采用何种算法解决该问题。如车厢调度问题、括号匹配问题,这些问题可以通过选取适当的数据结构、利用基本操作的调用和算法思想进一步设计和实现;例如,图结构中的普利姆、克鲁斯卡尔、迪杰斯特拉等经典算法,可在实现经典算法后将其用于解决更复杂的实际应用问题,为后续完成应用性探究式综合创新型实验做准备。
应用性探究式综合创新型实验部分对应于利用数据结构知识求解实际问题的创新探究能力的实验教学目标。教师为学生提供多个实际应用问题的相关题目,学生自行组队并确定组长,可从教师所给题目范围内选题或自拟题目。教师所提供的题目如互联网域名查询系统、校园导游咨询、学期授课计划编制、CCSP大赛、ACM大赛等程序设计竞赛题目。这些题目与上述的设计型实验相比,题目本身复杂度更高,数据和处理更复杂,在问题的描述中也无直接的信息说明使用某种数据结构,学生需要分析要处理的数据、数据关系以及要做的何种操作,进而选择合适的一种或几种数据结构结合起来并设计算法解决该问题;同时,学生也可自拟题目。通过完成应用性探究式综合创新型实验,学生对所学相关知识有更深刻的体会,同时可培养学生解决复杂问题的综合能力和高级思维,进而达到课程学习的总体目标。
2.3 实验教学方法
验证型和设计型实验学生均在线上完成,借助线上平台中教师课前准备的教学资源,包括实验教学文档、相关教学视频、较难知识点动画演示以及实验常见问题解答等相关资源,以学生自主学习资源完成线上题目(验证性和设计型实验题目),教师及时提供提示和答疑为主,并强调实验环节紧跟理论教师的授课进度,学生可不受时间和空间的限制,在教师规定的时间前完成验证型实验和设计型实验部分内容。其中,自主学习资源为实验教学文档,具体包括数据结构课程实验实施方案、在线实验平台的使用手册、相关教学视频、较难知识点动画演示以及实验常见问题解答等相关资源,实验课程课件(幻灯片)、实验环境安全手册、实验报告封面和模板以及实验注意事项等。验证型实验设置在理论教师教授完基本概念之后,以在线课前预习的形式给出,要求学生在线完成,教师可在在线平台查看学生进度,检查、监控实验完成情况和过程,同时提供在线和论坛答疑;在设计型实验部分,设置章节结束后在新的章节开始前,教师将提醒学生,在完成设计型实验实现数据结构的各基本结构的基本操作时,不要仅局限于教材中提供的基本操作,可根据实际用途自行增加或扩展必要的操作,启发学生根据所学知识积极思考、灵活运用、提高算法设计和实现能力,同时本部分教师可与学生实时互动答疑或以论坛答疑(师生和学生间交流)或视频的形式讲解,并实现实验过程的监督、检查以及查看学生的实验进度和实验完成情况,并将共性的难点及时总结,在后续的线下课堂上集中讲解。
应用性探究式综合创新型实验在线下以“教师引导,学生主导”的项目驱动形式开展。应用性探究式综合创新型实验题目,以小组为单位完成,2或3名同学为1组,采取组长负责制,题目可从教师所提供的题目中选择或自拟题目,题目均为较复杂的实际应用问题,首先方案设计、教师评估,评估通过后组织学生以组为单位进行项目展示,包括演讲、答辩以及评价交流,了解不同解决方案,通过交流分享遇到的问题及解决方法,进而拓宽设计思路。
上述教学方法把传统学习方式的优势和在线学习的优势相结合,既发挥了教师引导、启发、监控教学过程的主导作用,又充分体现了学生作为学习过程主体的积极性、主动性与创造性。
这里需要说明的是,每章节的验证型实验和设计型实验均要求学生在本章对应的线下实验开展前完成,数据结构实验共16学时,线上实验由于不受时空限制不占用学时数,每次线下实验均为4学时,最后一次实验进行项目展示、答辩及评价,项目展示的题目范围为前3次实验(由于学时限制第4次实验题目的相关内容在报告中考察)任选1题进行项目展示及答辩,教师评价、学生以组为单位互评最后综合实验报告等计入考核。
2.4 辅助教学手段
验证型、设计型实验部分以及教学资源均以计算机实验示范中心购置的在线实验平台为辅助实验教学手段,包括注册、发布实验资源、在线实验、自动测评以及在线答疑等,作为线下“教师引导,学生主导”的应用性探究式综合创新型实验开展的基础。目前,在线实验平台中已经积累了一定数量的验证型实验题目。其中,验证型实验题目,学生以个人为单位完成,以预习题目形式布置给学生,具体形式为选择、填空、整体编程或程序片段,目的是在实验前帮助学生扎实理论基础,题目内容主要为理论知识及基本操作的代码实现等;设计型实验题目,以编程题目为主,具体为整体编程或程序片段题目,题目内容以经典算法或简单的实际应用问题求解为主;教学资源主要包括教师提供的实验教学文档、实验指导书、教学视频、较难知识点动画演示、实验报告模板、实验注意事项以及实验常见问题解答等。
应用性探究式综合创新型实验,由于其需要教师投入较多的精力设计布置题目、指导实验全过程,包括方案评估、答辩、交流、评价与综合考核等,因此后续考虑增加助教,减轻教师工作量,使教师有更多的精力设计完善实验体系,进一步提高实验教学质量。
2.5 实验考核方式
考核机制为实验全过程和实验结果相结合的综合考核评价机制,考核结果根据线上课前预习、在线基础实验、线下应用性探究式综合创新型实验项目等环节的完成情况和实验报告综合得到。综合考虑在线平台的在线自动测评结果、线下方案设计、任务完成、学生参与、团队合作、项目展示以及答辩等情况,进行教师评价、自我评价和学生互评得到综合评价,最终得到考核结果。
3 实验教学内容设计
实验教学内容采取多层次、立体化、由易到难的设置方式,数据结构实验共16学时,包括验证型、设计型和应用性探究式综合创新型实验3大部分,具体以课前预习、线上基础实验以及线下应用性综合创新型实验3个阶段的形式开展。其中,验证型和设计型实验均在线上平台开展,由于不受时空限制,因此线上实验不占用学时数;线下实验共4次,每次4学时(如某学生小组当次未完成线下实验,可课后额外根据本组情况自行安排完成题目)。课前预习要求学生在教师教授完理论知识后设计型实验布置前随即完成验证型实验,内容为基本概念和数据结构及其基本操作的实现;设计型实验要求学生在实验课前完成,内容为典型算法的实现、使用简单操作和算法设计思想解决较简单直接的实际应用问题;应用性探究式综合创新型实验主要为日常生活中较复杂的实际应用问题,学生可从教师提供的题目中选择,也可从实际问题出发自拟题目。
课程第1阶段为课前预习阶段,教师设定完成预习的截止时间,每名学生独立自行选择时间完成题目,并在此基础上完成第2阶段的设计型实验实现典型算法或调用验证型实验已实现的基本操作(可开拓思维,自行增加并实现合适基本操作,不仅限于教材提供的基本操作)并结合算法设计思想解决简单的应用问题,每章节的验证型实验和设计型实验均要求学生在本章对应的线下实验开展前完成。接着,在第3阶段,由学生自由组队,每组2或3人,采用组长负责制完成,学生小组根据需求合理提出解决设计方案,由教师评估,评估时教师需要注意学生设计的规范性,引导学生在设计时养成良好的开发习惯;评估通过后,学生以组为单位,采用团队协作的方式用4学时完成实验;最后,由学生以组为单位向全体师生进行项目展示,题目范围为前3次实验(由于学时限制,第4次实验题目在报告中考察)任选1题进行项目展示,包括演讲、答辩以及评价交流,了解不同解决方案,通过交流分享遇到的问题及解决方法,进而拓宽设计思路。
3.1 课前预习
基础理论的掌握是整个实验完成的基石,贯穿整个实验过程。课前预习部分的目的是巩固理论基础知识,其主要实验内容为在线教学资源的自主学习、基础知识复习和完成验证型实验,课前预习依托于在线实验平台展开,按照功能可分为教师引导、学生自主学习、答疑论坛以及线上作业4部分。
课前预习部分以验证型实验为主,注重基础知识的学习,巩固理论知识,训练学生对基本数据结构及其基本操作的代码实现,主要包括顺序表、栈、队列、树、图、查找和排序的基本数据结构及其基本操作的代码实现和简单调用。
下面就教师引导、学生自主学习、答疑论坛以及线上作业4部分分别阐述。
(1)教师引导部分。该部分依托于在线实验平台提供教学资源的演示、下载,主要包括教师提供的实验教学文档、相关教学视频、较难知识点动画演示以及实验常见问题解答等相关资源(这里需要说明的是,课程初期,教师首先通过学委发布通知,将数据结构实验课程介绍及在线实验平台手册分发给学生,要求同学自行阅读)。
其中,实验教学文档为数据结构课程实验实施方案、在线实验平台的使用手册、实验课程课件(幻灯片)、实验环境安装手册、实验报告封面、实验报告模板以及实验注意事项等。数据结构课程实验实施方案主要内容为数据结构实验的整体授课模式介绍、实验学时、实验环境、使用语言、实验成绩组成和实验报告上交时间等;在线平台使用手册的内容为在线平台的网址、实验平台操作流程,需要注意的是需要在操作流程中提示学生的初始登录账号和密码,并及时更改自己的密码以免后续课程中出现不必要的麻烦;实验课程课件即课前预习阶段部分的验证性实验课件中的内容为实验目的、实验要求、实验内容及步骤、思考题等;实验电子指导书为“数据结构实验教程”的电子版以供学生参考。
在线实验平台上提供较难知识点动画演示资源,该资源提供了网络上相关优质资源的网址以供学生学习观看,以化抽象为具体、化繁为简的方法,以动画演示和图文并茂的教学方式,令课程更加生动有趣,使“难”懂的问题变得容易理解。动画展示数据结构中的各种实验,使学生对各种结构特性一目了然,如向学生演示数据入栈和出栈操作,加入图像、Flash动画等辅助措施后,不仅能够提高数据结构知识讲解的条理性,还可以使枯燥的理论变得有趣味。通过在线实验平台提供实验动画展示的多样化教学手段,可以不断增进教学质量,充分调动学生的学习热情,培养和提高学生的学习能力。
(2)学生自主学习部分。学生自主学习区提供课程的基础知识复习题目、验证型实验项目等。上述均可由在线实验自动测评,学生可在完成题目后看到自己的测试结果,根据测试结果及时了解自身学习情况,有针对性地学习相关知识,通过完成相应的基础知识复习题目或验证型实验项目可进一步加深对知识的理解和运用。
(3)答疑论坛部分。该部分提供了师生的交流平台,包括教师在线答疑和平台论坛答疑等,以教师提示指导但不直接给出答案或解决方案,学生之间相互交流学习遇到的问题、解决方法和创新思路的形式为主。
(4)线上作业部分。线上作业部分实现学生在线提交实验作业和教师手动评定。基础知识复习和验证性实验均依托于在线平台上展开,并以作业的形式发布给学生。基础知识的复习以填空或选择的形式在在线实验平台上展开,由在线实验平台自动测评;验证性实验是对理论课程教学内容的体现,侧重于加深学生对于理论知识点的理解、掌握基本的实践技能,验证性实验紧跟理论教学进度,由学生自行安排时间及时在线上完成,由在线实验平台自动测评和教师手动相结合的形式对题目答案进行评定。实验教师通过平台对线上作业进行在线监控,通过学生作业完成情况及时掌握学生学习状况与进度,促进学生理论课后的复习,并对学生遇到的问题及时进行提示和答疑,保障该部分实验教学效果。
3.2 线上基础实验
(1)线上基础实验内容的设计。线上基础实验主要指设计型实验,依托于在线实验平台展开,具体包括典型的应用型题目或基于调用验证型实验部分和算法设计思想可完成的简单实际应用题目(相对于应用性探究式综合创新型实验题目复杂程度较低)。开展时机为每章章节结束。题目的设置原则为围绕本章节知识点,通过运用本章节所学知识点、实现算法、设计程序完成典型的应用型题目或较简单的实际问题相关的项目,旨在培养学生运用所学知识解决实际问题的能力。和下一阶段的较复杂性应用问题相比,本部分应用任务相对简单、直接,可以从任务描述中较直接、容易地获知使用哪种数据结构。该部分实验内容的题目以在线实验或作业的形式布置给学生,题目如复数四则运算、括号匹配问题、哈夫曼编码、平衡二叉树演示、图遍历生成树等,或是ACM竞赛、CCSP竞赛等各类程序设计竞赛曾出现过的与数据结构相关并符合题目设置原则的实验项目,这些应用可通过使用验证型实验已定义好的数据结构、基本操作及算法思想设计和实现。
(2)线上基础实验的指导。该部分虽然依托于在线实验平台展开,把线上及时指导和线下课堂指导充分融合,为学生提供灵活高效的学习途径,学生可通过自学加教师答疑的方式完成实验,教师及时总结学生的实验情况,总结存在的问题和不足,将共性的问题在线下实验开始的时候对上述问题集中讲解,形成良性的反馈机制。学生根据需要完成线上基础实验,通过学习教师提供的各类资源,如通过观看较难知识点动画演示的资源,加深对算法的理解,进而实现并完成线上基础实验;教师提供平台在线论坛、在线即时答疑与线下答疑相结合的方式为学生解答问题,线上基础实验在线上开展,学生可在完成线上基础实验的同时在线提问,教师及时解答,学生可在解决问题后继续完成当前实验,充分有效地提高该部分的学习效率,同时,在开展线下应用性综合创新型实验前,学生亦可根据自身情况或问题的复杂程度选择与教师当面交流,教师给出提示,引导学生解决实验过程中遇到的问题,多种形式的答疑方式促进了师生交流,激发学生的学习热情,使学生在遇到问题时可以得到适时的帮助;最后,教师反思和总结学生的实验情况,包括学生存在的不足和问题等,在线上应用性实验开展前,有针对性地对共性问题进行集中讲解,形成良性的反馈机制,加深学生对理论和算法的理解掌握。
线上基础实验部分巩固了学生对基础知识的理解,通过实现简单的应用为下一阶段的线下应用性综合创新实验的开展做准备,是从课前预习阶段到线下应用性综合创新实验阶段的过渡阶段,循序渐进的题目设置,起到承上启下的作用,培养了学生的自学能力和实践能力。
3.3 线下应用性探究式综合创新型实验
数据结构课程及其实验的教学目的均为培养学生的逻辑思维、数据抽象能力和团队意识等,从而提高学生综合运用数据结构所学知识解决实际问题的能力。针对上述教学目的设置了线下应用性探究式综合创新型实验,主要围绕解决应用性探究式综合创新型的实际应用项目展开。
(1)实验教学内容设计。线下应用性综合创新型实验的题目设置采取技能和项目融合在一起,能体现相关知识与实际问题联系的设置原则,旨在培养学生综合运用多个知识点解决实际问题,由旧知识构建新知识的创新能力。同时,以团队合作的形式完成题目有利于提高学生的学习兴趣,进而达到能力培养的目的。该部分实验内容的题目可以是教师提供备选题目,或是学生根据题目设置原则从实际生活中发现问题自拟题目,学生小组讨论决定选题。其中,教师提供的题目如公交车站台排队问题、商品库存信息管理系统、互联网域名查询系统、学期授课计划编制、校园导游咨询等,或是ACM竞赛、CCSP竞赛等各类程序设计竞赛曾出现过的与数据结构相关并符合题目设置原则的实验项目。
(2)实验教学指导。线下应用性综合创新型实验的课程形式为“教师引导,学生主导”,教师检查、监控并引导学生完成实验,注重方案评估、设计、程序分析、测试、程序错误和算法的分析。学生作为课程主体,2或3人自由组成实验小组,以小组的形式根据需求合理提出解决设计方案,由教师评估,评估时教师要注意学生设计的规范性、提出的问题与实际问题和理论的相关性、问题的深度是否适当等,并提出修改意见,引导学生在设计时养成良好的开发习惯;评估通过后利用课堂时间完成实验,教师在学生完成实验时提供引导和答疑,并及时对共性问题进行统一讲解,并记录学生在实验过程中的参与度等;最后,由学生以组为单位向全体师生进行项目展示,形式不限,可以是幻灯片、视频、动画等形式以引起学生的兴趣,题目范围为前3次实验(由于学时限制第4次实验题目在报告中考查)任选一题进行项目展示,展示汇报过程中教师需要及时对汇报内容进行总结、提出相关的问题让学生思考,项目展示具体包括演讲、答辩以及评价交流,了解不同的解决方案,分享遇到的问题及解决方法,进而拓宽设计思路。
3.4 在线课后习题
在线课后习题以自愿的方式在在线实验平台全程提供给学生,方便学生复习和加深对知识点的理解使用。课后习题一般以章节为节点,每章节后紧跟着该章节对应的课后习题。习题针对一点展开,以需要实现主算法或给出部分程序补全算法的编程片段题的形式给出,如两个非降序链表的并集、采用递归方法实现汉诺塔问题、求二叉树的高度和结点数以及编写算法将有向图的邻接表转换为相应的逆邻接表等。
3.5 交流与答疑
针对课前预习、线上基础实验、线下应用性综合创新型实验以及在线课后习题开展不同形式提供交流与答疑。上述4部分实验内容的设置与设计需要教师精心设计实验,并对教师的理论及实践能力有较高的要求。同时,需要投入较多的时间和精力准备实验、实时线上答疑、及时在线下指导的过程中发现问题、启发并引导学生完成复杂的应用性探究综合创新型实验。
交流与答疑以线上实时答疑、论坛答疑以及线下“教师引导,学生主导”相结合的形式开展,在实验教学的各个环节中,教师、学生的分工明确,相互独立又交叉互动。教师线上提供实时答疑可即时解决学生在线上学习过程中遇到的问题,使学生不会出现“无助”的状态,保障了线上教学的有序开展;论坛答疑为教师和学生提供了更广阔的交流空间,以论坛的形式展开讨论,学生可在提问和回答中找到共鸣,适合于解答共性的问题;在教师的提示和引导下,学生能主动思考问题,或主动向教师或同学请教进而解决问题。
线上、线下形成互补,教师不但能够及时解答学生提出的问题,还能够进行优秀项目的展示,形成了良性的反馈机制。
4 实验考核要求与评价方法
建立规范的考核标准与考核制度,能够使教师和学生有章可循,确保实验教学体系的有效构建和实验方案的圆满实施,充分落实实验教学内容。
实验考核以实验的全过程和实验的结果综合考虑为依据,目的为改变传统的考核制度。考核结果根据线上课前预习和在线基础实验完成情况、线下应用性探究式综合创新型实验项目完成情况和实验报告部分综合得出。线上课前预习和在线基础实验占实验成绩的30%;为突出实践性项目,即线下应用性综合创新型实验项目的重要性,实践项目部分占实验成绩的50%,将方案设计、任务完成、学生参与、团队合作、项目展示以及答辩等情况引入考核与评价指标,并引入学生互评模式,教师作为总裁判公平客观地记录评价结果,最后综合学生评价和教师评价给出该部分考核结果;学生提交实验报告,实验报告内容包括需求分析、概要设计、详细设计、调试分析、使用说明、测试结果及附录(源程序),实验报告成绩占实验成绩的20%;学生根据自身情况,自愿完成课后习题,达到复习的目的,但如有学生完成课后习题可适当提高其相应的实验成绩,但前提为不高于最高成绩。
多样化的考核方式能促进学生自始至终努力完成实验部分,避免了学生只注重理论知识的学习、死记硬背理论知识的情况,达到重视实践的目的。教师需要客观公正地进行考核评价,促进学生学习,形成良性的互动模式。
5 实验教学效果
通过对计算机、物联网、电子以及通信等专业约590名学生的数据结构实验教学进行改革,并选择某一时刻监控学生在线实验完成情况得到如图2所示的数据。因学生的空闲时间根据课表有一定的规律等原因,因此出现在某一时间段对平台的使用率较高的情况。
同时,采取数据结构实验教学改革后,从学生报告的课程总结及实验平台中的数据统计得到效果统计数据表如表1所示。可以看出实验的参与度、实验的完成度和多层次立体化的实验设计比较适配。
图2 学生在线实验完成情况
表1 实验教学效果统计数据表 %
学生的实验参与度、题目完成度与多层次立体化的实验设计比较适配。对在线实验平台的满意度和对较难知识点动画演示的满意度,反映了学生的接受度较好。同时,平台运行期间基本稳定,有效辅助了实验教学,取得了良好的效果。①教学资源和教学的时空延展增加了学生的有效学习时间;②多层次、立体化的实验内容设置,有利于学生逐步提高学生综合能力和创新思维能力;③有效的师生互动形式,良性的及时反馈评价机制,综合的全过程考核评价方式。
通过使用在线实验平台与线下“教师引导,学生主体”的课堂教师指导相结合的方式,学生巩固了自己的基础理论知识,并通过平台的自动评测将算法转化为可运行代码。同时,有能力的同学能够通过应用性探究式综合创新型实验题目继续通过数据结构知识解决日常生活中的实际应用问题,有效提高了解决复杂问题的综合能力和创新思维能力。
6 结 语
数据结构课程由于在计算机及其相关专业课程体系中的重要性,近年来一直是计算机及其相关专业课程建设的重点,实验与实践教学更是数据结构教学的必要环节。通过对数据结构实验进行金课建设教学探索,把课堂教学和线上学习充分融合,通过为学生提供灵活高效的学习途径,逐步实现培养学生发现问题、解决问题的个人能力,注重引导学生进行自主学习、深入思考,在实验课程中强化解决实际问题的能力。未来考虑增加助教,减轻实验教师的工作负担,使实验教师能有更多的精力投入到实验的设计、实验内容的设置、丰富题目和增加题目数量上,并保障上述实验的各个环节更加有效地实施。