数据结构课程教学改革研究与探讨.pdf_第1页
数据结构课程教学改革研究与探讨.pdf_第2页
数据结构课程教学改革研究与探讨.pdf_第3页
数据结构课程教学改革研究与探讨.pdf_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

0引言教学的基本目标是切实有效地提高学生的专业素质。专业素质是指学生运用专业知识分析解决实际问题的能力和从中体现出来的创新精神。计算机专业学生的专业素质表现在逻辑思维能力、编程实践能力及软硬件设计开发运用能力等方面。因此,应注重算法训练、实践操作和软件开发等课程的建设,这是实现计算机专业素质教学目标的三个重要环节。要通过加强算法训练,提高学生的逻辑思维能力;通过加强实验技术的训练,提高实践动手能力、编程调试能力;通过对软硬件开发实例的剖析,提高学生的综合应用能力。这些能力的培养,在数据结构课程教学中都可以得到体现,因为数据结构是计算机专业的一门核心专业课程,可以综合培养学生多方面的能力。1数据结构在计算机专业中的地位数据结构主要是为研究和解决如何使用计算机组织非数值问题而产生的理论、技术和方法,其研究不仅涉及计算机硬件(特别是编码理论、存储装置和存取方法等)的研究范围,而且和计算机软件的研究有着更密切的关系,无论是编译程序还是操作系统,都涉及数据元素在存储器中的分配问题。在研究信息检索时也必须考虑如何组织数据,以便查找和存取数据元素。因此,可以认为数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程,在计算机科学中,数据结构不仅是一般程序设计(特别是非数值计算的程序设计)的基础,而且是设计和实现编译程序、操作系统、数据系统及其他系统程序和大型应用程序的重要基础。本课程系统地介绍了软件设计中常用的几种数据结构以及相应的存储结构和算法,课程内容丰富,具有严密的逻辑性,旨在培养学生的数据抽象能力。通过本课程的学习不仅为学生后继课程提供必要的知识准备,而且更重要的是为提高软件设计和编程水平打下坚实的基础。使学生在软件开发的过程中能够正确、合理地选择数据的存储结构,有效地设计算法。2课程之间的内在联系课程建设,首先要考查、分析各门课程相互间的内在联系。弄清楚课程之间的联系,可以将相关的课程和教学环节组成一个体系,减少授课内容的重复,增强课程的总体效能,实现减时增效。数据结构课建立在数据结构课程教学改革研究与探讨王文豪,张亚红,陈晓兵(淮阴工学院计算机工程系,江苏淮安223001)摘要:数据结构是计算机学科中重要的专业基础课。分析了该课程教学存在的主要问题,鉴于该课程理论和实践性强、内容丰富且抽象以及难以将理论知识应用到实际中的特点,从更新教学内容、革新教学手段、改革教学方法和加强实践环节等方面进行了课程教学改革方面的探讨。关键词:数据结构;课程改革;课程体系作者简介:王文豪(1973-),男,江苏淮安人,淮阴工学院计算机工程系讲师,从事数字图像处理、模式识别研究。中图分类号:G642文献标识码:A文章编号:1006-2165(2009)03-0156-04收稿日期:2008-03-02第29卷第3期2009年5月大庆师范学院学报JOURNALOFDAQINGNORMALUNIVERSITYVol.29No.3May,2009156多门先修课程基础上,为后续课程提供理论和实践基础(如图1)。图1数据结构与其它课程的关系高级语言(PASCAL、C、C+等)是本课程的先修课程。学生对它的熟悉、掌握程度直接关系到数据结构课程的教学效果。因为高级语言中介绍的数组、串、指针、过程和函数等基本概念和基本知识,是数据结构课程的重要基础,在数据结构课程中使用频率很高。数据结构的算法都是使用高级语言来描述的。学生对高级语言学习的好坏对数据结构的学习有直接的影响。我们曾对本系2004级和2005级计算机科学与技术专业学生提出的问题在归类数据挖掘模型中统计,有关高级语言的问题占了26.42%,在各章节问题中占最大比例,学生在学习数据结构过程中碰到的问题比较多还是停留在高级语言语法与程序的理解上。因此高级语言对学生掌握数据结构知识起着举足轻重的作用。在数据结构课程中直接使用了离散数学所探讨的集合论、树、图论、推理逻辑的相关知识。在不少数据结构教材中,将数据间的逻辑结构定义为一个二元组Data-Structure=(D,S),其中D为数据元素的有限集,S为D上关系的有限集,这是离散数学中二元关系的一个典型应用。例如,线性表结构是这样定义的:Liner-List=(D,R),D=ai|aiD,i=1,2,3,n,n0,R=N,N=|ai,ai-1D,i=1,2,3,n。只有正确掌握了二元关系中序偶的概念,才能从数学的角度彻底理解线性表的定义。再如,数据结构中树的定义用到了离散数学中二元关系和集合划分的概念,并且使用数学的语言描述了树的固有特性递归性。离散数学中许多经典问题的解决方案是数据结构中的相应算法的基础。在离散数学中这些方案是用数学语言描述的,而在数据结构中则将其细致化,考虑采用何种存储结构将数据存储到计算机内,并用算法设计语言写出具体算法。例如,Huffman树的构造与Huffman编码的求解、图的最小生成树、关键路径、最短路径、求二分图的完美匹配等。对计算机学科来说,数据结构与算法的概念是至关重要的,它们是计算机学科的基础,更是软件技术的基础,数据结构与算法之间有着本质的联系,当谈论一种算法时,自然要涉及算法所处理的数据问题,即要对其数据进行分析;同样在讨论数据的组织或结构,离开了对处理此类数据的运算极其算法的研究也是无意义的,即要对其算法进行分析和研究。本课程的学习过程也是复杂程序设计的训练过程,要求学生编写的程序结构清楚和正确易读,符合软件工程的规范。如果说高级语言程序设计课程对学生进行了结构化程序设计(程序抽象)的初步训练的话,那么数据结构课程就要培养他们的数据抽象能力。数据结构课程的实验,要求学生创造性地应用各种数据结构和算法,解决实际问题。这不仅能提高学生思维逻辑能力,为以后的研究和工作打下坚实的基础。而且也是高级语言的一次综合应用。这就要求在教学中,通过逐步分析讲解实例,采用启发式、指导式的教学方式1,培养学生的算法设计能力和应用能力,使学生真正掌握有关算法的要领和精髓。数据结构对其他课程的学习和今后很多领域的理论研究都具有深远的意义。编译原理要使用栈、散列表及语法树;操作系统中要用到队列、可利用空间表的分配与回收及目录树等;数据库系统中要用到线性表、多重表、多链表、倒排表及索引树等进行数据管理;人工智能、计算机网络等应用领域,则依问题性质的差异将涉及到各种不同的数据结构,如广义表、搜索树、图结构等。因此,数据结构课程在计算机科学中占有十分重要的地位。3数据结构课程教改思路培养目标和本专业主要课程间的内在关系来决定教学内容和教学方法,结合本系学生的特点,对数据结构课程的教学进行探讨。1573.1注重前导课程在数据结构中的重要作用高级语言、离散数学等课程是数据结构的前导课程,学生对这些课程学习得好坏直接影响数据结构课程的教学。因此,加强前导课教学,也是数据结构课程教学的必备条件。在学期伊始可以给学生事先布置前导课程的复习任务,并用一次或两次课时的时间复习一下相关的知识,并在教学过程中结合学生特点和相应算法,对有关知识作适当补充。这样学生一方面感受到前导课的重要性,另一方面又弄清了课程之间的内在联系。这对于学生学习当前课程和以后课程都会起到较好的作用。3.2注重讲授方法和讲授内容,培养学生的学习兴趣2我们知道,如果学生对一门课程建立了浓厚的学习兴趣,那么他们就会具有主动学习的精神和学好这门课程的动力。这对提高他们软件技术和编程技术水平是非常重要的。3.2.1从教学方法和教学手段上激发学生的学习兴趣“兴趣”是最好的老师,为了培养学生学习数据结构的兴趣,在教学过程中,可以结合一些具体的应用实例,说明各种数据结构在一些典型软件中的具体应用。让学生一边逐步学习理论知识,一边思考如何应用,提高学生的学习热情。比如在学习线性表之前,举几个常用的线性表的应用实例;又如在学习查找和删除这两个章节,可以和操作系统中文件的检索、删除相联系,利用我们所学过的算法通过上机实践来模拟操作系统如何实现文件的检索和删除。这样学生在学习的过程中能够学以致用理论联系实际,不但提高了学生学习的兴趣,同时提高了教学质量。在课程讲授过程中,可以针对教学内容讲授的重点、难点,结合习题,设计一系列课堂讨论题目,并且将讨论题目提前下发给学生,使学生对讨论题目提出的问题有所思考。通过课堂讨论教学,不仅为学生创造了轻松、愉快的学习环境,而且充分发挥他们的想象力和创造力,同时也使学生对理论知识的理解和掌握更加深刻、扎实,能够融会贯通、举一反三。变革传统的教师讲、学生听的“填鸭式”的教学方法。为了在课堂上激发学生的学习热情,发挥学生的学习积极性,可以采用循序渐进的教学模式3。例如,在讲解直接选择排序时,先拿一些具体数据来模拟算法的运行,在模拟时注意不但要将思想描述给学生,同时不断地提出问题,让学生在自己的脑海里已经开始将你所说的思想用程序语言将问题逐一地试着解决。然后,带领学生一同用所学的语言,将所描述的思想一句一句地编程实现,这个过程虽然比较浪费时间,但是结合多媒体的教学方式,可以节省很多用粉笔书写的时间,不但锻炼了学生分析问题的能力,而且提高了学生自己动手编程的能力,更重要的是改变了以往只是一味地“填鸭式”的教学,活跃了课堂氛围,提高了学生学习的兴趣。运用多媒体教学,是现代化教学的重要标志之一。多媒体教学有很多优点,集讲课、习题课、演示算法为一体,具有生动、形象、直观的特点,能极大地调动学生听课的积极性,有助于学生很好地理解和掌握所学内容。例如,二叉树的结点总数等于分支数加一,结合多媒体图形,只要反方向的观察一棵树,就会发现每个结点(除根结点外)对应一个分支,从而可以直接得出结论。又如递归算法,可以借助某些演示软件,动态演示算法的执行过程和堆栈的使用,这样既可直观理解递归算法,又可理解递归的实际执行过程。利用多媒体进行动态演示,揭示知识的内在特性,对所学知识进行剖析,很快地就能使学生从感性认识上升到理性认识。所以多媒体为学生实际观察、分析以及提供感性知识创造了有利条件,调动了学生学习的积极性和主动性。3.2.2以实用性培养学生学习的兴趣和主动性数据结构课程内容理论性较强,学生不清楚所学有何用处,往往在学习中表现疲态。在教学过程中,可以结合实际应用示例,把教学内容与这些内容有机地结合起来,使学生在学习本课程的过程中,对理论知识的应用有所了解和掌握,这将会大大激发学生的兴趣,调动学生积极性。例如,利用“栈”和“队列”解决停车场管理计费,停车场是一个只有一个大门进出,可停放n辆汽车的狭长通道(通道就要采用“栈”的结构)。汽车在停车场内按车辆到达时间的先后顺序,依次排列(只要停车场通道未满则一直“进栈”),如车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候(便道就是一个“队列”)。一旦有车开走,则排在便道上的第一辆车即可开入(“队列”的第一个元素进栈);当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路(让路的过程就是“退栈”,使要离开的汽车成为“栈顶”元素;实现该过程还158需要多一个辅助栈作为临时存放退栈的车辆),待该辆车开出大门外,其他车辆在按原来次序进入车场(辅助栈中的车辆“退栈”重新进入通道),每辆停放在车场的车在离开停车场时必须按它停留的时间长短交纳费用(在过道上停留的时间不收费,这个就属于一般编程问题了)。再有“二叉树”,哈夫曼编码进行通信可以提高信道利用率,缩短信息传输时间,降低成本。“图”解决旅游最短路径,项目或网络通讯造价,多叉路口交通灯等问题。通过实用示例既形象又直观,使学生认识到结构与算法并不是孤立和刻板的,既而使学生更加明确结构与算法作用,从而提高学生运用算法解决实际问题的能力。3.3强化实践4,提高技能数据结构课程是一门实践性很强的学科,隐含于教材中各种算法的设计技巧丰富、形式多样,但先修课程中所介绍的相关专业知识又不多,因而学生在学习过程中常常觉得教材中的内容与具体的算法设计题相距甚远,无从下手。要使学生真正学好、学懂数据结构,除了在课堂上要采用行之有效的教学方法外,还应加强实践环节,即加强上机实践和课程设计环节。3.3.1加强上机实践上机实践不仅能进一步提高学生灵活运用数据结构的能力,而且使学生在编程、上机操作、程序调试与正确性验证等基本技能方面受到严格的训练。在实际教学工作中,我们可以设置三个层次的实验内容进行教学,第一层次是与课堂教学紧密结合的实践,或称为验证性实验;第二层次是先进行理论教学,后集中时间进行实践,如大型实验;第三层次是多门知识综合、参与科技作品竞赛、参与教师的科研项目等方面的实践。把学生划分为若干学习小组,撰写论文或参加一些项目的设计,引导学生对所设计的课题进行系统分析、数据组织和处理从而去解决问题,使学生提前受到科学研究方法的熏陶,提高了学生查阅资料和文献的能力,也锻炼了学生科技论文写作的能力。为此,我们可以把学生机房的管理模式变为灵活的开放式管理,划卡上机,随到随练。3.3.2变革传统的课程设计方法以往的课程设计都是教师出题学生做答。其实可以把课程设计分成两个阶段:首先由学生按自己的兴趣和爱好查找优秀的经典的课程设计题

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论