“数据结构”教学的探索与研究
《“数据结构”教学的探索与研究》由会员分享,可在线阅读,更多相关《“数据结构”教学的探索与研究(4页珍藏版)》请在装配图网上搜索。
1、“数据结构”教学的探索与研究摘要:“数据结构”是计算机专业的专业基础课程,具有核心和基础的地位。本文从教材选择、教学方法、现代教学资源的利用、实践教学等方面论述了作者的教学体会和观点。关键词:数据结构;教学方法;实践教学计算机硕士研究生入学考试2009年开始改革,采取全国统考的方式,数据结构是考试的必考科目。数据结构是计算机程序设计的重要理论和技术基础,它所涉及的内容和方法,无论是对学习计算机领域的其他课程,还是对从事软件项目的开发都有着重要的作用。学习数据结构要达到的目标是:学会从问题入手,分析和研究计算机加工的数据结构的特性,以便为应用所涉及的数据选择适当的逻辑结构、存储结构及其相应的操作
2、方法,并初步掌握算法的时间复杂度和空间复杂度概念。根据21世纪对人才培养的要求,教学应重在学生能力、素质的培养,尤其是思维能力、创新能力、实践能力的培养。因此,这些年我们致力于数据结构课程的建设,把课程建设作为一项系统工程来抓,从教材选择、课程体系建设、师资队伍、课程教学、实践教学、教学管理等各个环节不断实践和探索,特别是在课程教学方面,加强教学研究和教学方法、教学手段的改革,从提高学生的学习兴趣和加强实践环节教学方面入手,取得了良好的效果。1教材选择计算机软件开发方法是不断发展的,数据结构的课程内容也应随着软件开发方法的不断发展而发展。目前面向对象的软件分析与设计技术已发展成为软件开发的主流
3、方法。因此,用面向对象的思想组织数据结构课程的内容,用面向对象的程序设计语言描述数据结构问题,就成为数据结构课程内容改革的必然。国外在20世纪90年代已将数据结构教材改为用+或Java描述,这主要是适应软件开发技术发展的需要。国内大学虽然在这门课程的教学内容和教材建设方面起步较晚,但目前国内用+或Java描述的数据结构教材已经出现,那么关于教材选择问题应该适应软件开发技术发展的需要。2基于问题的教学方法对于数据结构教学过程中的许多抽象的概念、算法和思想,以教师为中心的教学模式起不到很好的效果。那么授课教师在教学过程中采用什么教学方法,对学生学习兴趣的培养至关重要。在教学过程中,采用以学生为主体
4、、以问题为中心的模式,激发学生的学习兴趣,充分调动学生的求知欲,提高他们的积极性和主动性。在教学过程中,自始至终都围绕问题而展开教学活动,引导学生不断发现问题、提出问题、分析问题并最终解决问题,培养学生的创造性思维。第一,概述讲解中,可引入如下问题:1、树人机对弈问题中,如何实现对弈?各格局之间是什么关系?2、表结构学校学生基本信息管理中的表,各表项之间是什么关系?3、图教学计划编排问题中,如何表示课程之间的先修关系?4、图的最短路径假如你想去大理、昆明、丽江旅游,如何安排路线时间最省?通过这些学生非常熟悉的案例引入数据结构的概念,生动直接,让学生轻轻松松理解了数据结构的概念及其实用,能够提高
5、学生的学习兴趣。第二,在讲述每种线性结构和非线性结构之前,我们应该提出一个应用的实例。通过实例进行课前导学,让学生明白为什么要学习它,它有什么用处。譬如,在讲述队列结构前通过火车的进站出站这个形象例子引出队列理论;在讲述树形结构前,可以引出在网站和信息系统中经常见到的“树形目录结构”的实例、操作系统中文件目录结构的实例,给出应该怎样实现和操作树形的目录,通过实例逐步引出理论。在讲述图结构前,可以先讲述“哥德斯堡七桥问题”,通过这个经典问题引导出图的理论。否则会出现这样的现象:很多学生学习了数据结构之后,不知道所学习的这些数据结构有什么用,或者干脆就认为数据结构这门课程就没有用。为了避免这些怪现
6、象的出现,觉得数据结构课程的讲解务必要通过充分的实例让学生真正理解这些常用结构的实用之处,让学生在分析解决具体问题的时候能够很自然地想到去用自己所学的数据结构。第三,在讲每一种算法的过程中,我们可以采用提出问题、分析问题、解决问题和讨论问题的方式讲解。譬如顺序表的插入算法,我们首先提出问题:想要在一个顺序表的第i个元素前插入一个新的元素,该怎么做?然后通过动画演示分析问题的思路:(1)判断线性表的存储空间是否已满,若已满,则进行“溢出”处理;(2)检查i值是否超出所允许的范围,若超出,则做“超出”处理;(3)将线性表的第i个元素和它后面的所有元素均后移一个位置;(4)将新的元素写入到空出的第i
7、个元素位置上;(5)线性表的长度加1。其次,怎样用一门高级语言实现算法。最后,进行算法分析。在教学中,不断的引导学生分析问题,采取合作互动的方法,学生“画龙”,老师“点睛”,让课堂活跃起来。逐渐培养学生分析问题和解决问题的能力。3充分利用各种现代教学资源首先,在教学中通过合理使用现代化教学手段使教学效果更加直观,编写多媒体教学课件和演示程序,可以让本来抽象的内容变得很容易理解,既消除了学生的畏难情绪,也提高了学生的学习兴趣,强化了教学效果。譬如:栈和队列的入和出的动态表现;排序和查找过程的动态演示;动态链表的基本操作和递归的模拟演示等;这些都可以利用Flash制作出过程演示动画,在讲课的适当时
8、候,给学生演示。而如果仅仅在黑板上画图,不仅浪费上课的宝贵时间而且学生还不容易听懂。比如我们对快速冒泡排序的讲述,简单讲述概念之后,演示课前用Flash制作好的一组数值的冒泡排序过程动画,然后根据演示过程提出快速冒泡排序需要解决的关键问题,再带着提出的问题回放演示动画,从而给出所提出的问题的解决方法。这样形象地讲述,教学效果非常好。其次,充分利用网络为学生提供各种信息资源,用于支持学生的自主学习和协作式探索。譬如:为数据结构课程建立一个学习网站,包括如下内容:(1)各种教学辅助材料:教学大纲、实验大纲、电子教案、教学录像、算法演示程序、典型问题示例程序等等;(2)进阶学习指导:在内容上分层次,
9、将每一章节的内容分为基础篇和提高篇。基础部分是大纲上要求的,每位同学必须掌握;提高部分可以供学习好的同学选学;(3)测试系统:用于学生自己考核自己的学习效果;(4)答疑解惑:为学生和教师之间的交流提供一个平台,便于学生及时发布不懂的问题、教师及时解决学生的疑问。我们自己的数据结构教学网站已经发布在校园网上,而且一直处于完善中,起到的作用非常明显,特别是答疑解惑部分,学生基本都能利用这个平台及时将不懂得问题提交给老师。目前,我们准备再添加关于学生数据结构考研辅导的内容。4加强实践教学环节上机实践是对学生全面综合素质进行训练的一种基本方法,是课堂教学的一种延伸,是必不可少的一个教学环节。编程中的问
10、题往往比平时的习题要复杂的多,也更接近实际。编程能使学生所学到的书本知识“活”起来,起到深化理解和灵活掌握教学内容的目的,同时,编程也是对学生软件设计综合能力的训练。精心选择上机习题,着眼于基本知识的理解和基本编程能力的培养。类是一种实现设计复用和代码复用的有力工具,在程序设计习题选择时采取循序渐进、逐步积累的方式,引导学生自己建立可复用的构件,并在以后的练习中直接使用,提高编程的工程能力和思考能力。譬如:关于顺序表、队列、堆栈、树和二叉树等基本的数据结构,可以要求学生实现相应的类,在实际的应用习题中拿过来就用。比如关于树结构部分可以设计如下上机习题:(1)二叉树的建立和遍历。这个题目是基于学
11、生对二叉树的基本理解;(2)给定一颗二叉树,打印指定结点的双亲和所有的孩子结点。学生在完成这个题目前需完成题目(1),直接利用(1)中所建立的二叉树类和结点类来继续进行此题目的编程;(3)利用Java、+或#中提供的树结构API完成一个简单资源管理器的实现。这个题目难度相对较大,但这个题目的完成应该能让学生真正理解树结构的实用之处。5结束语从2009年开始,计算机专业硕士研究生入学考试改革,所考的科目都统考,数据结构是必考的四门专业课程之一。数据结构是计算机专业的核心课程,是计算机程序设计的重要理论技术基矗因此,开好这门课程对学生来说是至关重要的。所以对于该课程的教学不仅要从理论上进行探讨,还要从教材选择、教学方法、教学辅助资源、实践环节等方面进行研究,以真正提高该课程的教学效果。参考文献1殷人昆.数据结构(用面向对象方法与+语言描述).北京:清华大学出版社,2007.2朱战立.数据结构Java语言描述.北京:清华大学出版社,2005.3王红梅等.数据结构(+版).北京:清华大学出版社,2005.4殷人昆等.数据结构习题解析(用面向对象方法与+语言描述).北京:清华大学出版社,2007.5连进.数据结构课程教学方法的研究J.湖北经济学院学报(人文社会科学版),2008,5(5):183-184.
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。