当前位置:首页 期刊杂志

发挥教师引导作用,提高“数据结构”教学质量

时间:2024-05-04

唐朝胜

文章编号:1672-5913(2009)10-0130-03

摘要:本文通过分析“数据结构”课程的特点以及大学生学习的心理特征,结合笔者自身的教学实践,探讨了在新环境下发挥教师的引导作用,以提高“数据结构”教学质量的方法。

关键词:数据结构;心理特征;引导作用;教学质量

中图分类号:G64

文献标识码:B

1引言

“数据结构”课程主要讨论了各种数据类型中的逻辑结构、存储结构以及有关算法,要求学生学完后能根据实际应用的需要,对数据进行有效的组织、存储和处理,进而编制出高效率的程序。该课程是一门逻辑性和实践性都很强的课程,在以往教学实践中,由于课程内容高度抽象、概念繁多、算法复杂,而教学方式和手段较单一,教与学双方互动较少,常出现教师教学难度大、学生畏难情绪严重、课堂气氛沉闷、学生兴趣不高、动手实践能力差等情况。

笔者通过具体分析“数据结构”教学实践中存在的问题,结合自身多年的教学经验,认为:把握好学生的心理特征,破除师生角色的固化,发挥教师引导作用,加强课堂内外的师生互动,以调动学生学习的积极性和主动性,是提高教学质量行之有效的方法。下面笔者从课内和课外两个方面,对如何发挥教师引导作用、加强师生互动,提高教学质量进行探讨。

2“数据结构”课程教学实践中的问题分析

2.1课程难度大,学生难以适应

“数据结构”是计算机专业基础课程,不仅涉及数理逻辑、图论、集合论以及诸如C语言、JAVA语言等前导课程,还涉及到计算机硬件(存储设备和存取方法)以及计算机软件(编译理论、操作系统)等方面的研究。因此,该课程不仅内容丰富,学习量大,而且逻辑性和抽象性都较强。教材中众多晦涩难懂的概念、复杂多变的算法,常使初次涉及编程的学生难以适应,产生畏难情绪。

2.2教学方式和方法单一,课堂气氛沉闷

传统教学中,教师为了让学生理解相关的概念、算法等内容,常需要大量的板书配合文字、图表等加以说明,学生随着教师的思路分析问题,能有充分时间作笔记,但由于课程内容抽象难懂、教师多忙于板书和讲解,学生忙于作笔记,双方严重缺乏互动,课堂气氛沉闷,学生提不起学习的兴趣,往往出现“一边教师唾沫横飞、嘶声力竭,而学生则唉声叹气、一脸困惑的情景”。采用多媒体课件后,教师可以充分利用多媒体技术将算法、图表等内容形象、生动地表现,学生学习兴趣也有很大提高,却又容易导致学生既要关注屏幕内容又要忙着作笔记,无暇思考问题,课后难以消化,“听课”则又变成了“看课”。

2.3理论实践脱节,实践能力匮乏

“数据结构”涉及内容较广,学习量大,但是课程学时往往有限。为此,不少教师为了完成理论教学内容,常常压缩实验学时,容易形成“重理论讲解,轻实践应用”的现象。加之教学难度大,尤其是不少学生对于“数据结构”实验中大量使用如C语言中较难的结构体、指针、链表等知识点,掌握得不牢固,实践课程中教师还得花时间去帮助学生复习前导课程的内容,实验课教学效果自然是大打折扣。为此,教师们常感叹“数据结构”课“难学难教”,“吃力不讨好”,学生则抱怨抓不住学习主线,或者是课堂上似乎听懂了,理解起来好像也并不困难,到上机实践却不知如何下手。久而久之,有的学生对编程逐渐失去兴趣,等到课程结束,还是既不会编程序也不会调程序,程序设计的能力、创新能力更是无从谈起。

3强化课程主题内容,加强教学手段的多样化

当代大学生学习的自主性较强,但也存在着急功近利、学习盲目性较大、畏难情绪较重的心理特征。不少学生看到数据结构内容抽象,看到师兄师姐和网络论坛的学友谈及学习数据结构的困难,就开始临阵退缩了。这种情况下,教师在把握教学内容的基础上,采取多样化的教学形式,并营造课堂内师生互动融洽的气氛就显得极其重要。以下,笔者用“一根主轴线、两个基本点、三足鼎立、百花齐放”对在多年“数据结构”教学中,如何把握教学的关键点、调动学生学习积极性进行总结和论述。

3.1明确“一根主轴线”,围绕主轴展开教学

