面向编程能力培养的数据结构课程教学方法研究.docVIP

面向编程能力培养的数据结构课程教学方法研究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向编程能力培养的数据结构课程教学方法研究摘要:针对当前数据结构课程存在“听得懂,不会做”的问题,分析其原因,提出面向编程能力培养的数据结构课程教学观点,即通过以存储结构为基石深入理解数据结构,在此基础上通过应用实践提升面向对象编程能力,进而解决数据结构课程“不会做”的问题。关键词:存储结构;面向对象编程技术;STL0 引言数据结构是计算机专业的一门核心基础课程,不仅是进行高效程序设计、软件系统开发的重要基石,而且是计算机专业后续课程(如操作系统、数据库系统等)的重要前导课程,学好数据结构无疑对计算机专业的学生具有非常重要的意义。由于数据结构课程主要是研究数据在计算机中的存储、组织和访问方法,不可避免地涉及数据在内存中存储空间的申请、管理和释放等问题,正是由于数据在底层内存空间的不同存储方法,才导致了数据多种多样的访问方法;由于各种数据结构具有不同的逻辑结构,因而这些数据的访问时间也存在很大不同,通过算法复杂性分析可明确地揭示这些算法间的异同。1 教学中存在的问题目前,教学中普遍存在如下问题。(1)学生由于前期的c++编程能力薄弱,对面向对象的编程技术没有很好理解,而数据结构又主要以抽象数据类型进行描述和实现,体现在数据结构课程上就是眼高手低,能理解各种数据结构类的设计和实现方法,但没有能力自己构造和实现,进而导致很多作业、实验无法上手,越学越难。(2)作为计算机专业的学生却没有真正意识到编程能力的重要性,计算机专业区别其他专业的一个很大特色就是强调实践动手能力。作为计算机专业,编程能力是最基本的专业技能,而提升编程能力的唯一有效途径就是上机实践,只有通过独立完成代码的编写、调试,才能真正掌握程序设计语言,提高问题求解能力、编程能力、调试和测试能力。数据结构课程不仅仅是理论的学习,更是理论的实践和应用,若学生不能投入地进行数据结构课程的编程实践,是很难学好这门课程的。(3)数据结构课程的理论教学内容已经非常完善了,而面向编程实现的教学内容是相对不充分的,我们在实际的教学过程中,在兼顾理论教学的基础上,通过介绍数据结构在STL中的实现,引导学生使用STL中的各种模板类,进而提升学生应用数据结构方法解决实际问题的能力。2 编程能力培养的探索2.1 以存储结构为基石理解数据结构目前,数据结构教材基本都是以数据的逻辑结构为主线,从线性结构开始,依次介绍动态数组、链表、线性表、栈、队列,然后是非线性结构,包括树形结构和图形结构。在各种数据结构介绍时再讨论其存储结构以及相关算法,知识框架体系完善清晰。我们的教学工作也是在这个框架下展开的。事实上,对于这样的知识脉络学生也是理解的,但在具体教学过程中,学生就陷入了混乱。刚刚进人大二的学生由于对计算机系统缺乏了解,对内存分配更是茫然无绪,老师们认为很自然的事(如数据在内存中的存储和分配过程),他们会很难理解,只能死记硬背,于是,在下一步的学习中,这些困惑会继续放大,最终使得学生产生畏难情绪,甚至有人放弃了这门课程。针对这种情况,可以在教学过程中首先介绍计算机内存的基本管理方法,以图示说明计算机中内存的分布情况;再针对程序编译系统支持的标准数据类型和用户自定义、自行创建的数据类在内存中的分布,来解释数据结构在计算机内存中的存储和访问方法,这样,使得学生对后续各种数据结构的存储管理有了直观认识,解决了数据结构的存储瓶颈问题。简单说,存储空间只有连续和不连续存储空间之分,但由于不少教材在实现数据结构时,还涉及连续空间中的数组结构和向量结构(动态数组),为了便于学生理解数据结构由于不同存储结构所带来的不同访问方法,我们将各种数据结构与存储方式整理归纳如表1所示。由于数据结构中各种数据结构均以抽象数据类型来描述,即数据结构的逻辑结构以抽象数据类型描述,但不同的存储方法使得相应的操作方法实现不同,即成员方法的具体实现方法不同。如果能够理清这样的数据结构构造思路,那么所有的数据结构设计和实现方法就都很简单了。相对于具体的操作中,各种数据结构都可以先进行类声明,在私有数据中明确该数据结构的具体存储方法及相应的辅助变量,再针对各种常规访问方法进行实现,主要包括基本构造函数、头尾访问方法、插入和删除方法等。2.2 通过构造特定数据结构,提升编程能力在给出了基本数据结构的构造和实现方法后,可通过构造一些特定功能的数据结构来增强学生的分析、设计和实现能力。例如,可让学生利用数组和动态数组分别实现双端栈结构(即2个栈存储在同一个数据空间中):①利用数组作为存储空间实现双端栈,是2个栈相向生长,数组的低端和高端分别作为2个栈的栈底,总的数据空间为2个栈共用,当所有空间被占满后,2个栈都满,否则,任意1个栈都可再压入元素,以便充分利用数据空间。②利用动态数组实现,不是简单利用vector实现,因为vector只是方便向后动

文档评论(0)

guan_son + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档