九九文秘网 - www.nagforex.cn 2024年05月17日 14:43 星期五
  • 热门搜索:
  • 当前位置 首页 >专题范文 > 公文范文 >

    《数据结构》课程教学研究与探讨

    来源:网友投稿 发布时间:2022-10-21 17:42:02

    摘 要:本文分析了数据结构教学中存在的问题及现状,并结合多年的教学经验从如何正确认识数据结构、制定专门的前驱课程大纲、构建整体教学内容体系、系统化实践教学等六个方面,提出了解决这些问题的方法和建议。教学实践表明,通过在教学中采用以上教学方法,提高了数据结构的教学质量,并取得了良好的教学效果。

    关键词:数据结构;教学方法;任务驱动;实践教学

    中图分类号:TP311.12-4

    数据结构是计算机专业中介于数学、计算机硬件和计算机软件三者之间的一门综合性的专业基础课。数据结构的内容不仅是程序设计进行总结和提高,而且是编译原理、操作系统、数据库系统等后续专业课提供基础,具有承上启下的重要作用。本文针对数据结构的课程特点和教学过程中存在的问题,探讨教学实践中如何针对产生的问题进行教学改革与实践,以提高教学质量和学生学习效果。

    1 数据结构教学中存在的问题与现状

    1.1 缺乏对数据结构认识。正确深刻地理解数据结构的涵义、作用以及数据结构课程内容体系是学习好数据结构的前提和基础。但是,一般情况学生只是大概了解了数据结构的概念,在缺乏正确认识和深刻的理解的情况下,就开始直接学习课程内容了,认为具体的内容才是最重要的。对于为什么需要数据结构,课程中包括哪些内容,从哪些角度和方面对数据结构进行讲解,原因是什么等等,都没有认真研究和体会,导致数据结构的学习效果和教学效果都不甚理想。如果这些问题都理解了,就从整体上认识了数据结构,那么学生学习,教师教授都会有的放矢。

    1.2 C语言知识储备与数据结构的要求相脱节。数据结构涉及指针、结构体、类型定义、函数调用等相关知识,所以要求学生对这些内容的掌握程度比较高高。但是在C语言教学中,一方面,这些内容都是在课程的后半部分且学习起来难度较大,学生学习有畏难情绪,往往对这些内容掌握不牢;另一方面,教师在授课过程中,对不同专业区别度不大,很少特别为后续课程的需要专门对相关知识做重点讲授,这样就影响后续课程的学习。最终导致学生掌握的C语言知识不能满足学习数据结构课程的要求。

    1.3 缺乏独立分析解决问题的能力。在课堂讲课过程中,一般以教师讲授课程内容为主导,在讲解课程内容时,学生貌似都学会了,和老师的互动也非常积极,对老师提出的启发式问题都能正确回答,认为课堂上老师所讲的实例也都很简单。但是,若在没有老师的引领的情况下,让学生单独分析、解决一个例题,多数学生就很难掌握方向,不知从哪做起,缺乏独立分析问题、解决问题的能力。

    1.4 动手编程能力不强。相对于理论知识的学习,学生在上机实践中遇到的问题更大。学生的程序设计基础薄弱,缺乏足够的系统训练,对调试程序的方法不够熟练,程序结构设置不合理,代码编写可读性差。即使一些学生看懂了教材上的算法,将其转换成能运行的C语言程序,也存在一定的难度。这些都对学生的学习效果都有较大的影响,甚至会削减学习的积极性,进而产生畏难和厌学情绪,产生恶性循环,有些学生干脆不学了。数据结构中教学中出现的这些问题,严重影响了数据结构课程的教与学,探讨数据结构课程教学方法,势在必行。

    2 教学探讨与实施

    2.1 正确认识“数据结构”。认识数据结构课程不仅仅让学生了解其在专业中的地位和重要性,更要理解数据结构课程本身的涵义和作用。所以在课程开始的时候开课之初,对课程绪论部分的讲解不应吝啬时间,要把这部门内容讲清楚讲透彻。数据结构是一门研究非数值计算机的程序设计问题中计算机的操作对象以及他们之间关系的操作等的学科。从这个定义中,我们从中抽取对象、关系、操作等关键词,再以设计实现一个家族家谱这样一个比较形象的例子进行讲解,进而引出如何存储表示数据对象及关系和能对这个家族的族谱做哪些操作,这样就引入了逻辑结构和物理结构的知识以及对数据结构建立相应操作的问题。这样学生就基本能建立数据对象、数据关系、基本操作三元组的概念,并能深刻理解逻辑结构与物理结构的概念和关系。从总体上认识、把握、建立数据结构的整体概念是学习好数据结构的基础。

    2.2 针对数据结构课程需要制定C语言课程教学大纲。因为不同专业学习C语言的要求不同,所以根据教学计划制定科学合理的数据结构前导课程的教学大纲、考试大纲能有效解决前导课程储备知识不足的情况。根据教学计划安排有数据结构课程的专业,其C语言课程与其他专业的课程不同,是单独列出的。其教学大纲、考试大纲等教学文件由讲授C语言和数据结构的老师根据专业特点及后续课程的需要共同研究制定,并按学校的规定定期修订。教学中只要按照制定好的教学大纲等相关文件规定执行,就能满足数据结构课程的要求。这样就从源头上解决了C语言储备知识不足的问题,避免了以往数据结构课程教师需要与C语言课程教师沟通重点讲解哪些内容,但因只是个人行为而没有学校相关文件规定的限制,所以不能达到较好的效果。通过制定专门的教学大纲,也无需要求数据结构与C语言课程采用“一师制”,避免了人员变动等其他因素带来的不确定性影响。

    2.3 构建整体教学内容体系。数据结构课程内容抽象涉及很多概念和技术,学生在学习的课程过程中总是感到知识没有连贯性与整体性,难以对所学内容融会贯通,对课程的知识缺少一个整体的把握。所以建立整体的知识框架体系对数据结构的教学非常重要。数据结构课程的内容主要围绕数据的逻辑结构、数据在计算机中存储的物理结构以及对数据操作算法的实现及评价展开。数据的逻辑结构根据数据对象之间关系的不同特性,分为线性结构(一对一)、树形结构(一对多)、图结构(多对多);数据的物理存储结构按照数据对象之间关系的表示方法分为顺序存储结构和非顺序存储结构。在教学中引入抽象数据类型(ADT)观点介绍数据结构技术,采用算法时空分析来判断算法的好坏。在讲授每一个数据结构时,以抽象数据类型为主线,按照抽象数据类型的定义—抽象数据类型的设计—抽象数据类型的实现三个层次展开来讨论,渗透并应用模块化的思想,在此基础上介绍数据结构的具体应用。在教学过程中教师会反复强调课程的篇章结构及其关系,数据结构课程的章、节、目,是课程的“骨架”,反应了课程内容的逻辑关系,以此加强学生对课程的内容体系的理解和掌握。

    2.4 课堂上适当进行编程示范教学。教学过程中,我们发现,学生能听懂老师所讲授解题的算法思路,但就是不知道如何用编程语言或算法表达出来。为解决这一问题,在教学中会在课堂上对有代表性的算法进行现场编程演示。课堂上教师先带着学生先把算法总体思想写出来,接下来选择合适的物理存储结构利用C语言进行编程调试运行。这种方法可以让学生掌握将解决问题的思路转变成代码的全过程,对学生编写和调试程序起到很好的示范作用。在编程过程中,教师会边写代码边讲解,引导学生积极献计献策一起来解决问题。由于现场编程比较耗费课时,对于比较长的程序,一般教师会在课前完成,留下解决问题的关键步骤在课堂与学生一起编程实现。通过这个过程学生能深刻理解绪论中算法的设计只取决于将要解决问题的数据对象之间的逻辑结构,而算法的实现则依赖于数据对象及其关系的存储结构。同时学生也能认识到用类C语言表示的算法与用C语言编写的程序有哪些不同。有了现场的变成演示,在上机实践中,学生直接将教材上的算法照抄到计算机内运行的情况大大减少,理解了如何将抽象的数据结构理论应用到实际解决问题当中去。

    2.5 任务驱动教学方法的应用。所谓“任务驱动”就是在学习信息技术的过程中,学生在教师的帮助下,紧紧围绕一个共同的任务活动中心,在强烈的问题动机的驱动下,通过对学习资源的积极主动应用,进行自主探索和互动协作的学习,并在完成既定任务的同时,引导学生产生一种学习实践活动。“任务驱动”是一种建立在建构主义教学理论基础上的教学法。它要求任务的目标性和教学情境的创建。使学生带着真实的任务在探索中学习。在这个过程中,学生还会不断地获得成就感,可以更大地激发他们的求知欲望,逐步形成一个感知心智活动的良性循环,从而培养出独立探索、勇于开拓进取的自学能力。在教学中,我们应用了任务驱动的教学方法并加以改进,达到了较好的教学效果。我们的做法是根据不同的场景“任务”不仅仅是学生的,也是老师的,或者是由老师和学生共同完成的。比如在讲解第二章线性表的时候,我们就会根据课程内容,设计完成一个共同的任务:一元多项式的相加。为了完成这个任务师生共同找解决的方法,当然任务的完成需要老师的按既定的方向循序渐进地引导,先讲解两个集合合并到一起的算法,再讲解将两个按值非递减有序排列的线性表如何合并,一元多项式相加的问题稍加改进就解决了。在完成一些比较大任务的过程中,我们会将其分解成若干个小任务让学生独立完成。当然,在教学实践中也不是所有的内容都可以通过任务驱动的方法实现,不能执行一刀切。授课教师应根据课程内容,学生的能力多方面考虑设计合适的任务。任务太大完不成,容易打消学生的积极性,任务太小不能起到应有的作用。

    2.6 系统化实践教学。为了满足不同层次学生对实验题目难度,提升学生对实践教学的兴趣;我们针对不同学生的特点,制定分层次实践教学的方法。按照实验的难易程度分为验证性实验、设计性实验、综合性实验三个层次。验证性实验根据数据结构基础内容设计,难度较低。目的是让学生掌握基本数据结构的特点和基本概念,同时掌握基本算法及应用。在上机指导中授课教师将验证性实验作为主要的考核内容,只有对基本算法的完全掌握,才能灵活应用。设计性实验是在验证性实验的基础上增加难度和深度。根据特定的数据结构有针性设计题目,必须使用某种数据结构解决。授课教师会和学生一起分析问题,引导学生如何解决,如何设计数据结构,采用什么样的算法,但是具体的数据结构及算法编程实现需要学生独立完成。综合性实验一般要求综合使用多种数据结构解决一个难度较大的现实问题;主要训练学生综合运用知识的能力、协作能力和创新能力。由于问题难度较大,我们采取将综合性实验安排在课程设计阶段。

    教学实践证明,这种重点进行验证性实验,适当补充设计性实验,通过课程设计完成综合性实验的分层次的实践教学体系,符合学生的认知规律和特点,在实践教学中也取得了较好的教学效果。

    3 总结

    数据结构课程在计算机专业的课程体系中具有非常重要的作用。本文通过对数据结构课程教学中存在的问题及现状进行深刻剖析,结合教学经验有针对性地提出了相应的解决方法,从问题的源头上避免了这些问题的发生。教学实践表明,通过在教学中采用以上教学方法,提高了数据结构的教学质量,并取得了良好的教学效果。

    参考文献:

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

    [2]余建国,刘双红.基于任务驱动的协同教学模式在程序设计类课程中的研究与实践[J].科技信息,2009,27:104,83.

    [3]陈红琳.《数据结构》课程建设的探讨与实践[J].现代计算机,2012,10:45-47.

    [4]马霞歌.数据结构教学方法研究[J].现代电子技术,2007,1:189-193.

    [5]刘运通,梁燕军.依据认知规律的数据结构实践教学方法探索[J].计算机教育,2013,6:95-98.

    推荐访问:数据结构 教学研究 探讨 课程

    Top