数据结构课程教学方法的探讨
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构课程教学方法的探讨
发表时间:2009-07-17T14:22:04.577Z 来源:《中外教育研究》2009年第3期供稿作者:黄德玲汪林林
[导读] “数据结构”是计算机程序设计的重要理论技术基础,是软件工程专业的核心课程。
数据结构课程教学方法的探讨
黄德玲汪林林重庆邮电大学
【摘要】依据“数据结构”课程的特点,结合教学中的一些经验,从教学实践出发,对“数据结构”课程教学方法的改进提出了一些意见和建议,以期加强“数据结构”课程建设,提高学生实践能力和创新能力。
【关键词】数据结构教学方法课程建设
【中图分类号】G642 【文献标识码】A 【文章编号】1006-9682(2009)03-0061-02
一、引言
“数据结构”是计算机程序设计的重要理论技术基础,是软件工程专业的核心课程。“数据结构”主要研究的内容包括数据在计算机中的表示和组织,进而研究对数据的处理方式。因此,这门课程要求学生会分析计算机中各种数据结构的特性,并且初步掌握算法的时间分析和空间分析技术,以便遇到实际应用问题时会选择适当的逻辑结构、存储结构及相应的算法。而该课程内容多、综合性、实践性强,如何取得良好的教学效果,本文就该课程教学方法的改进做一探讨。
二、存在的问题及改革方法
传统的教学方法过分偏重讲授,导致学生通过学习,虽然能够掌握各种数据结构的一些基本知识,会做题,能通过卷面考试,但由于缺乏自己的思考和运用,对数据结构课程的意义并不理解,甚至不知道不同的数据结构如何运用,如何变化,在实践过程中更不能灵活运用。本文所讨论的数据结构课程教学方法改革的主旨就是要加强培养学生的创新精神和创造能力,采用启发式、讨论式、研究式的教学方法,这需要我们从课程的一开始就着手培养学生的兴趣,引导学生发现问题、解决问题,最后能有创新的运用,具体采用以下几点做法:1.提高学生的学习兴趣,第一堂课很重要。
俗话说:“良好的开端,是成功的一半。”因此,数据结构课程的第一堂课,不要急于给学生灌输基础的理论知识,而应从学生身边的一些有趣的应用入手,激发学生们的学习兴趣和主动性,引导学生从宏观上了解数据结构的知识在日常生活中的运用,并大致掌握各种数据结构的意义,理解课程的安排,找到教师的讲授和自己的学习线索。比如,计算机如何才能与人对弈,如何应对变化的情况给出考虑周全的相应对策,实现灵活对弈,用一棵倒着生长的“树”就可以解决这样的问题;打印机的速度比CPU慢,那么,怎么解决可能出现的数据丢失或者打印次序混乱的问题,用“队列”这个数据结构就可以解决这样的问题;智能汉字输入法是如何实现把常用的字排在候选输入的最前面的,用课程中涉及到的查找的方法去解决;还有图书馆的书目检索系统涉及到线性表,多叉路口交通灯的管理涉及到图的染色等等。所有这些问题都是同学们所熟悉的、贴近生活的问题,因此可以激发同学们探索问题的解决方法,渴望掌握相应的数据结构知识。这样便形成了一个良好的开端,带着兴趣和愿望去学好数据结构这门课程。
2.采用问题驱动的启发式教学方法
通过几轮数据结构课程教学实践,发现多数同学可以掌握数据结构本身的相关理论知识,能读懂书本上的算法,但是遇到实际问题,要求设计一个算法,就感到无从下手。这个问题的原因是来自各方面的,其中可能包括同学们的程序设计语言学得不够扎实,但更重要的是教师讲授得太多,而给同学们思考和练习的时间太少。教师在教学过程中可以先提出问题,启发式地讲解解决问题的思路和方法,调动学生积极思考,使他们主动去掌握知识。教师需要注意的是,在提出问题的时候引导学生分析问题,找出适合的数据结构解决问题,然后再引出学生需要学习和掌握的新知识,并深入详细地讲解重点知识和相关算法。算法的分析需要注意突出重点,分散难点,并在适当的时候设置一些问题,引导学生自己去积极思考,寻找解决途径,使课堂活跃,使学生在课堂上收获更多。当然,不少教师认为教学任务重,如果在课堂上给学生太多时间,教学任务可能无法完成。这就需要在给学生更多的思考机会的同时,权衡教学内容的取舍,不求广,但求精。只要学生掌握了分析问题的方法,便可以解决课堂上即使没有覆盖的问题,引导学生掌握方法一定比在课堂上罗列问题解决问题效果更好,毕竟实际生活中的问题是永远无法被穷举的。
3.加强实践教学
除了在课程开始时给出应用例子,设计好每一知识单元的实验和综合性的课程设计环节,是提高学生程序设计能力非常关键的一步。在课程的理论教学中,教师为主,学生为辅,在实践教学中一定要打破这个角色定位,实现学生为主,教师为辅。教师在给出实验任务后,要引导同学们分析解决问题,自己编写程序。在实验过程中,教师对个别同学存在的特殊问题可进行个别辅导,随时总结,对具有共性的问题,应给予集体辅导。在学生编写完自己的程序之后,教师应给出一个示范程序,以便学生们可以参照示范程序发现自己思路的缺陷或者不足,以及完善改进自己的程序。
在期末设置综合性的课程设计环节,要求学生分成若干小组,精心设计一些难度系数不同的综合性问题,每小组据不同难度,组员3~5人不等,组内成员分工合作完成分析设计和实现,最后提交规范的课程设计报告。教师除给出题目外,需要同时引导学生分析问题的方法和角度,使学生积极参与,调动学生的主动性,激发学生的创造力,不断培养学生发现问题、分析问题的能力。最后要求学生采用软件工程的思想,按照软件工程的要求,从需求分析、总体设计、详细设计、编程实现到用户使用说明和测试结果等方面组织成标准化文档。这种规范有利于提高学生的基本程序设计素质和形成良好的程序设计习惯,同时也可以完善学生软件开发的能力。另外,建议在制定成绩考核机制时,加大实践教学的权重,让学生重视能力的培养,培养学生将理论知识灵活应用于解决实际问题的能力,适应高等教育中应用型人才的培养需求。 4.注意多媒体课件的使用
通过多媒体课件,可以为许多原本对学生来说抽象的算法制作动态演示过程,如链表的插入、删除、二叉树的遍历、图遍历、各种查找排序等等。通过动态演示,学生很容易理解各种操作过程,事半功倍。通过多媒体课件,可以很清晰地给学生展示授课思路、回顾历史知识等。但同时使用多媒体课件也存在一些弊端。由于它信息量大,呈现速度快,如果教师不及时把握学生对知识的理解情况,极可能导致学生不能接受过多的信息。另一方面,由于有了电子课件,许多学生不做笔记,在课堂上就只是“听”课,不动脑,不动手,往往有时课堂上以为自己懂了,实际却不然,课后遇到相似甚至相同的问题仍然无法编写出算法。因此,教师在使用多媒体课件时,一定要注意与板书结