APP下载

算法演示在“数据结构”课程教学中的应用探讨

2010-11-09

关键词:数据结构理论内容

赵 静

(兰州职业技术学院信息工程系,兰州 730070)

算法演示在“数据结构”课程教学中的应用探讨

赵 静

(兰州职业技术学院信息工程系,兰州 730070)

算法是“数据结构”课程的重要内容。就当前“数据结构”课程的教学现状,讨论了算法演示在“数据结构”课程教学中应用的可行性并提出了具体应用方法。

数据结构;算法演示;辅助教学

1 引言

“数据结构”课程作为计算机及相关专业的专业基础课,其教学历来都受到各个高校的重视。该课程的培养目的就是培养学生编写清晰、准确的算法和程序的能力。然而由于“数据结构”课程的内容抽象难以理解,特别是算法部分的讲解难度比较大,而且学生的学习和理解也比较困难,因此我们可以借助算法演示软件这一辅助教学工具来降低算法讲解教学中的难度。

算法演示以直观的动画演示界面将数据结构模型和算法的紧密联系展现出来,是一种有效的、可用于课堂和课后的辅助教学手段,以此调动学生的积极性,激发学生的学习兴趣,从而提高教师授课的效果,降低学生学习的难度。

2 算法演示的优越性

目前在大多数高校该课程中算法内容的教学方式主要是以教师和学生手动抄写算法语句为主,没有将算法在实验中验证,而且通常教师在讲解时往往忽视了算法与数据结构模型的结合,这就使得算法与数据结构模型被孤立起来了。这样的教学方式更增加了学生学习的难度。同这种传统的教学方法相比,算法演示主要是利用可视化技术和多媒体工具,以生动直观的画面显示方式辅助“数据结构”课程的教学,并具有如下的一些优越性:

2.1 能够提高教学效率

算法演示实验是理论在实践中的运用,能辅助教师讲解理论内容,帮助学生学习和理解。使用算法演示的目的之一就是提高“数据结构”课程的教学效率。只要教师和学生都充分合理地使用算法演示软件,教学效率必然会有很大提高。

2.2 有利于培养学生动手实践的能力

“数据结构”课程是一门专业基础课,其先行课程都是一些泛泛的、无需实验的理论课程,在这种情况下,学生的动手实践能力还处于初级阶段。算法演示能以其动画性、新颖性吸引学生的注意力,激起学生动手实践的求知欲,再加上教师的适当指导和鼓励,一定程度上能帮助学生培养和提高动手实践的能力。

2.3 有利于培养学生的学习和科研能力

大学生毕业后,无论是前往工作单位工作,还是继续深造读研究生,学习能力和科研能力都是必需的素质。算法演示强调学生的参与,调动学生的自学积极性,锻炼学生的思维,帮助培养学习和科研能力,以适应以后的工作和学习生活。

3 算法演示内容构成及软件的模式

3.1 内容构成

“数据结构”课程中涉及的算法比较多,将所有的算法都进行演示是不现实的,因此为了帮助学生理解和学习,需要演示的算法必须精心选择。一般遵循经典的、典型的、能够说明理论问题并且易于实现的原则去选择要演示的算法。按照这一原则,我们精心挑选了一些算法,线性结构部分的算法有线性链表的建立、插入、删除算法,顺序栈的元素压入和弹出、汉诺塔递归算法,链式队列的建立、插入、删除算法,三元组的转置等;树结构部分的算法有树结点的插入、删除操作,二叉树的前序、中序、后序遍历,线索二叉树的构建,Huffman树的构建,森林与二叉树的相互转换等;图结构部分的算法包括图的深度、广度优先搜索,Prim算法和 Kruskal算法,拓扑排序,Dijkstra算法等;还有一些综合应用的算法,如线性表查找,二叉排序树的生成、树结点的插入和删除,平衡二叉树的节点插入,B+树、B-树的节点插入和删除,折半查找算法,分块查找算法,冒泡排序,直接插入排序,归并排序,希尔排序,快速排序,简单选择排序,堆排序和堆的生成等。对于这些选出来的算法,可以按照“数据结构”课程的章节内容顺序进行组织,也可以按照独立的知识单元进行组织,方便在教学时使用。

3.2 算法演示的模式

对于一个具体的算法,演示的内容包括用某种高级语言编写的算法程序,该算法所使用的数据结构模型,算法执行过程中数据结构的动态变化和跟踪等。从软件的角度看,算法演示界面可以分为三个部分:算法动态跟踪区、图形化动态演示区以及全局控制。

算法动态跟踪区要将用某种高级语言编写的算法程序显示在演示界面上,根据采用的教材不同,算法可以用类 C、类 PASCAL或类 JAVA等语言编写,图形化动态演示将算法操纵的数据结构模型用图形的形式表达出来,控制部分是交互的接口,可自定义演示输入,修改演示播放方式和效果等。

理论上数据结构模型的每一步变化都对应着算法的若干语句,其中并将其变化用图形动态变化的方法形象直观地展现出来;算法动态跟踪要将图形化动态演示与对应的算法执行的语句同步显示;这三个部分的相互关系如图1所示。

需要说明的是,演示软件的详细设计和实现技术属于软件技术领域的内容,不在本文的讨论范围内。

