齐晶薇
哈尔滨远东理工学院
浅谈如何提高数据结构中算法教学效果
齐晶薇
哈尔滨远东理工学院
在计算机专业教学当中数据结构可以说是其中必不可少的基础教学课程。为此,本文笔者以数据结构中算法教学为例,对如何提高数据结构教学效果进行深入的分析和研究,加深学生对数据结构算法内容的理解和掌握,为进一步推动计算机专业教学事业发展提供有益意见和建议。
数据结构;专业教学;编译环境
算法教学算不上是多么高难的内容,学生在日常的学习当中就能接触甚至掌握其基础思想,但却难以在实际应用当中发挥其作用。我们必须要明确算法教学的思路,充分发挥算法对数据结构教学的重要性,增强教学的实用性和有效性。
为了进一步加深学生对C语言算法定义的理解和掌握,下面我们就是希尔排序为例,着重阐述算法的重要性。希尔排序简单来说就是一种插入排序,它通过将整个排序记录序列划分成若干的子序列,并分别插入排序,待整个序列记录“基本有序”时,就可对全体记录进行重新的插入排序,希尔排序方式如下图:
从该图中我们能够看出初始关键字序列是按照希尔排序思想所进行的排序,它将整个序列划分为五个子序列,并对每个子序列采取直接插入的方式,总称一趟希尔排序。然后将第一趟希尔排序划分为三个子序列进行直接插入排序,这一过程就是第二趟希尔排序,并对整个序列进行直接插入排序,希尔排序至此结束。
算法对学生学习数据结构知识具有一定的示范和启示作用,它对数据结构教学产生着深远的影响,是数据结构教学中的重要内容。其具体表现如下:
首先,经典性。这一特性是针对经典算法而言的,经典算法是众多专业学者和专家对一些经典问题进行的深入分析和研究设计的。甚至有的专家或学者因为某种算法的发明而功成名就,获得各种奖项,而且很多算法都是用发明者的名字命名的。这些算法构思巧妙、结构严谨,利用对算法的分析讲解不仅能够让学生对数据结构基本理论及方法有深入的理解;还能够让学生进一步学到程序设计方法。通过对经典算法问题处理方式思维让学生能够举一反三、熟能生巧。
其次,基础性。算法是最基本数据结构的体现,从某种意义上来说,只有掌握了相应的数据结构算法才能够掌握该种数据结构。
本文笔者经过长期对数据结构教学的深入研究发现,想要做好数据结构算法教学工作应从以下几方面入手:
第一,精心设计课堂教学内容。对于每种算法都要深入了解,明确算法设计思想及其要解决的问题,对算法教学重点和难点进行重点研究。就拿KMP这种来说,它是在BF算法上的提升,但其本质让是要将模式串和主串字符逐一比较,而KMP算法摒除了BF算法在最坏的情况下主串模式中出现大量的0和1的情况,降低了时间复杂度。那么,既然KMP算法是一种改进,其重点和难点就需要我们重新概念了。KMP算法主要解决了匹配失配时指针回溯问题,进行主串字符和子串字符比较是十分必要的。因此,我们可以确定KMP算法教学难点就是确定next[j]这个函数。因此,在数据结构教学当中我们就要将此函数作为你重点来讲。
第二,灵活运用多种教学方法。对于既定的教学内容而言,采用什么样的教学方法课堂教学成效将会大不一样。正确选择算法教学方法是决定课程教学成败的关键。算法教学常用的教学方法有任务驱动法、情境教学法、案例教学法等等。比方说Dijkstra算法的讲解,我们可以通过讲述人们旅游时如何选择最便捷的道路和最节省开销、时间的方式,知道始发地和目的地,各种出行方案自然而生。这样不仅能够有效将课堂教学内容与实际生活联系起来,增强了知识的实用性,还很能够让学生产生浓厚的学习兴趣,有利于增强学生学习的积极性和主动性,有利于学生对算法的掌握。但应注意的是,不论采用那种教学方法,都要讲清算法的内容、地位、应用,使学生能够掌握住相关知识点。我们可以综合运用多种教学方法,创设轻松舒适的教学情境,将算法用通俗易懂的方式讲解出来,使抽象化的知识更加形象化,提高学生知识运用能力。
第三,根据实际灵活实施教学进程。算法思想才是算法教学的重点,我们可以以算法产生的背景为切入点,逐渐深入到算法内容、实质和具体应用上来,并按照1:1:1的课程比例开展教学活动。以往我们常常忽略算法背景教学,对其一笔带过,学生始终会对算法成因产生困惑。我们可以讲算法背景教学作为教学的扩展,将发明者的生平、成长经历和贡献做一些介绍,让学生对学习产生兴趣,这样对算法教学讲解具有一定的促进作用。讲解算法内容时,教师最好的方式就是将其与实际相结合。每种算法都是应问题而生的,是一种数据结构的代表。只有将算法实质内容讲清,才能够加深学生对相关课程内容的理解和掌握。在此我们就不一一举例说明了。在讲解完算法的所有内容后,也可以组织学生对部分疑难问题进行小组讨论,并给与最后的实例总结,进而加深学生对数据结构的印象。
开展算法教学的根本目的在于帮助学生更好的理解和掌握数据结构。因此,笔者以自身多年教学经验为依托,并结合了多方教学材料得出算法教学应当遵循的几个原则:情景原则,也就是要最好必要的课堂教学情景设置;实效原则,追求教学实效性;点面原则,有侧重点全面的开展数据结构教学。
我们必须要重视算法教学的重要性,精心设计课堂教学情境,灵活运用多种教学方法。从实际教学情况出发,适当适时调整教学进程,努力提升数据结构教学质量,提高教学效果,更好的完成数据结构教学目标。
[1]秦玉平.数据结构课程实践教学改革与实践[J].渤海大学学报(自然科学版).2013(04)
[2]刘晓敏.数据结构与算法教学课程网上教学系统的设计与实现[D].电子科技大学2013
[3]张颖慈.数据结构在操作系统进程调度中的应用研究[D].电子科技大学2009
[4]张伟.数据结构算法设计题的测试程序辅助构建研究[D].广东工业大学2012