资源描述:
《数据结构论文:数据结构实验教学探索》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数据结构论文:数据结构实验教学探索摘要:实践教学是数据结构教学中的一个重要环节。本文就如何提高数据结构的实践教学水平,从实践题目的设计、实践环境的搭建、实践过程的组织与实施、实践结果的检验与考核等方面提出一些方法和建议。 关键词:数据结构;实践教学;教学探索;教学方法 数据结构讲授计算机程序设计的一些重要理论知识和典型算法的设计与实现。在军队院校中,数据结构是计算机专业的核心课程,也是其他一些相关专业(如指挥自动化专业)的必修课,但它又是一门难学的课程,主要原因如下: 1)课程特点加大了学习难度。课程知识丰富
2、,涵盖多种数据结构在计算机中的组织与存储方法及基本操作的实现算法。课程内容比较抽象,要求学生能针对具体问题抽象出问题的数据模型,通过求解数据模型解决问题。知识点应用灵活,学生不仅要学会使用现有的数据结构,还要能根据问题适当调整。 2)学生的程序设计能力较差。数据结构要求学生具备较强的程序设计能力,能将课中所讲授的算法思想编写为正确的程序代码,而学生程序语言基础和程序设计能力普遍较弱,面对问题时难以有清晰的算法思想,无法将算法思想转变为正确完整的程序代码,在上机调试和运行程序等方面也屡屡碰壁。最终,理论知识不能转化为实
3、际编程经验,学生觉得课程枯燥无趣,对学习的意义产生怀疑。 在教学中,教师课堂教学时辅以配套的上机实践,能有效解决上述问题。在上机实践中,学生将每种抽象的数据结构转化为具体的实现代码,有助于理解和掌握抽象的数据结构概念;学生将已实现的数据结构作为工具(直接重用或少量修改),将其用于解决各种具体应用问题,不仅能拓宽解决问题的范围,提高程序设计的水平,还能减少编程的工作量,使程序结构更加清晰。还有,不断开展编程实践有助于学生累积编程经验和培养编程能力,笔者就数据结构课程的实践教学[1-2]进行了初步探索。 1实验题目的设
4、计 由于实践教学时间有限,学生的程序语言基础和程序设计能力普遍较弱,因此精心设计和挑选实验题目显得非常重要。实践题目包括由易到难3个层次: 1)基本算法题目。用于验证课堂上讲授的重要知识点,加深学生对知识的理解和掌握。 2)一般应用题目。仅针对单个数据结构,要求学生运用已学的某种数据结构解决具体应用问题。这类题目的难度适中,主要是让学生使用数据结构解决某类应用问题。 3)综合性应用题目(课程设计),可覆盖多个章节的知识点,难度较大,学生可以组成小组,利用课外时间相互讨论共同完成,在课堂上答辩。综合性题目主要培养
5、学生的创新能力、科研能力和组织管理能力。以线性表为例,老师在课堂上讲授了线性表的概念、两种存储方式和基本操作的算法实现,接下来学生在实验中编程实现顺序表和链表及基本操作算法,再用已完成的顺序表和链表解决实际应用问题,如约瑟夫环、线性表逆置、高校学籍管理等,比较不同实现方式的程序性能差异,逐步建立线性表的知识体系。 题目的设计应遵循以下原则: 1)基本算法题目的内容具有代表性,涵盖每章的重要知识点,难度不大,能帮助学生理解理论知识。实验内容和课堂教学内容相互对应,学生要在接下来的实验中编程实现课堂教学讲授的知识。
6、2)实验题目的难度要有层次性,要照顾到基础差的学生,对于基础好的学生,可以布置额外题目,或者同样的问题用多种方法解决,比较不同方法的程序性能,使不同能力和基础的学生都可以很好地参与实验。基础较差的学生可以弥补自身不足,基础较好的学生可以进一步提升自己的编程水平。 3)实验题目不一定很难,但是要有趣味性,课题最好能与实际生活中的事物相联系,或与计算机系统的实现相结合,这样学生容易接受和理解,并能提高学习积极性。例如,在栈的学习中,选择表达式括号匹配判断、表达式求值、递归实现等,教师不仅要让学生学会用栈解决应用问题,也要
7、让学生对计算机系统的具体实现有更深理解。表1列出了一些对应于各个章节实践教学的实验题目。 2实验环境的搭建 在教学中,部分高校所选教材是清华大学出版社的《数据结构(C语言版)》[3],使用C语言作为程序设计语言,采用TurboC作为实验工具。我们在教学中发现,采用C语言的数据结构讨论的侧重点在问题的算法设计和算法实现上,容易使学生把考虑问题的重点放在局部,而忽略了数据结构的整体性。但C++把数据结构看做一个整体,先将每种数据结构定义为一个专门的类,分析它的逻辑特征和操作接口,然后结合具体的存储结构讨论每个操作的
8、具体实现算法,有助于学生建立数据结构的整体概念。而且,C++的面向对象思想提倡程序的继承性和重用性,学生直接使用或少量调整已实现的数据结构类去解决各种应用问题,能提高程序的复用性和可维护性。还有,VisualC++比TurboC提供更方便的程序编辑环境和程序调试工具。 考虑以上因素,在搭建课程的实验环境时,我们选择C++作为程序