从教学内容来看,“数据结构”主要教授各种数据对象的特点、存储表示方法,以及处理数据的算法。“数据结构的本质”便是贯穿整个课程的主轴线。笔者发现,部分学生从课程开始直至结束,头脑始终一片混沌,不清楚数据结构到底是研究什么,有哪些形式,区别何在,更不知道如何运用。笔者认为,关键的问题在于他们没有真正的把握和理解数据结构的本质。虽然不同教材对于数据结构的定义并不一致,但是体现出来的本质都是一样的,即:数据结构体现的是数据与数据之间的关系,而不同的数据结构体现不同的数据关系。所以,教师授课实践中应围绕这根“本质”主轴线进行,尤其在教学初期,时刻提醒学生思考和把握数据结构的本质。

3.2确定“两个基本点”,共同推进

“数据结构”的教学主要围绕数据结构的两种形式(逻辑结构、存储结构)来进行。教学流程一般是先介绍数据结构涉及到的基本术语;其次是相应的逻辑结构;最后才介绍存储结构的各种形式。所以,从某种意义上而言,逻辑结构和存储结构即是数据结构教学流程中的两个基本点。逻辑结构体现的是数学层次上的数据关系,存储结构体现的是计算机层次上的数据组织形式。讲解分析好这两种形式之间的区别和联系,对于学生透彻地理解各种数据对象的特点,学会数据的组织方法和实现方法都有极大的帮助。

而对于存储结构内容的学习,笔者认为,引导学生进行归纳和分类比较,找到它们的共同点,是促进学习和理解的有效途径。因为,不同数据结构的存储结构形式虽然多样,如线性表有顺序表表示、链表表示;串有定长顺序存储表示、堆分配储存表示和块链存储表示;树有双亲表示、孩子表示和孩子兄弟表示;图有矩数组表示、邻接表表示等,但是经过分析比较归类,这些存储结构无非就是两大类:顺序存储和链式存储。此外,在理解复杂的存储结构时,可提醒学生注意把握它的定义层次:先简单后复杂,先局部后整体。例如,在定义图的邻接表的时候,先定义弧的结构,再定义顶点的结构以及顶点数组,最后定义整个图的邻接表结构。根据不同存储类型的特点展开教学,引导学生进行总结、思考,帮助学生从纷繁复杂的存储结构中把握它们的核心和精髓,往往能收到事半功倍的效果。

3.3构建“三足鼎立”的教学模式,齐头并进

所谓“三足鼎立”,是指“数据结构、算法和程序设计”三项齐头并进,同等重要。数据结构是核心,算法是基石,程序设计则是实践。而实践往往是检验理论知识是否能灵活运用的标准。如引言所述的,有不少学生对例题理解了,但真正上机实践却不知如何下手,这正是只注重理论而忽视实践的结果。为此,布置实验作业时,笔者首先要求学生对每个实验题目除了给出完整的问题描述、数据描述和算法描述,还需要给出程序源代码以及调试分析的结果;其次,还有两个步骤,笔者认为是至关重要的:第一步,预先与学生共同探讨解题思路,提示注意事项,为编程打好基础;第二步,在布置下一个作业前,对上一个完成的作业予以点评,案例程序可以是笔者做的源程序,也可选用学生的。通过讲解分析,让学生将自己的源程序与案例程序进行比较,引导学生找到自己的不足之处,以便及时改进,提高实践操作的能力。

3.4实施“百花齐放”的教学手段,提高学习效率

“百花齐放”则是对教学手段和教学方式多样化的形象总结。多样化的教学手段和方式通常是活跃课堂气氛,激发学生的学习兴趣,提高教学效果的有效措施。“数据结构”课程不同于其他的计算机课程,其涉及大量的函数算法,而枯燥复杂的算法容易使学生产生畏难和厌倦情绪。为了让学生易于理解和接受这些算法,教师应尽可能应用多媒体技术、网络技术,以及互动式教学法、任务驱动教学法等先进的教学方法进行教学改革。例如,笔者制作的“数据结构”算法演示课件,已在我校数据结构教学中应用三年多。实践证明,应用Flash动画,将各种枯燥难懂的算法进行形象生动的动态演示,让学生主动参与、干涉程序的执行,积极思考算法的实质,进一步加深了他们对算法的理解,大大提高了学习效率。

此外,除了口授教学,笔者还通过播放名家授课录像,开展学生数据结构学习心得交流班会,进行算法讨论和答疑等方式,引导学生更积极主动地参与到课堂中,并通过加强与学生的课堂互动,营造轻松的学习氛围,使学生逐渐消除畏难情绪,转而喜欢上数据结构学习。

4加强课外引导,提升专业思维