4 算法演示的具体运用

算法演示是能够将“数据结构”课程的抽象理论转化为具体视觉感官的有力手段,通过将算法语句与具体的数据结构模型对应显示来达到理论与实践结合辅助“数据结构”课程教学的目的。而“教学”包含了教师教和学生学两个方面,算法演示既适合于教师授课时使用,又适合于学生学习时使用。下面就从教师和学生两个方面谈谈算法演示的运用。

4.1 从教师方面来看

教师要正确合理地使用算法演示。首先,同物理化学等课程入门时做实验一样,教师可将算法演示作为实验内容亲自示范操作并讲解。这种入门性的实验内容能够激发学生的求知欲和学习积极性。其次,教师应将理论讲解与实验演示充分结合。理论是课程教学大纲要求的内容,算法演示只是一种辅助教学的手段,不能用算法演示代替理论讲解,而应该在讲解完理论之后进行算法演示,在演示的同时还要贯穿理论内容,体现出演示为理论讲解服务的宗旨。再次,教师应当在演示过程中充分地调动学生的积极性,恰当地组织学生讨论,鼓励学生提出问题,指导学生解决问题,通过这样的方式逐渐提高学生分析问题和解决问题的能力。在这一过程中还要注意师生交流。最后,教师应该留给学生适当的自主空间让学生在课后自己发挥,可以布置一些算法作业让学生去实现,或让学生自行操作实验,也可以让学生尝试实现算法演示的软件部分,这样有助于提高学生的动手能力。

4.2 从学生方面看

学生一直以来是教学活动中的被动方,在实际的教学中往往是教师教而学生不学。当前的教学改革必须从根本上改变学生被动接受知识的局面。算法演示具有调动学生积极性的功能,学生应该主动地利用算法演示来提高学习效率。第一,学生应利用课余时间自己动手算法演示实验,这样不但能帮助学习和理解理论知识,还有利于培养学生思维能力,提高学生自学能力。第二,学生应在理解理论知识的基础上多加思考,挖掘和学习深层知识,同时试着去寻找和发现算法演示存在的缺点和不足,通过自己的思考去发现问题,变被动学习为主动发问。第三,如果发现了理论知识或算法演示实验的缺陷和不足,学生应积极与教师交流,寻求解决问题的方法。对于算法演示实验的问题,学生应尽自己可能地去完善和改进算法演示,例如可以增加更多演示的算法,或用更为生动形象的方法演示等等。第四,学生应积极主动自己动手做实验,无论是重复现有的实验还是探寻新的实验内容,动手实践对学生是大有裨益的,能加深学生的理论学习和理解,扩大知识面,培养文献检索和动手能力。此外还应该从算法演示实验出发,学着将实验融入到其他课程的教学当中。第五,学生应常常同教师交流和沟通,敢于表达自己的看法和意见,共同促进课程教学效率的提高。

例如,当教师讲解栈结构和递归时,演示算法是汉诺塔问题。演示界面上显示有汉诺塔问题的递归算法。无须手动抄写算法,教师可仔细分析已经显示的算法,阐明递归理论,说明递归算法的基本项与诱导项,阐述递归算法与栈调用的联系等,这是理论讲解的部分。接下来,教师要交待汉诺塔问题和解决汉诺塔问题的递归算法的思想,要注意验证递归理论。然后是算法演示,教师必须亲自操作,仔细讲解递归算法的自身调用、栈结构的特点与压栈和出栈的理论。在此过程中需要反复进行演示,可以更改演示的初始输入。然后可由学生自行操作以调动学生的积极性和思维能力,并安排讨论内容,鼓励学生思考发现问题。课后教师可布置学生编写其他的递归算法来加深学生知识的理解和掌握并训练学生编写算法程序的能力。学生要积极主动学习,积极同教师交流,不断地提高自己的专业能力。

5 总结

为了适应当前教学改革的需要,“数据结构”课程的教学应该从传统的单一理论讲解向多方式多手段讲解转变。通过本文的讨论和分析,我们认为应将算法演示尽量融入课程教学中,以改善目前课程教学状况。此外由于“数据结构”课程的重要性,该课程的教学必须不断探索创新,我们也将坚持不懈地进行该课程的教学和改革创新。

[1]朱燕红.可视化软件在数据结构教学中的应用[J].远程教育杂志,2006,(5).

[2]李冬梅,刘平.浅谈《数据结构》教学实践与体会 [J].福建电脑,2007,(8).

[3]银丽萍,黄同成.《数据结构》算法的可视化教学研究与实践[J].邵阳学院学报:社会科学版,2008,(Z1).

[4]周泽辉.浅谈高职学院数据结构课程的“算法驱动”教学[J].科教文汇,2009,(8).

TP311.12

A

1674-6341(2010)01-0109-02

2009-12-01

赵静 (1981-),女,甘肃兰州人,助教,从事计算机应用及计算机软件研究。

责任编辑:柴造坡

猜你喜欢

数据结构理论内容
内容回顾温故知新
坚持理论创新
神秘的混沌理论
理论创新 引领百年
相关于挠理论的Baer模
主要内容
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
高职高专数据结构教学改革探讨
TRIZ理论在“数据结构”多媒体教学中的应用
《数据结构》教学方法创新探讨