_数据结构_课程的教学改革与教材建设_李冬梅
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 14 期2012 年 7 月 25 日计算机教育Computer Education
38
中图分类号:G642文章编号:1672-5913(2012)14-0038-04
“数据结构”课程的教学改革与教材建设
李冬梅,孟 伟
(北京林业大学 信息学院,北京 100083)
摘 要:“数据结构”课程是计算机专业的核心课程,如何提高学生的学习兴趣,探索更为有效的教学方法和教学内容, 是“数据结构”教学改革的重要内容。文章结合教学实践,提出针对“数据结构”课程的教学内容、教学方法、教学手段、教材建设等方面进行全方位改革的思路。
关键词:数据结构; 教学内容;教学方法;教学手段;教材建设
“数据结构”课程是计算机专业的核心课程。通过这门课程的学习,学生将学会分析研究计算机加工对象的特性,选择合适的数据结构和存储表示,以及编制相应的实现算法,培养和提高学生算法设计的能力。然而,由于该课程的学习对于程序设计、抽象思维、组织归纳等能力要求较高,很多学生在学习的过程中感到力不从心[1],主要体现为几下几点。
1)程序设计语言课程的基础不好。
2)课程理论性强。“数据结构”中涉及到大量的概念、模型及算法,模型和算法的理解需要学生有较为扎实的数学基础和较强的逻辑推理能力。
3)实践机会少。学生遇到算法设计不知所措,上机调试程序更加困难,学生实际动手能力较差。
针对这些情况,如何提高这门课程的教学效果,是一个值得探讨的问题。笔者多年来一直从事“数据结构”课程的教学,提出了针对“数据结构”课程教学内容、教学方法、教学手段、教材建设等方面进行全方位改革的思路,并在实际教学中取得了良好的教学效果。
1 教学内容的改革
1.1 夯实基础,查漏补缺
在教学内容上,老师应做好与先修课程“程序设计语言”和“数据结构”课程的衔接[2-3],备课时与讲授“程序设计语言”的教师沟通好,对于在“数据结构”课程中用到的知识点重点举例讲解。
在“数据结构”开课之初,教师给学生布置一个能够用到以上知识点的综合课后上机程序实例,指导学生由浅入深完成,实例的选取尽量贴近学生生活,以提高学生的学习兴趣为主。例如,给学生提供一个包含本班同学信息(包括学号、姓名、成绩等)的文本文件,要求学生将文件中的数据读取出来,实现一些简单的查找、排序、更改学生信息等基本操作,然后再将新信息
基金项目:算法设计与分析能力培养的系列课教学改革项目(BJFU2011JG030);北京林业大学2011年教学改革研究项目“数据结构A”精品课程建设。
作者简介:李冬梅,女,讲师,研究方向为人工智能、知识工程;孟伟,女,副教授,研究方向为人工智能、知识工程。
教改纵横
第 14 期39
写回文件。此程序的完成需要用到C语言的指针、结构体数组、引用、文件读写等知识,因为此实例使用的是学生的自身数据,学生实现过程中不会感到乏味,实现后又会有很大的成就感。学生通过编写此程序,复习了C语言相关的知识点,提高了阅读与理解算法的能力,初步建立起较好的程序设计思想,为后续“数据结构”的学习夯实了基础。
1.2 融合类比,加深理解
“数据结构”中概念多、算法多,教师在教学中采取融合类比的教学方法可以加深学生对知识点的理解,并透彻地掌握知识。例如,任何一种在数学上抽象的数据结构在计算机内部实现时都采取两种存储结构,即顺序结构和链式结构,在分析总结这两种存储结构时,可以从时间和空间两个角度对其融合类比。
老师在每章或相关几章之后都有对应的归纳类比总结,使学生对所学的知识点连成线,由线连成面。通过此环节,学生从对概念和算法的零散的感性认识,上升到系统的、理论的高度,从而能从理论高度掌握相关的算法或技术。
1.3 面向实际问题,精心设计实践教学内容
教师在教学过程中应进一步调整现有实践环节的内容和方法,精心设计实践教学内容,使学生运用所学理论知识设计求解典型或实际问题的设计型实验和综合型实验,还应根据课程的内容,设计适当的实验指导材料,编写相应的实验示例,使学生在循序渐进的过程中提高实际动手能力,并通过实践强化对理论知识的理解。
2 教学方法的改革
“数据结构”课程是以三种逻辑结构(线性、树和图) 和两种存储结构为主线,讨论每种逻辑结构在不同存储结构中的算法实现和应用问题。传统“数据结构”的教学方法是按章节进行安排的,即教师首先对学生讲解本章节的基本理论知识,然后介绍各种算法在不同存储形式下的实现过程,但这种教学方法是以教师为主体,学生被动听课,学生并没有真正地参与到教学中来。大部分学生认为抽象的模型及算法晦涩难懂,增加了教学的难度。我院针对“数据结构”课程的特点,在近几年的教学中,对传统的教学方法进行了改革,以案例为核心组织“数据结构”教学,使学生主动地参与到教学当中。
案例教学的基本方法是按照逻辑结构给出其相应的案例及相关预备知识,教师解释案例并引导学生理解案例,学生根据案例学习数据结构知识并解决案例。实践教学也与案例密切相关,学生在课堂上学习、讨论案例的基本知识、提出解决问题的方案,通过实践环节完成问题的解决方案[4]。
3 教学手段的改革
“数据结构”课程内容抽象、理论性强,在传统的教学方式下,学生理解和接受起来有一定的困难,因此,要获得良好的教学效果,必须借助形象化的教学手段,使抽象的理论具体化,便于学生理解和记忆。为此,我们编制了系统的多媒体课件,借助FLASH等软件将算法设计中较抽象的设计思想以动画形式展现,增强了教学的直观性和趣味性。另外,采取寓教于乐的教学手段,老师在课堂上通过游戏的方法帮助学生理解有关算法。比如,在讲解插入排序时,给学生一副扑克牌,要求学生每抓一张牌,有序地插入已有的牌中。学生非常喜欢这种教学手段,所有学生对游戏的过程都很专注,通过游戏深刻理解了算法的本质。
2012
40
计算机教育
Computer Education 4 教材建设
4.1 教材内容
虽然计算机应用领域在不断扩大,并产生了许多新的数据结构和算法,但“数据结构”课程最基本、最核心的内容还是那些经典教材中反复强调的最有代表性的知识。由清华大学出版社出版,严蔚敏教授编写的“数据结构”被大部分高校作为主教材,该书内容经典、描述严谨,但随着当前高等教育的发展和企业对于人才需求的不断变化,对于“数据结构”课程的内容也提出了新的要求。一方面,“数据结构”课程是学生从传统的形象思维转向科学的抽象思维的第一门课程,需要学生在思维认识上有一个转变,这也使得“数据结构”成为一门公认的比较难学的课程,对于教材的内容也提出了更高的要求。另一方面,随着高等教育的普及化,许多老师和同学都反映,原有的“数据结构”相关教材难度太大,不利于学生学习兴趣的培养和学习能力的提升。因此,根据当前普通高等院校“数据结构”课程的现状和发展趋势,编写一本结构合理、难度适中、实用性强的《数据结构》教材是势在必行的。
2009年,教育部高等学校计算机科学与技术教学指导委员会组织编制了“高等学校计算机科学与技术专业核心课程教学实施方案”,将计算机专业人才的培养分为科学型、工程型、应用型三个不同层次,每个层次强调不同的专业基本能力[5]。根据新的要求,严蔚敏教授编写了新的教材,该教材主要面向应用型人才培养需求,根据课程技术性的特点,数据结构的教学内容分为三层次,第一个是基本概念层;第二个是基本结构层,包括线性结构与非线性结构;第三个是基本技术层,包括查找与排序。
新教材按照三个层次组织内容,总共8章。
其中第1章为绪论,综述数据、数据结构和抽象数据类型等基本概念;第2章至第6章从抽象数据类型的角度,分别讨论基本的线性和非线性结构及其应用,包括线性表、栈、队列、串、数组、广义表、树和图等;第7章和第8章分别讨论查找和排序,除了介绍各种实现方法之外,还着重从时间上进行定性或定量的分析和比较。本书突出了抽象数据类型的概念,对每一种数据结构,都分别给出相应的抽象数据类型规范说明和实现方法。
4.2 教材特点
新教材是在清华大学出版社出版的严蔚敏教授等编写的《数据结构》基础上改写的,已由人民邮电出版社2011年2月出版,目前已被多所高校选为教材或参考书。新教材有以下几个特点[6]。
1)本着“有用、够用、实用”的原则,精简教材内容。
在保留“数据结构”课程核心知识内容的基础上,删除了部分不常用的内容,如删除了广义表的递归算法、图的十字链表、邻接多重表的表示方法、外部排序等算法,同时删除了与其他课程重复的内容,如删除了与操作系统课程内容重复的动态存储管理、文件等。
2)结合作者多年的教学体会,算法描述深入浅出。
教材采用提出问题、分析问题、解决问题的问题求解过程,降低了学生理解问题的复杂性,对于稍微复杂的算法,先结合简单实例引入该算法,然后依次给出算法思想、算法描述、算法分析。针对学生学习数据结构最大的困惑,即读不懂程序,不会写程序等问题,教材对于算法思想部分的阐述较为详细,与算法描述中的程序相对应,这样学生只要读懂算法思想,便能读懂程序。
3)每章增加了小结。