启发式授课法在数据结构教学中运用.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文档。上传文档
查看更多
启发式授课法在数据结构教学中运用

启发式授课法在数据结构教学中运用   摘要:存储结构和基于各种存储结构上基本操作的算法实现是数据结构课程的重点教学内容。分析了上述内容教学过程中存在的问题,以有向图十字链表存储结构和Prim算法程序实现的教学过程为例,探讨了启发式授课方法在数据结构课堂教学中的运用,实践证明取得了良好的教学效果。   关键词:数据结构;课堂教学;启发式;存储结构;算法实现   作者简介:余艳(1980-),女,湖北襄阳人,武汉科技大学理学院,讲师;刘燕丽(1980-),女,河南西平人,武汉科技大学理学院,讲师。(湖北 武汉 430065)   基金项目:本文系武汉科技大学教学研究项目(项目编号:2012X51)、武汉科技大学教学研究项目(项目编号:2013x065)的研究成果。   中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2014)08-0098-02   数据结构是信息类相关专业本科生必修的专业基础课,该课程探讨了各种经典数据结构的逻辑特性、存储结构以及相关算法,为后续课程提供了理论基础和技术支持。数据结构是课堂教学与实践教学并重的课程,通常开设在本科二年级上学期,对于大学低年级本科生而言,课堂学习仍是获取知识的重要渠道。文献[1]指出在课堂教学中教师通过不断设疑和释疑,可以更好地展示自己的思维过程并揭示知识的来龙去脉,并引起教师教与学生学的思维共振。本文以武汉科技大学信息与计算科学系为例,分析数据结构课程存储结构及算法实现的课堂教学中遇到的问题,并针对这些问题探讨启发式授课在数据结构课堂教学中的实际运用方法及效果。   一、课堂教学中存在的问题   第一,数据结构教材对知识的讲解严谨简洁,但是对知识的表达过于生硬,缺少对问题背景、存储结构和算法设计思想的讨论;第二,部分学生在学习过程中习惯记忆各种存储结构的表示方法,却未理解各种存储结构的设计原理,这些学生有可能获得比较高的卷面分数,却难以在未来学习和工作中灵活运用数据结构知识;[2]第三,数据结构的学习过程也是学生进行复杂程序设计的训练过程,部分学生反映可以轻松理解数据结构中的算法策略,但对从算法到代码的转换工作却感到困难。   二、存储结构的启发式教学   数据结构课程讲授了线性表、栈、队列、串、数组、广义表、二叉树和图等经典存储结构,如果直接将各种存储方法灌输给学生,势必造成学生知其然而不能知其所以然,且容易导致课堂教学中问题2的发生。采用不断创造问题情境的方法激发学生思考,使其主动参与到存储结构的设计过程中,则可以加深学生对存储方法的理解,同时为将来根据应用需求自行设计存储结构积累经验。下面以有向图的十字链表为例讨论存储结构教学中的启发式讲授方法。   启发问题1:在正式讲授十字链表结构之前,询问学生已学习的邻接表及逆邻接表在计算出度和入度时各有什么特点。通过回忆学生会发现,使用邻接表时通过遍历依附于顶点的单链表便可以轻松地计算出该顶点的出度,但计算入度则需要遍历整个邻接表结构;使用逆邻接表则恰恰相反,可以轻松计算出各顶点的入度,但计算出度则需遍历整个逆邻接表结构。接下来教师引出,为了弥补邻接表和逆邻接表各自的不足,人们考虑设计另外一种存储结构,通过将邻接表和逆邻接表相结合从而得到十字链表结构。这样讲解可以使学生明白十字链表结构的设计初衷,同时领悟到各种存储结构的存在都有潜在需求。   启发问题2:十字链表的结构是怎样的呢?首先引导学生分析顶点的特点并设计其存储结构。对于任何数据结构而言,设计它的存储结构无非是考虑如何存储数据元素以及元素间的关系。元素的存储往往简单,而关系的设计则需要动些脑筋。有向图中的顶点即数据元素,它们具有相同的特性,结构整齐划一,因此可以考虑使用顺序结构存储所有顶点。每个顶点元素的结构就非常简单了,如图1(a)所示,其中data用于存放顶点信息。   启发问题3:弧结点的结构又应该是怎样的呢?根据十字链表的结构定义,对于有向图中的每个顶点有一个结点,每一条弧也有一个结点。这里有必要引导学生思考,怎样用一个结点表示一条弧。学生会想到,表示一条弧需要给出弧尾和弧头。那么进一步引导学生思考,在弧结点中如何表示弧尾和弧头?学生会给出多种方案,比如直接存储弧尾和弧头顶点的信息;或是存储弧尾和弧头顶点的位置。这时,需要进一步比较两种方案的优劣。如果在弧结点中直接存储弧尾和弧头顶点的信息,那么在图结构中势必存在顶点的多个备份,这样一方面会导致存储空间的浪费,另一方面修改某个顶点信息时,它的多个备份需要做相应修改,如果没有全部修改则会带来数据不一致的问题。比较之后,学生会得出结论,在弧结点中存储弧尾和弧头的位置信息更合适。此时,继续引导学生思考,如何表示弧尾和弧头的位置?学生通常会想到可以用绝对的地址。此时可以提醒学生顶点存储在数组中,在已知

您可能关注的文档

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档