“数据结构”课程教学反思与改革

2009-09-06 06:26孙歧峰
计算机教育 2009年22期
关键词:数据结构教学评价实践

孙歧峰

摘要:本文在教学实践的基础上,阐述了当前在“数据结构”教学过程遇到的主要问题,从综合运用多种教学模式和手段、强调基础知识的理解、完善教学评价制度、加强实践教学环节等方面提出了改革措施,并在课程教学中实践,取得了良好的教学效果。

关键词:数据结构;方法;实践;教学评价

中图分类号: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综合运用实例化和启发式教学

“数据结构”课程中难点较多,许多算法设计巧妙,逻辑性强。针对这一特点,我们在不同的教学阶段采取了不同的教学模式和手段。实践证明,通过精心设计的实例可以加深学生对算法的认识和理解,就是对课程中的重点、难点内容选配简单有效的例题、运用恰当的比喻,把抽象的内容具体化、形象化,帮助学生理解掌握这些内容,并适当加以引伸,引导并激发学生作进一步的思考和探索。例如在讲解树数据结构时把树和生活中的家族谱联系起来进行比喻说明,学生不仅听起来较有兴趣,而且更容易理解。

“启发式教学法”是指教师在教学中把所讲解的内容与学生的思考有机地结合起来,激发调动学生的积极性和主动性,让学生更好地掌握基本知识和基本技能,从而达到融会贯通地掌握知识和技能,培养学生独立思考能力和创新意识。“数据结构”课程有许多和现实生活规律相通的地方,例如:栈、队列就和生活中停车、排队买饭具有很多相似的规律。教学过程中我们以学生为中心,精心设计问题情境,引起学生的好奇,通过引导、启发、训练学生的思维,取得了较好的教学效果。

2.3重视实践在教学中的作用

学习“数据结构”的最终目的是为了提高应用计算机解决问题的能力,培养并提高学生的实践能力是其教学重点之一。在教学实践中,学生普遍反映课堂上能够理解讲授的知识点,但只要一动手实践就糊涂。学生在实践环节上的失败,反过来又会影响其对理论知识的掌握,打击学习的兴趣和主动性。因此,我们在学生掌握基本理论的基础上,要求和鼓励学生进行一些实践工作,重视实践在教学中的作用。

“数据结构”课程的实践方式主要有三种:一是做习题,二是上机实践,三是课程设计。在课程开始初期,应当适当布置一些习题,主要是帮助学生掌握基本概念和数据结构方法;在进入基本数据结构学习后,让学生通过上机实验来验证数据结构各种存储结构与算法的具体实现;基本数据结构学习结束后为了进一步提高学生对课程内容的理解和动手实践能力,针对性地进行课程设计,选题灵活多样、趣味性强(在课后或者暑期完成)。对学生的上机实践应当严格要求,尤其是要加强上机指导和监督。上机前要求学生做好充分的准备,上机结束后要求学生写出问题分析,算法的时间复杂度分析,以及经验体会。

2.4课程考核的改革

课程考核是教学过程中的重要环节,是督促学生加强学习和了解教学效果的重要手段。作为核心基础课,“数据结构”强调数据关系的抽象,课程本身实践性很强。通过“数据结构”课程的实践,不仅可以提升学生程序设计的能力,更重要的是提高他们对问题分析和数据抽象的能力。因此,考核方案分四个部分:

(1) 平时作业,占10%,主要督促学生注意平时学习和及时复习巩固;

(2) 实验和报告,占20%,目的是加强学生实践动手能力;

(3) 期中考试,占 20%,巩固学生的阶段学习成果;

(4) 期末考试,占50%,主要对课程内容的总结和评测。

可以看出,方案制定的主导思想突出了阶段考核和实践环节考核的重要性。考核方案在一定程度上制约了部分学习意愿较差的学生,使他们在教学过程中始终保持较高的积极性。

“数据结构”学习中上机是非常重要的一个环节,是将抽象的算法转化具体问题,是理解课程内容的关键,但程序设计不是该课程的重点。传统上我们通常要求学生完成规定的实验项目然后才能申请验收和评分,但是在实践中发现,有些实验项目对部分学生而言比较难,只能完成部分内容。为了保护和鼓励学生学习的积极性,突出课程内容,可以对较好完成部分实验任务的学生的成果也进行验收,给予适当的肯定,并分析指出其设计中存在的问题,最后统一给出标准程序。

2.5充分利用计算机辅助教学

教学手段的多样化已成为教学改革的一个大趋势,但不是一味的否定“黑板加粉笔”的传统教学模式。“数据结构”课程教学过程中辅以多媒体教学,不仅可以使一些原来板书不能完成或很难完成的教学问题得到解决,而且还提高了教学效率。我们把清华大学出版社的《数据结构算法演示系统》用于课堂教学,对较难理解的知识点,如递归程序调用过程、排序的数据交换过程、最小生成树等,可以化抽象为直观、形象,取得良好教学效果。

计算机辅助教学绝不是一般的PPT讲课,应该把板书和计算机辅助教学很好地结合起来才能真正达到好的教学目的和效果。

3总结

在教学活动中,教师是教学过程的主导者,教师的教

学经验和方法非常重要,如果能够具有丰富的实践经验,对教学工作就会如虎添翼,讲授也会更有说服力。学生是学习的主体,他们对知识掌握的情况就是对教师工作的最好检验。但教学效果的好坏更主要取决于学生对课程的兴趣和主动性,在教学和实践过程充分发挥教师的引导作用保持学生的信心和积极性是一个重要因素。作为青年教师,应多向老教师学习,使教学过程更加通俗易懂,贴近生活。

“数据结构”是计算机专业的骨干、核心课程,是计算机程序设计和算法的重要理论基础课,学好这门课程对学生来说是至关重要的。因此,对于该课程的教学不仅要从理论上进行探讨,还要从内容结构、教学方法等方面进行研究。本文就实际教学中遇到的几个问题从教学方法、内容组织以及考试考核等方面提出了建议和对策,希望同行共同讨论。

参考文献:

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

[2] 殷人昆. 数据结构(用面向对象方法与C++语言描述)[M]. 北京:清华大学出版社,2007.

[3] 张晓宏. 高校研究型教学范式之探究-启发式教学[J]. 教学探索,2007(3):63-64.

[4] 黎远松. 数据结构课程考试与评价制度改革的探索[J]. 四川理工学院学报:社会科学版,2007(10):88-89.

猜你喜欢
数据结构教学评价实践
数据结构线上线下混合教学模式探讨
重典型应用,明结构关系
信息技术—Internet实用教程教学设计的思考与实践
对农村小学数学课堂教学评价的认识和看法
网络环境下高职英语课程多维度评价方式研究
小学数学“反思型” 教学的探索与实践
初中政治教学中强化新八德教育探讨
体验式学习在数学教学中的应用研究
生物专业师范生教学实习的问题与对策研究
校企协同实施高职专业课程改革的实践研究