数据结构课程教学方法研究
谢红侠,张艳群,徐慧,张辰
(中国矿业大学 计算机学院,徐州 221116)
摘要 《数据结构》是计算机科学与技术专业中的一门重要的专业基础核心课。也是一门理论性和实践性都很强的课程。本文分析了目前数据结构课程教学中存在的一些问题,并针对这些问题提出了一些合理的教学手段来提高教学效果。 关键词 数据结构;教学改革;实践教学;互动式教学
1 引言
《数据结构》是计算机科学与技术专业中的一门重要的专业基础核心课, 它不仅是大学计算机专业的核心课程之一, 也是非计算机专业的主要热门选修课程之一。课程旨在使学生了解数据的特性, 学会分析研究计算机加工的数据结构的特性,以便为应用设计的数据选择适当的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间分析技术,另一方面,数据结构也是复杂程序设计的训练过程,要求学生编写的程序结构清楚和正确易读,符合软件工程的规范。
数据结构是一门理论性很强的课程,课程还具有高度抽象、内容丰富,学习量大、需要运用较难掌握的先修课程知识、隐含在各部分的技术和方法丰富等特点。学生普遍反映在课堂上能听得懂,但是做实验动手编程实现各种数据结构时就不知从何下手了。也有些同学觉得数据结构理论性太强,不知道哪些知识能在实际应用中用得上。
2 教学中存在的问题
通过近几年的教学研究,笔者认为教学中存在的问题主要有以下几个方面。
(1) 课程内容抽象, 有时利用简单的课件也无法将理论知识完全表达清楚; 另外学时有限而课程内容繁多, 加大了教师的教学难度。教材中列出的常见数据结构, 如顺序表、链表、队列、堆栈、树、图等, 还有各种查找方法、排序方法以及分析和计算, 使得很多学生在学习时虽然能够掌握各种数据结构的一些基本知识, 会做题, 能应付卷面考试, 但始终不能理解学习数据结构课程的意义, 不能形成对课程内容的整体概念, 不知道这种数据结构为何存在、如何变化, 在实践过程中更缺乏灵活运用的意识。
(2) 学生知识的储备不足。数据结构的先修课程主要包括离散数学和程序设计语言, 很多学生对于先修课程掌握不熟, 导致本课程的学习难度加大。例如, 程序设计语言课程中重要的知识点指针、函数以及结构体, 对于数据结构的学习是相当重要的, 而很多学生却没有熟练掌握, 编程能力不足。仅仅借助一门程序设计语言课程的学习, 学生很难完全掌握程序设计的方法和理论, 更谈不上融会贯通。这就导致在学习了一个算法后, 不会用程序来实现它, 很多学生由于上面的原因, 对本课程失去兴趣。
(3) 数据结构中阐述的抽象数据类型,有其于应用的好处,然而这种抽象性反而如一堵墙挡在了它与学生之间,使学生在应用时常常觉得麻烦或无从下手。如何将这堵墙转变成一架桥梁是广大教师需要考虑的问题。
(4) 实验是加强学生应用能力的重要环节。目前的情况是实验学时不足,学生除了实
谢红侠(1980~)讲师,硕士,研究方向:数据仓库,数据库。张艳群(1977~)副教授,硕士,研究方向:数据结构,数字水印。徐慧(1980~),讲师,硕士,研究方向:数据挖掘。
现教材中的基本数据结构及其算法外,得不到更多的训练。
(5) 有些教师对课程的理解不够深入, 特别是没有把理论与实际应用问题联系起来, 导致学生学习该课程感到枯燥无味。
对于上述的几个方面, 我们在教学过程中有必要对课程结构及内容条理化、形象化, 从而降低知识要点本身的难度,, 要因势利导, 针对不同的对象, 层次不同的学生, 并结合学生自身所需, 有个性地进行教学根据教学内容和学生实际情况, 提出一些富有启发性的问题, 让学生积极思考, 深入探讨, 并提出解决问题的方法, 这样, 学生获得了知识, 又培养了其分析问题、解决问题的能力, 学生在学习上更主动、更积极, 提高了学生的学习兴趣及学习的主动性和创造性。
3 综合运用多种教学方法
3.1 互动式教学
互动式教学,是在教学过程中教与学双方交流、沟通、协商、探讨,在彼此平等、彼此倾听、彼此接纳、彼此坦诚的基础上,通过理性说服甚至辩论,达到不同观点碰撞交融,激发教学双方的主动性,拓展创造性思维,以达到提高教学效果的一种教学方式。
比如在图的深度优先遍历这个问题中,可以先提问学生在树的先序遍历是如何实现的,遍历路径是怎样的,然后再讲解图的深度优先遍历思想,并有意识的将例题中的图画成有层次感,类似于树结构的图,这样学生就将图的遍历跟已经学过的树的遍历联系起来,使得新的算法不再难理解,而对算法的实现学生也能立刻通过类比知道应该用栈来实现。同样的道理在讲解宽度优先遍历时学生根据树的层次遍历的思想也很容易想到应该借助队列实现。这样激发了学生的兴趣,引起他们的好奇心和求知欲,同时也能培养学生解决实际问题的能力。
3.2 将可视化的多媒体教学方式与传统的板书教学方式相结合
传统的板书讲解方法能够使学生有足够的时间思考和消化教师讲解的内容,而且还可以通过举例等手段让讲解更形象。但是学生的程度不同,吸收知识的能力也不同,黑板一擦,学生只能凭记忆复习。而多媒体手段比板书讲解更生动,其次,它利于保存,便于作为一种学习资料供学生课后复习。而实践也证明了图、文、声并茂比单纯文字叙述更有助于学生理解和长期记忆。但现在许多教师一味强调多媒体手段的好处,摈弃传统的板书教学也是不妥当的。可以把多媒体手段作为板书教学的必要补充,两者相辅相成。充分发挥多媒体教学软件作为课堂和课后的补充教学手段的作用。
在教学中可以选用国内外优秀的数据结构多媒体软件,也可以由教研组组织教师开发符合自身教学需求的类似软件。我们在教学中就选用了清华大学提供的数据结构演示软件,该软件除了演示算法过程外,还有以下特点:(1)允许学生输入,进而观察不同条件下算法的演算过程,不仅更具灵活性,还培养学生主动探索的精神。例如演示起泡排序,观察选取不同的初始序列对效率的影响。(2)算法演示过程的单步控制功能,便于学生控制和观察演算过程。(3)增加互动部分,如演算到某一步骤时暂停提出问题让学生思考。(4)算法演示的每一步骤的动画画面与其对应的伪码置于同一界面显示,方便学生比对学习。
3.3 教师博客与数据结构教学
课堂时间毕竟有限,学生在课余学习过程中还需要与教师多交流,目前采用最多的Email 方式功能过于单一。课程的学习系统也提供了诸如论坛这类形式的交流平台方便师
生互动,不过这种方式缺乏个性化色彩,也往往受到教育网或校园网的访问。所以,教师还可以利用诸如个人博客的方式加强专业学术交流的氛围。教师可以将自己的教学理念、学习心得以日志的形式呈现,也可以将国内外优秀网站资源的链接放置于博客中,此外,多媒体软件、实验教案也可以上传供学生下载。博客的另一个好处就是可以促进教师的自我学习、日常反思,提升教师的教学质量。
3.4加强实践环节,切实提高学生的解决实际问题能力
实验教学部分其实是数据结构教学中一个非常重要的环节。只有自己动手实现才能真正理解数据结构是什么。实验内容的安排一方面要考虑到学生专业水平和认知能力等方面的实际情况;另一方面又要调动学生的积极性,体现数据结构的魅力所在。而目前实验题目过于单一,只注重了专业课程知识点的验证实验,显然是只考虑了前一方面,而忽视了后一方面。
计算机科学是一门应用科学,学生学习的理论知识,只有应用到实际中才能检验出正确和错误。数据结构也是这样,学习并掌握其中的框架、原理和思想,目的是为应用打好扎实的理论基础。例如,在构造一个新的数据结构时,学生思维所产生的数据结构设计思路并不一定是完全正确的,往往是部分正确,甚至是全部错误的,这时就需要通过调试程序来验证算法的正确性。另外在实践过程中,学生会遇到很多细节问题,这是他们在思考的时候很少想到的,但实际上这些问题都是重要的。所以,实践的过程,实际上是训练学生完整、彻底地解决问题能力的过程。
还有,实践也要讲究一点小策略。现在学生都拥有自己的电脑,在实验课时他们并不是全部依赖实验室的电脑,所以应该充分发挥他们自己电脑的作用,上实验课之前给学生布置好相关知识点的任务,让他们课外先完成。其实实验课是老师解决学生疑问的时间,或学生展示自己的成果及同学们相互讨论的机会。这样与单纯上实验课的区别是,学生课前已经自己思考,并努力去完成。不管结果怎样,学生都会带着问题来上实验课。没实现的学生希望老师给他指点,而已经完成的学生希望参考老师的方法。对于优秀的学生,让他来讲解是怎样完成的,他们有成就感,可以激发完成下次任务的热情。当然,需要对每位学生的任务完成情况进行合理的考核,这样为了更好的肯定学生的成绩。
3.5 考核方式
目前,我们对学生学习成绩的评价采用的是平时成绩(10%)+ 实验成绩(20%)+ 期末笔试成绩(70%)。这种以期末考试为主的形式测评学生,不利于对学生进行全面的考核,使得学生不注重平时和实验的学习而为了应付考试突击学习,考试过后不知道这门课学了什么,不利于知识的掌握。而数据结构本身是一门注重理论联系实践的课程,只有通过大量的上机操作,才会对理论内容和各种算法深入地理解。因此我们提出将实验成绩的比例提高到40%,期末笔试成绩的比例相应缩减为50%,引导学生将精力更多地放在实验环节上,注重学生实践能力的培养。对于教师要加强实验教学的考核,要求学生在上实验之前要写好预习报告,实验课上来调通程序,学生教师之间进行讨论,充分发挥实验课的作用。每个实验的成绩均由实验预习报告、实验演示检查结果和实验报告三部分体现,最后汇总到学生总成绩中。
4 总结
“数据结构”是计算机相关专业的一门非常重要的课程。也是一门理论性和实践性都很强
的课程。本文讨论了目前“数据结构”教学中存在的一些问题集缺陷,为提高教学效果提出了几点策略。在实际应用中还应充分考虑到教学的需求和学生的实际情况,因材施教,以学生为中心,注重学生兴趣和能力的培养,以便更好地发挥“数据结构”课程理论指导实践的作用。
参考文献
[1] 张巧生,邓廷勇,《数据结构》课程教学方法探讨,山西科技,2009 年第1 期:36-37 [2] 贺春林,唐新国,《数据结构》课程教学改革,四川师范学院学报(自然科学版),2003,24(1):19-21
[3] 青宇航,关于《数据结构》现代教学方法的探索,教育与职业,2007, (9):151-152 [4] 赵建利,朱东升,基于多媒体平台的《数据结构》实训教学研究与实践,实践教学,2008,(22):71-72
[5] 毛养红,浅谈《数据结构》教学,中国科技信息,2009.(5):256-257
[6] 邵菊,数据结构教学实践与体会,湖北三峡职业技术学院学报,2006,3(1):92-94 [7] 连进,数据结构课程教学方法的研究,湖北经济学院学报(人文社会科学版),2008,5(5):183-184
[8] 卢雪燕,万励,谈教师博客与《数据结构》课程的教学改革,高教论坛,2008,(3):38-39,50
[9] 叶双,吴清江,缑锦等,提高“数据结构”课程教学效果的方法初探,计算机教育,2009,(21):90-92
Research on Teaching Methods of Database Theory
XIE Hong-xia, MENG Fan-rong, YAN Qiu-Yan, Ge Xin
School of Computer Science and Technology, China University of Mining and Technology
Xuzhou , 221116
Abstract \"Data Structure\" is an important basic core course in computer science and technical expertise. Theoretical and practical are the course’s distinguishing feature .This paper analysis some problems of the current database theory course teaching, and then address some reasonable means for these problems to improve teaching effectiveness.
Keywords Data Structure; Educational Reform; Practical Teaching; Interactive teaching