当代大学生思维活跃,敢于提出自己的意见和想法,渴望能用所学的知识加以运用。课堂内精致的课件,形象生动的动画演示虽然激起了学生的学习热情,但同时也挤压了他们想象的空间,他们更多的是被动接受,缺少了个性的参与和思考。因此,更多学生也不再满足于课堂内短时间的知识学习,更希望老师在课堂外也能就他们所提出的问题进行讲解、分析,并引导他们在知识巩固基础上,在实践应用环节有更多的创新。为此,加强课外的师生互动,引导学生在实践应用中拓展思维尤为重要。

4.1及时交流,答疑解惑

除了采用传统的定时定点交流外,可以充分利用网络资源,如采用QQ、电子邮件、飞信等方式与学生进行交流。此外,网络论坛也是师生互动非常不错的地方。笔者所在的计算机系建立了一个专业课程论坛(图1)。论坛按课程分为C语言程序设计、数据结构、汇编语言、程序设计等几个板块,每个课程由相应的课任教师负责,其他教师做辅助。在论坛中,一方面,学生可以提出学习中的问题,邀请或者指定某位老师进行解答;另一方面,学生可以贴出自己写的算法和程序,请老师或同学进行讨论,相互交流、借鉴经验;第三,可以由老师或学生设定某一主题,供大家讨论,提出见解;第四,学生还可以贴出某一程序、算法的应用实例,请教师或同学进行案例分析,并对其应用拓展进行探讨。

总而言之,以论坛为交流平台,由学生做主角,教师做监督和指引,通过师生互动、生生互动机制,一方面增强了师生、学生间的感情,使教师和学生增进了互相的尊重感,促进了教师的授课热情和学生学习热情;另一方面,激发了学生自发学习的能力和动力,提高了学生的对知识的应用和创新意识。

以本课程为例,为了能让学生尽快融入到“数据结构”的学习中,笔者专门发了两个帖子:“为什么学数据结构和算法”和“如何将数据结构的算法转化成程序”,就这两个问题进行了自己的观点。学生看后反应强烈,纷纷跟贴,发表自己的看法。多数参与其中讨论的学生事后都感觉受益匪浅,学习热情都有了明显的提高。

4.2兴趣实践,巩固知识

培养并提高学生的实践能力是“数据结构”课程的目标之一。实践能力的提高则往往需要通过上机实验以及课程设计(实习)环节来保证。不少教师在提高学生的实践能力方面提出了许多值得借鉴的方法,如王玉锋等提出实验教学中采用三步走的策略,即首先强调实验内容“应用为主”;其次实验题目按难易分层次,因材施教;最后挑选一些综合性、设计性的题目进行课程设计等等。笔者认为,在互动教学模式下,教师除布置如“约瑟夫环”、“停车场调度”等经典题目外,还可以引导学生自主选择、自主设计感兴趣的实习内容,且方式方法不限,以增加学生创新的意识和实践操作的能力。例如,在笔者采用两个栈实现后缀表达式的启发下,有学生提出了采用一个栈来实现前缀表达式的思路,并由此写出了相应的算法;而对于一些对动画设计感兴趣的学生,在笔者的引导下,他们应用Flash技术自主实现教材中常见算法的动态演示(图2),既熟悉了算法,又拓展了个人爱好,可谓一举两得。

4.3专业导航,拓宽视野

“数据结构”是一门实践性很强的课程,但它不像网页设计、动画设计等课程,学完后马上能应用到实践中去,而教材限于学时以及篇幅等其他因素,并没有体现太多的实际应用。不少学生正因为看不到实际应用,难以提起学习的兴趣。为此,笔者不仅鼓励学生去浏览一些如国内著名大学的“数据结构”课程网站、专业学习网站、CSDN网站等。另外,通过联合本校图书馆学科馆员,挖掘期刊、会议论文等学习资源,引导学生通过阅读类如《软件学报》、《计算机学报》、《计算机应用》、《计算机工程》、《计算机教育》等专业杂志来了解数据算法及其实际应用。这样既激发了学生的学习兴趣,又拓宽了视野。而笔者本身也通过对学生的引导与互动,受益匪浅,达到了“教学相长,相得益彰”的良好效果。

5结语

对于“数据结构”课程,不少教师有着丰富而多彩的教学方法和经验。笔者仅从发挥教师主动性,促进师生互动的角度出发,阐述个人的一些见解。对于广大教师而言,还需要进一步研究和探索如何更科学、合理地开展教学改革,研究更有效的教学模式,培养出新时代环境下的计算机人才。

参考文献:

[1] 严蔚敏,吴伟民.“数据结构”(C语言版)[M]. 北京:清华大学出版社,1997.

[2] 王玉锋,刘宝旨,王猛,等. 也谈“数据结构”的教学[J]. 计算机教育,2007(15):20-23.

[3] 戴敏,于长云,董玉涛. 高效学习数据结构[J]. 计算机教育,2006(2):59-60.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!