数据结构课程教学改革研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构课程教学改革研究
作者:徐佳黄海平王海艳
来源:《科技资讯》2011年第32期
摘要:《数据结构》课程是计算机专业一门重要的专业基础课,在专业课程体系中起着承上启下的重要作用。《数据结构》课程的教改研究已经成为热点。本文首先提出了数据结构教学中出现的问题,详细分析了导致这些问题的原因;接着从知识关联、教学手段、网络课堂、课程交叉和考核方式等方面提出5项改革措施,并进行了实践;最后提出进一步改革的设想。
关键词:数据结构教学改革知识关联网络课堂
中图分类号:G642.0 文献标识码:A 文章编号:1672-3791(2011)11(b)-0169-02
《数据结构》课程是计算机专业的一门专业基础课,教学的主要内容为数据的逻辑结构、存储结构及核心操作的算法设计与实现,是计算机程序设计的重要理论技术基础。学习数据结构就是要让学生学会分析、研究计算机加工处理的对象即数据的特性,以便能根据其特性选择恰当的逻辑结构、存储结构及实现相应功能的算法,并初步掌握对算法的时间和空间复杂度的分析[1]。
鉴于数据结构课程的重要地位,许多学校和教师都对数据结构课程进行了有益的探索和改革。但在实际教学中仍然存在一些问题,本文首先提出了数据结构教学中出现的问题,详细分析了其原因;其次有针对性地提出了5项改革措施并进行了尝试,最后提出了进一步改革的设想。
1 存在的问题及其原因
通过教学实践,发现学生一般都能认真对待本课程的学习,但教学效果并不十分理想,主要存在以下两个问题。
(1)没有从学科的高度把握数据结构课程,没有充分发掘将数据结构与各专业课程的内在关系,教学时往往局限在本课程范围内,缺乏应用实例。事实上,数据结构是大部分计算机专业课程的基础,如何做到即有丰富应用实例,又启发学生对后续课程的兴趣是值得研究的问题。
(2)学生开始学习时很积极,时间一长便没有了动力,感觉枯燥无味。许多学生认为数据结构中各种算法的学习十分枯燥,经分析有以下三点原因:一是不明白学习这些算法有何意义;二是读算法停留在表面,无法领会算法的思想;三是学习大量现成的算法,毫无成就感。
(3)学生缺乏足够的创新能力,这一方面由于教学中缺乏对学生创新思维的训练;另一方面是学生创新意识不足,缺乏创新载体。
结合实际教学经验,笔者分析了产生上述现象的5个原因。
(1)学生基础薄弱。
程序设计语言和离散数学是学习数据结构课程的基础,通过程序设计语言的学习,使学生经过必要的程序设计训练,形成一定的程序设计抽象思维能力。而离散数学使学生理解计算机的运算规则,形成计算思维。然而,部分学生尤其是非计算机专业学生的程序设计能力偏弱,也缺乏从计算机角度考虑问题的思维习惯。对于这些学生来说,知识基础薄弱,原有的知识体系不完善,数据结构的相关知识找不到生长点,导致难以理解数据结构中的概念和算法。即使领会书本知识,由于编程能力欠缺,很难应用所学知识。时间一长,学生缺乏自信,学习热情衰退,产生厌学情绪。
(2)课程本身较抽象。
数据结构课程本身是一门抽象程度较高的课程,对于缺乏实际应用经验的学生来说,理解起来具有一定难度。不少同学反映学完该课程之后不知道能用在什么地方、能够解决什么问题,即使教材上所讲内容都完全掌握,仍然无法应用到实际问题当中。很多学生除了课堂上讲的例子外,找不出该知识点的其他应用,同时遇到实际问题时,也想不出该问题的抽象数据类型。
(3)学习缺乏主动性。
不少学生满足于掌握课堂讲授的知识和完成布置的作业。然而课堂学习受课时限制,很难进行深入和扩展,这导致学生只停留在数据结构的基本概念和原理上,在学习的意义,数据结构的应用和更深层次的理解上缺乏思考,从而使得知识的应用和迁移能力较差。
(4)学习方法不当。
数据结构是培养学生的抽象思维能力、逻辑推理能力,锻炼学生分析问题、解决问题的能力的课程。建立完整的知识体系,使知识融会贯通,并能灵活应用是教学的最终目标。有部分学生死记硬背概念和性质,生搬硬套书本上的存储结构和算法,这完全背离了培养目标。另一个普遍的问题是对上机实验准备不足,在宝贵的上机时间内忙于设计程序结构,编写代码,从而失去了调试代码,发现问题解决问题,以及与指导教师进行交流的机会。
(5)教学方法有待改善。
由于数据结构课程的重要性,相应的教学改革十分受重视。各种教学方法和教学思路被提出,如情境教学[2]、构建主义[3]、研究性教学[4]、启发式教学[5]等。但仍有一些问题,如知识体系不清晰,重点不明确,只讲算法过程不讲算法原理,缺乏案例,讲授内容过于抽象等。
2 教学中采取的措施
总结出问题产生的原因后,我们有针对性地采取了以下5个措施。
(1)广泛联系,不断复习,逐步扩展。
数据结构内容较多,对于各种数据结构如果分别单独学习,很容易将各种数据结构人为地分离,学生很难做到融会贯通和综合应用。事实上,许多实际问题需要综合多种数据结构,利用各种数据结构的优点配合使用。因此每学完一个新的数据结构后,有必要结合之前学习过的数据结构,设计一些多种数据结构综合或对比的思考题。例如,如如何用两个栈实现一个队列,基于两种不同存储方式的大整数运算及性能比较,如何设计算法能够对树的顺序存储和链式存储进行转换等。
除了精心设计的题目外,在授课过程中遇到之前讲授过的知识也应及时提示学生,让学生有一个回忆和复习的过程,如链式存储的线性表的插入、删除操作与单链表十分相似,可以在单链表基础上经过简单扩展得到;森林的遍历与对应的二叉树遍历存在等价关系,可以通过验证说明两者的等价关系;树的孩子兄弟表示法和二叉树中的二叉链表存储是一致的,可以进行对比演示;森林和二叉树的相互转换是相逆的操作,可以在学习完其中一个方面的转换后,马上得到另一方向上的转换方法;二叉搜索树的存储结构实际上是集合存储结构和二叉树存储结构的组合;有序表的搜索算法是对无序表搜索算法的一种改进等等。
(2)应用现代化教学手段变乏味抽象为生动具体。
数据结构课程中的各种结构和算法十分抽象,理解起来有困难。教师可以借助现代化的教学手段使讲授内容变得生动具体,单链表结点的插入、删除中的指针修改、循环队列的使用、各种排序算法、二叉搜索树结点的删除、二叉树的遍历、递归调用等难点算法都可以用动画演示,这样理解起来更加直观生动。另外可以网上下载或者自行设计算法演示软件来演示算法。算法演示软件比单纯的动画更好一些,它可以进行参数更改、单步执行、回退,有助于深入理解算法。
(3)因材施教,重在网络课堂。
利用网络课堂辅助教学对改善教学效果十分有益。借助网络课堂的发布功能,可以把电子教案、多媒体课件、参考资料、课后习题、教学录像等各种课程资源提供给学生;另外,网络课