数据结构教学中的案例巧用.docVIP

  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文档。上传文档
查看更多
数据结构教学中的案例巧用   摘要:数据结构是计算机专业的重要课程之一,但由于其理论性过强,缺乏趣味性,学生理解困难,教学效果不好。针对这些现象,文章提出在数据结构课程的教学方式、教学手段、考试方式上引入利用案例驱动的方法,以培养具备扎实的理论基础、较强的实践操作能力和综合表达能力的高素质学生。   关键词:数据结构;案例教学;教学改革      1数据结构课程教学现状及问题   数据结构作为计算机和信息等专业的核心课程,在教学体系中起着举足轻重的作用[1-4]。现阶段国内数据结构课程受主流数据结构教材影响,多以传授知识、利用伪代码描述数据结构及其算法为主,辅以一定的编程实践作为主要的教学模式。在这样的教学模式下,对于当前大众化教育背景下应用型高等工科院校的学生来说,学习掌握数据结构课程,根据实际问题动手设计数据结构算法并能付诸实践成为一个难题,造成这种现象的主要原因有以下几点:   1) 在国内主流的数据结构教材普遍采用伪代码的形式来描述算法,没有源程序,学生在学习过程中,不能“亲眼看见”算法执行流程,从而造成对算法理解的困难。   2) 算法描述过于抽象,不够直观,教师在教学过程中利用“黑板+粉笔”或者PPT都很难形象直观地演示算法,不利于学生理解算法。   3) 传统的教学模式强调理论教学,实践环节不够,造成学生动手能力差,有的学生会考试能做题,却看不懂实现算法的程序,更别说自己动手编程实现算法。“数据结构”在计算机软件开发领域的真正价值无法得到体现。   就以上问题笔者对在数据结构课程教学过程中引入案例驱动的立体化教学改革研究作了初步研究。      2选择设计适当的案例以驱动数据结构课程教学改革   2.1案例的设计与选择   案例选编是数据结构教学改革中的重要环节,选择或设计适合学生、难易得当、繁简相宜的案例,应包含学生已经学过的和即将学到的知识,并以此案例作为驱动进行课程的教学和学习,可以提高学生的学习兴趣和学习效率,达到教学目的。   笔者经过多年教学实践,在教学过程中摸索了一系列案例作为各数据结构教学模块的驱动,主要包括:以“一元多项式的四则运算”作为线性表结构特别是链表结构教学的驱动案例、以“迷宫路径搜索”作为栈结构教学模块的驱动案例、以“井字棋游戏”和“霍夫曼树及霍夫曼编码”作为树结构教学模块的驱动案例、以“校园导游咨询”作为图结构模块的驱动案例,等等,如图1~图3所示。下面以较为简单的链表结构为例阐述“一元多项式四则运算”案例如何驱动教学。   2.2一元多项式四则案例驱动链表结构的教学   一元多项式四则运算是清华大学严蔚敏教授编写的经典教材中有关链表的应用的一个章节,但是在该章节中数据结构及算法由伪代码构成,学生很难真正理解如何利用链表来实现一元多项式的四则运算。      笔者在教学过程中已经积累了可视化的多项式四则运算程序[5],可以利用该应用程序进行课堂、课后的教学与学习。   2.2.1案例驱动链表中结点的教学   “结点”作为链表乃至树和图等各类数据结构来说是一个非常重要的概念,而对于初学数据结构的学生来说,大多数学生只掌握了基本数据类型的运算,“结点”概念过于抽象,往往使学生摸不着头脑,从而影响整个数据结构课程的教学。   通过教师讲解一元多项式中的单项式如何在计算机中表示,即由系数(浮点型)、指数(整型)两种基本数据类型构成一个复杂数据类型;一个单项式就是一个多项式的一个结点,利用这种方式使“链表中结点”这个比较抽象的概念具体化、形象化,进一步引导学生――要描述和实现这样一个非简单类型的“结点”,需要用C++中的类或者结构体来实现。   2.2.2案例驱动链表基本操作的教学   多个单项式“串成一串”便成为多项式,可以用“数组”来串联这些单项式,也可以用“链条”来串联这些单项式,教师可以一起与学生讨论顺序表和链表的各自的特点。这个案例主要体现链表的应用,教师引导学生分组讨论如何实现串联,即链表的初始化操作、结点插入链表以及从链表中删除某个结点等一系列链表操作。   多项式的四则运算特别是加、减法本质上是链表的合并过程,而链表的合并过程也就是结点的插入操作。因此学生们在理解链表基本操作的基础上可以进一步学习其具体的应用。   2.2.3案例驱动下链表实践教学的改革   只有理论学习而没有实践,这样的学习成效是不完整的,不同层次的学生可以利用案例进行不同程度的学习。对于理论理解有困难的学生,他们可以通过上述图形化界面的应用程序“亲眼看到”结点在链表中的变化,该程序是可操作的、互动式的,通过输入数据,可以帮助学生理解一个升序的一元多项式中插入一个任意单项式仍然要保持其升序状态,需要在在链表适当的位置插入结点或者修改结点或者删除结点,等等;对

文档评论(0)

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

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

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档