您好, 访客   登录/注册

《数据结构》课程教学改革的研究

来源:用户上传      作者:

  摘要:结合教学实践,在分析目前数据结构课程教学现状的基础上,以激发学生学习兴趣入手,提出相关教学改革内容和教学改革手段。该文研究的成果通过在长期的教学实践中的应用,在实践教学中取得良好的效果,得到学生的好评。
  关键词:数据结构;教学现状;教学改革;学习兴趣
  中图分类号:G642文献标识码:A文章编号:1009-3044(2011)04-0954-02
  Research Educational Reform about "Data Structure" Course
  ZHAO Xiao, SUN Lian-shan, WANG Xiao-xia
  (Electrical and Information Engineering College, Shaanxi university of Science & Technology, Xi'an 710021, China)
  Abstract: Depending on teaching practice, and on the base of analysis the present teaching construction of data structure course, stimulating the student's interest, we bring up educational reform about contents and methods. The achievement of this paper studies has a good shows in practice teaching, and Obtained many student's commendation.This article studies the achievement through in the long-term teaching practice's application, makes the good progress in the practice teaching, obtains student's high praise.
  Key words: data structure; teaching present situation; educational reform; study interest
  数据结构是计算机科学与技术专业的重要专业基础课,在整个课程体系中处于承上启下的核心地位,它一方面扩展和深化在离散数学、程序设计语言等课程学到的基本理论和技术,另一方面为进一步学习操作系统、编译原理、数据库等专业课奠定理论与技术基础。
  数据结构课程能够培养学生的抽象思维能力、逻辑推理能力,锻炼学生分析问题、解决问题的能力,使学生从对程序设计语言基本语法以及离散数学的抽象理论的学习逐渐过渡到对解决实际问题、进行大型、复杂软件程序开发所需要的专业理论和技术的学习上来,是激发学生对专业课学习兴趣,树立专业自豪感的关键。如何激发学生的兴趣,让学生爱上学习《数据结构》,是目前数据结构教学中值得任课教师思考的问题,如何培养学生理论联系实际,应用所学知识分析问题、提出方案、改进、总结提高再到创新,树立创新意识和信心也是教师义不容辞的责任,所以有必要对该课程进行改革,让学生学好《数据结构》,并能应用好《数据结构》。文章以目前该课程教学的现状入手,提出教学改革的内容和方法,最后总结改革的成效。
  1 课程教学研究的现状
  数据结构课程的学习非常重要,但目前本课程在教学和学习中存在很多需要解决的问题。我们在教学过程中发现,学生在刚刚接触这门课的时候不知道怎么去学,对学过的知识也不知道怎么应用,而教师也在如何将抽象的概念和枯燥的算法如何准确、生动、高效地传达给学生的问题上,通常是绞尽脑汁、费劲口舌、反复讲解但效果却并不理想。
  通过实践教学观察、与学生谈话交流以及理论分析等手段,我们发现造成这种现状的原因大致来自三个方面:
  1) 课程本身的特点。
  在长期的教学过程,我们总结出如下的特点: ① 内容抽象且繁多。课程内容的抽象程度较高,主要体现在基本概念很多,而且比较抽象难以理解,抽象数据类型以及算法本身并不特定于某一个程序设计语言,且数据结构常常以数学符号表述,这都给学生理解和学习造成了障碍;② 课程内容的逻辑性强,各种数据结构之间存在许多内在的联系,但又自成体系、较为独立,如一方面树、图等以线性表、栈和队列为基础,又广泛用于查找和排序之中;③ 综合性强、技巧性强,数据结构课程综合了计算机硬件、数学、以及计算机软件的知识,各种算法中凝结了近半个世纪的大量杰出计算机科学家的智慧,综合性和技巧性非常强,学生常常因为不能很快入门而丧失学习的信心。
  2) 学生的知识和技能储备不足。
  主要体现在学生对前导课程的掌握不到位,目前大部分高校的数据结构的算法描述工具是C语言,所以前导课程一般为C程序设计,高等数学、离散数学等,尤以C程序设计为重,但在教学中发现每一届学生都存在同样的问题:C语言基础薄弱。因此我们在教学过程中所面临的现实挑战是:一方面要在数据结构的教学过程中逐步培养和巩固学生使用C语言动手编程、调试、阅读程序的能力,另一方面,又要使得大部分学生在缺乏必要的C语言的基础知识的前提下,理解数据结构的理论和神髓。
  3) 教学手段单一、师生沟通渠道有限、教学工具和素材欠缺。
  首先,传统的教学方式以“一言堂”为主,教师讲授是整个课堂教学活动的主线,虽然也有课堂练习、提问、鼓励学生提问等形式活动的穿插,但由于课程内容有一定的难度,同学往往不能正确回答问题、或不能恰当地提出问题。其次,师生之间沟通的渠道非常有限,常常是课上学生不会提问、课下学生找不到教师提问。第三,教学工具只是简单的黑板和粉笔以及少量幻灯片,缺少算法的动态演示和网络学习等多媒体手段,教学素材仰赖于各个教师多年教学活动的积累,教师之间的经验和素材的交流较少,教学素材的数量以及难度分级都非常随意。
  上述内容是《数据结构》课程教学中存在的一些现实问题,我们通过优化教学内容、改进教学手段、丰富师生沟通渠道、建设教学工具和教学素材库、完善考试考核等方法,达到改善教学效果、提高学生综合应用的能力。
  2 本项目研究的内容
  依据对陕西科技大学计算机科学与技术专业数据结构教学现状的分析,我们从以下几个方面实现对本课程的教学改革:
  1) 优化教学内容和教学方法,提高面授效果。
  针对数据结构基本概念多且抽象的特点,在教学中引入案例教学法,以学生已有知识结构和生活常识出发,形象生动的讲解概念,这样不仅学生容易接受而且开拓学生的思维。让学生的学习做到有的放矢。
  比如参考文献[1]的第1章绪论里,基本概念一节中阐述的内容包括有:数据结构,逻辑结构、存储结构等概念。学生刚刚接触数据结构,教师如果对这些概念的讲解处理不好的话,学生是难理解清楚这些概念以及它们之间的联系与区别的,而且很容易让学生产生畏难心理。实际教学中,我们引入学生熟悉的成绩表,相信学生会在轻松的教学环境中学习新的知识。针对上面提到的三个概念,引入的案例是:学生成绩表。有一张记录某班学生各门课程成绩的成绩表,表中每一行(每条记录)包括学号、姓名、性别和各门课程成绩。容容 例如,有一张学生成绩表记录了某一例如,有一张学生成绩表记录了某一个班级的学生各门课程的个班级的学生各门课程的成绩,这张表的每一成绩,这张表的每一行(即每条记录)包括学号行(即每条记录)包括学号、姓名、性别及各门课程的成绩。这张表是包含多条记录的一个集合,每条记录就是一个数据元素,各数据元素之间按照学号顺序排列,所以这张就是数据结构。这里把数据元素用结点表示,分析整张表,第一个结点没有前驱结点,最后一个结点没有后继结点外,其他的结点有且只有一个直接前趋和直接后继。这种关系就这张表数据元素的逻辑结构。紧接着提出:如何把这张成绩表中的数据元素存储到计算机里,对于数据元素之间的逻辑关系用高级语言又该如何表示呢?是用一片连续的内存单元来存放这些记录(如用数组表示)还是随机存放各结点数据再用指针链接呢?这就是存储结构所讨论的问题。到此,学生对这3个概念有了一定的印象,教师及时总结并引入课本的概念,进一步加深学生的理解。
  通过案例教学法,学生通过讨论和老师的引导,在轻松的教学氛围中快速掌握所学的知识。
  对于算法的讲解,根据数据结构在数据类型定义和算法设计中均采用类C形式描述这一特点,又因学生对C程序设计掌握的欠缺,故而对算法的理解和掌握有困难,单一的通过算法讲解算法不如用图形描述更直观。为此引入算法的动态演示系统,增强算法的直观性,提高教学效果。
  2) 激发学生学习的兴趣,鼓励学生对教学内容提出问题,师生共同讨论,提高教学和学习水平。
  兴趣是学习的动力,如果学生对本课程产生极大的兴趣,学生学习的自主性自然就有了。由此可见,学生学习兴趣的培养是至关重要的。培养学生兴趣的方法很多,我们课题组将从以下几个方面实现:① 将工程应用融入到教学中,让学生了解到所学的内容在实际工程中的应用,消除学生不知为什么要学的疑虑;② 鼓励学生在学习过程中不拘于以往的解法,对同一个问题可以提出不同的解法,深化对问题的理解;③ 将奖励的方法应用于教学活动中,比如:布置给学生的实验任务或课后思考题,对完成好的同学,在课堂上发一些诸如本子、圆珠笔等小礼品,以此鼓励。对于大实验做的好的同学采用加分的措施激发学生学习的兴趣。对于一些教学任务事先将内容布置给学生,在课堂上以讨论的方式让学生参与到教学中来,相信会很好的调动学生的积极性。
  3) 精心选择习题和上机实验题,着眼于基本知识的理解和基本编程能力的培养。
  通过我们对同学的调查,发现很多同学存在课上听懂了,课下不会做题的情况,另外学生最怕的是老师让他们写算法,以及上机调试程序。针对这一现象,我们通过一些精选的习题和实验题,学生首先做题然后通过习题课对习题进行精讲,对学生存在的问题集中解决。实验题目要求上机前一定要写好程序,甚至课下用自己的电脑对程序进行调试,上机时逐个给老师讲解程序的实现算法及实现过程以及实验的结果,并对结果进行解释说明。通过这些方法提高学生对基本知识的理解水平,培养学生的编程能力。
  4) 本着“精讲多练”的原则,改进考核方式。
  传统的考试模式是闭卷考试,学生期末的考试成绩=卷面成绩的70%+实验成绩的20%+平时成绩的10%。这种考试模式看似合理但还是存在一些弊端,主要体现在:一份试题很难做到对学生所掌握知识的全面考核,而且试卷内容可能偏重于理论知识的考核,很难反应出学生的实际水平;实验成绩给分仅凭借实验报告显然是不科学,应该加大学生实验过程的考核。对考核方法的改革,我们打破传统的考试模式,除了闭卷考试外,加入实际问题解决能力考核部分;对于实验的考核采用实验考核一对一的方法,教师更注重的是每位学生对实验任务的分析过程,实现方法和结论的考核;同时加大对平时习题完成情况的考核力度,并将其考核的结果加入到最终的考试成绩中,让学生懂得考试仅仅是一种手段而不是学习的目的。
  3 课程改革的成效
  以上教学改革的方法,在我校两届学生数据结构课程实际教学活动中的应用,通过调查有85%的同学表示对该课程产生极大兴趣;78%的同学认为案例教学、工程应用等多种手段引入到实际教学中,消除他们学习的盲目性,建立良好的学习自信心,提高了学习的积极性;通过精选习题的练习、讲解以及实验题目的上机,加大实践教学的考核力度,公平公正的评判学生对课程的掌握程度。在传统教学的基础上,以学生作为教学活动的主体,形成学生自主学习、合作学习、研究性学习和探索性学习的氛围,为学习后续课程打下坚实的基础。
  参考文献:
  [1] 严蔚敏.数据结构(C版)[M].北京:清华大学出版社,2006.
  [2] 顾红生,曲娟.关于数据结构课堂教学模式的研究[J].辽宁广播电视大学学报,2007(4):44-45.
  [3] 徐金梅,罗刘敏.《数据结构》教学方法研究和探讨[J].现代计算机,2007(8):78-80.
  [4] 徐建民.数据结构实验教学ICAI系统的构建[J].实验室科学,2008(3):93-94.
  [5] 杨晓燕.“案例”驱动的“计算机网络”课程教学改革探索[J].计算机教育,2007(18):89-90.

转载注明来源:https://www.xzbu.com/8/view-8699847.htm