“数据结构”课程教学反思与改革.doc
文本预览下载声明
“数据结构”课程教学反思与改革
摘要:本文在教学实践的基础上,阐述了当前在“数据结构”教学过程遇到的主要问题,从综合运用多种教学模式和手段、强调基础知识的理解、完善教学评价制度、加强实践教学环节等方面提出了改革措施,并在课程教学中实践,取得了良好的教学效果。
关键词:数据结构;方法;实践;教学评价
中图分类号:G642 文献标识码:B
“数据结构”是计算机科学与技术专业重要的专业基础课,在整个专业课程体系中处于承上启下的核心地位。它一方面扩展和深化了“离散数学”、“程序设计语言”等课程学到的基本技术和方法,另一方面为进一步学习“操作系统”、“编译原理”等专业课奠定坚实的理论与实践基础,更是今后进行高级程序设计、算法设计、软件工程的基础。因此,各高校都非常重视“数据结构”课程的教学工作,这也是计算机教育改革的重点和热点。
笔者一直从事“数据结构”课程的教学实践,从青年教师的角度出发对该课程教学中出现的问题进行了反思,并提出自己的看法和解决思路,希望与同行共同交流。
1教学中遇到的问题
计算机专业的学生今后大多将从事与计算机应用与软件开发相关工作,因此迫切希望能学好此课程。但是在实际教与学的过程中,有时教学效果并不理想,教师感觉讲授比较吃力,许多学生感觉课程抽象、枯燥,入门困难。在几年的“数据结构”课程教学和实践过程中,我们发现主要存在以下一些问题。
(1) 课程的性质决定学习难度大
“数据结构”课程强调问题的分析和抽象表达,把现实中遇到的问题抽象出其逻辑模型(包括数据及它们之间的关系、实施的操作等,即ADT),再选择适当存储结构(存储数据及关系),设计出各个操作的算法从而在计算机上解决问题。它是一门理论与实践相结合的课程。由于缺乏实际应用经验,学生很难将树、图等抽象概念和具体问题相结合起来。
(2) 程序设计基础不扎实
C/C++语言程序设计语言是学习“数据结构”的重要基础。在C/C++语言课程的教学中,由于学生的接受能力和学时的限制,致使C/C++语言中的函数、指针和结构体等重要知识点难以完全理解和融会贯通。另外,大多教师在教学过程中重点强调程序设计语言的掌握,忽视了程序调试技能培养。然而,这些难点和程序调试技术在数据结构课程实践环节中恰好是使用频率最高的内容,结果导致学生在将抽象的理论转化为具体实践的过程中遇到重重障碍。
(3) 学生学习兴趣较高,主动性不够
前期课程介绍强调充分,学生大多明白本课程的重要性,因此学生的学习兴趣较高,但长期以来的学习方式和教学模式让学生在学习过程中缺乏独立思考的主动性,随着课程的深入,学生容易对课程学习的意义产生怀疑,失去学习的兴趣和主动性。如何在整个教学过程中保持学生的学习兴趣也是一个决定教学效果的关键因素。
2教学中采取的措施
针对“数据结构”教学过程中存在的问题,我们一方面查阅前人文献和教改成果,一方面在教学中实践摸索,从教学方法、调整学时分配、完善教学评价制度、加强实践教学环节等几个方面入手提出了改革措施,并在课程教学实践中取得了很好的教学效果。
2.1突出课程主线、强调基础知识
“数据结构”课程整体内容连贯,脉络清晰,系统性、层次性强。在每个章节都有明确的主题和线索,就是每种数据结构的抽象数据类型(ADT),分为定义(抽象)和实现(具体),即“数据结构”的数学模型和定义在该模型上的一组操作及其实现。这也是贯穿整个教学环节的一条主线。
在具体教学过程中,我们当重视概念的建立和基础知识的掌握。例如,第二章线性表是学习的第一种数据结构,按照线性表ADT定义(包括数据结构定义和实施的操作)、ADT的虚拟实现(数据结构的虚拟实现即存储结构、操作的虚拟实现即设计算法)的层次学习。这是第一次把前面学习的抽象概念进行应用,如何定义ADT,如何去实现ADT等都由抽象到了具体,后面其他数据结构都会反复用到,因此第二章线性表是整个课程学习的基础和关键。讲授过程中,我们应当适当放慢速度,并在此过程适当回顾C/C++中的基本知识,必要时写出程序设计的详细过程和代码,以此来使抽象的概念转化为具体的程序实现。再如,第三章栈的应用递归程序设计就是树和图部分算法设计的基础,对用递归方法解决问题的方法、递归的执行过程应该深入地学习和理解。
2.2综合运用实例化和启发式教学
“数据结构”课程中难点较多,许多算法设计巧妙,逻辑性强。针对这一特点,我们在不同的教学阶段采取了不同的教学模式和手段。实践证明,通过精心设计的实例可以加深学生对算法的认识和理解,就是对课程中的重点、难点内容选配简单有效的例题、运用恰当的比喻,把抽象的内容具体化、形象化,帮助学生理解掌握这些内容
显示全部