《数据结构》课程教学改革探讨

2009-04-23 10:03娄小平
新媒体研究 2009年6期
关键词:数据结构教学手段教学内容

娄小平 戴 军

[摘要]“数据结构”是计算机科学与技术专业一门重要的专业基础课程,针对该课程的特点,提出从先行基础课程的衔接、教学内容的组织、教学手段的创新、以及实践环节等方面进行改革的思路,以提高该门课的教学效果。

[关键词]数据结构 教学内容 教学手段

中图分类号:G42文献标识码:A文章编号:1671-7597(2009)0320122-01

一、引言

《数据结构》是计算机程序设计的重要理论技术基础,是计算机学科的核心课程。但是由于“数据结构”课程概念多、综合性强、技巧性强,学生往往感到内容并不难,课也都听得懂,可是一做算法设计题就感到无从下乎,写出的算法结构不清晰、效率低下,根据课程内容编写上机题更是困难重重等。

二、《数据结构》课程的现状

(一)《数据结构》课程的特点

(1)课程要求学生能较好地掌握《计算机导论》、《程序语言设计》以及《离散数学》这三门先行基础课程;(2)课程中包括了大量的基本概念、算法的基本思想,而且内容抽象;(3)课程中的数据结构复杂、算法复杂,其实践应用性也要求学生学会对问题的分析并用相应的数据。

(二)《数据结构》教学中存在的问题

1.有关数学知识不够。必要的数学知识是学好数据结构的前提。有些学生认为数学与计算机关系不大,重视不够,学好学不好无所谓,致使学习效果较差。

2.有关程序设计语言学得不透。程序设计语言本身内容较多,大多数学生不能完全理解,特别是C语言中的指针部分,在数据结构中用得较多,学生学不好的话,在设计数据结构中的算法以及上机调试时,必然会有困难。

3.对数据结构本身的概念理解不够,由于数据结构涉及到大量的概念、模型及操作算法,理论性较强,且高度抽象,学生学习起来也较难掌握。

三、《数据结构》课程教学改革的思考

(一)注重与先行基础课程的衔接

算法的描述和理解是《数据结构》课程的难点和重点,而数据结构算法的描述离不开C语言知识,《C语言程序设计》是学习数据结构的先行基础课程。但是许多同学的C语言功底并不扎实。为此,在开始展开数据结构教学的同时要给学生布置《C语言程序设计》课程的复习任务,抓住两门课程的衔接点实施教学。比如讲解抽象数据类型,在数据结构中要定义数据类型首先要确定处理对象的逻辑结构,并根据逻辑结构的特点选择存储结构,最后对对象的各种基本操作进行算法描述。我们知道抽象数据类型的存储结构和基本操作是通过“C语言”中的数据类型来描述的,而许多学生对这些算法的理解存在障碍。在讲解这些算法时我们可以通过讲解C语言中不同类型的运算方式如数组、结构体、指针等来加深学生对算法的理解。

(二)要精心设计教学内容

1.以知识点为基础,进行阶段性总结。在教学中,将数据结构分为3个讲述阶段:线性结构;树型结构;网状(图形)结构。讲授线性结构时要让学生集中掌握一般线性表的特点、存储结构和在每种存储结构下的操作;透彻掌握栈、队列、串、数组、广义表,一般的线性表与集合的区别;特殊的线性表与一般线性表的区别。讲授树型结构时,联系《离散数学》中树的概念,采用由一般到特殊,再由特殊到一般的策略,首先介绍一般树的概念,再到特殊的二叉树的概念、存储、操作,最后由特殊推出一般的树、森林的存储、操作。讲授网状结构时,首先对图的存储、操作等知识点进行介绍,有向图和无向图的异同点进行区别,再对这些知识点进行总结,应用无向图和有向图解决实际的最短路径和关键路径的问题。经过上述讲述使学生掌握各个知识点。

2.以数据结构的两种存储结构为线,融会贯通各知识点。在讲叙每个知识点的过程中,始终贯彻两条主线,即数据结构存储的两种存储结构:顺序结构和链式结构。

在线性表中,不论一般的线性表还是栈、队列,灵活应用这两种结构去解决有关线性表、集合等问题。在以顺序结构和链式结构为主线时,要融会贯通各个知识点,线性表的一般化形式广义表的存储,既可以采用课本介绍的线性表的链式存储结构,也可以采用树的存储形式,这样就将线性结构和树型结构结合起来;图的特例无向图没有回路并且连通可以看成树,这样树的存储可以利用图的存储来实现,引导学生进行发散思维,融合各知识点。

3.重视习题布置、批好作业、上好习题课。要学好“数据结构”,捷径只有一个,多练习、勤思考。首先,布置大量的习题,反复练习,少数较难的习题适当加以提示。其次,认真批改作业,找出学生的问题点,闪光点。最后,讲评作业,对共同出现的问题集中讲解,对学生写的优秀算法加以表扬和鼓励。再给出已做作业的参考答案供学生参考。

(三)创新教学手段

在传统的“黑板+粉笔”的教学中,学生在学习《数据结构》的时候完全只能靠自己的空间想象能力,不能给学生以直观的影像,如果结合多媒体教学,就显得更加直观更加有效。例如在讲解链表的插入或删除操作的算法的时候,我们可以编写教学软件模拟讲解的算法的动态运行,达到动态演示且直观的效果。以图形的方式,学生可以看到算法执行每一条语句后链表的状态、结点中指针的变化、在整个演示过程中学生可以看到如何在链表中插入或删除一个结点,学生就会觉得很直观,容易理解。

(四)注重实践环节

要抓好实践环节,应引导学生做好以下几点:

1.上机前先预习,熟知本次实验目的、实验内容,画出程序流程图。

2.学会将类C语言描述的代码,转换成上机可执行的C语言源程序或VC++,BC++中可执行代码。这就要求学生自己学会补充C语言细节,将抽象的代码转为具体的可以上机执行的C语言源程序。这将锻炼学生综合运用所学知识的能力。

3.对上机时共性的问题,教师要采取集体辅导方式;对个别学生的特殊问题给予个别指导。切忌给他们具体答案,使得培养学生抽象思维能力和动手能力的实践过程变成简单的上机重复,影响教学效果。

四、结语

数据结构是计算机专业的骨干、核心课程,也是大多数学校研究生入学考试的必考课程,因此,对于该课程的教学,不仅要从理论上进行探讨,还要从教学内容结构、教学方法等方面进行研究。作者根据自己的体会,提出了从先行基础课程、教学内容、教学手段、实践环节等四个方面进行改革的探讨。

参考文献:

[1]刘亚波、刘大有,以实验教学深化数据结构理论教学[J].吉林大学学报增刊,2005.08:135-137.

[2]徐凤生、任传成,数据结构教学改革探讨[J].计算机时代,2006.03:58-59.

[3]徐成杰、严云洋,数据结构课程教学要点的探讨[J].现代计算机,2001.1:98-99.

[4]张敬芝,数据结构课程教学改革研究[J].长春师范学院学报,2005.8:147-148.

[6]周克兰、张玉华,数据结构课程教学的实践与思考[J].高等理科教育,2003.1:173-176.

作者简介:

娄小平,女,湖南湘潭人,湖南文理学院计算机学院教师,主要从事嵌入式系统的研究。

猜你喜欢
数据结构教学手段教学内容
新冠疫情期间小学信息技术在线教学内容的选择和实践
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
《数据结构》中“插入”算法课堂教学实践与体会
论体育教学手段现代化的意义和作用
等差数列教学内容的深化探究
论《测控仪器电路》课程建设
数据结构与算法课程设计教学模式的探讨
高效学习数据结构