“数据结构”教学中提高学生编程能力浅谈.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文档。上传文档
查看更多
“数据结构”教学中提高学生编程能力浅谈

“数据结构”教学中提高学生编程能力浅谈   摘 要: 数据结构课程主要研究数据的逻辑结构和数据的存储结构,以及对数据进行操作的有关算法。该课程以程序设计为基础,对学生进行较复杂程序设计的训练,对学生编程能力的培养至关重要。文章着重从如何注重教学方法、引导学生学习的常用算法、如何进行大量程序设计实践等方面来提高学生编程能力进行了讨论。教学实践证明这些教学方法能很好地提高学生的编程能力。   关键词: 编程能力; 教学方法; 算法; 程序设计; 实践   中图分类号:TP3-0 文献标识码:B 文章编号:1006-8228(2013)08-61-02   0 引言   数据结构是计算机专业及计算机相关专业的一门实践性较强的软件基础课,它内容繁多,涉及面广,主要研究如何把具有一定逻辑关系的数据在计算机中存储,它是对数据进行操作的有关算法研究的一门学科[1],它以程序设计为基础,对学生进行较复杂程序设计的训练,课程以提高学生的编程能力培养为主要目标。本文对数据结构的教学方法和实践环节进行探讨。   1 注重教学方法,提高学生的认识能力   在数据结构课程教学中为了提高学生的编程能力,应注重课堂的教学方法,使学生能更好地掌握课程内容,理解前人设计的算法,为此我们研究了数据结构的教学方法。现代教学论中,人们把教学方法归为两大类:一类是程序式教学法,其特点是课堂以教师为中心,有计划有步骤地教给学生教学大纲上规定的知识;另一类是发现式教学法,这种教学法的基本目的不再局限于把前人整理好的知识传授给学生,而是引导、鼓励学生尽可能参与探索知识的过程,其侧重点在于使学生领悟和掌握形成知识的过程和获取知识的方法。   在教学过程中,我们将这两种方法相结合,在讲解数据结构理论基础知识时主要采用程序式教学法,始终抓住什么是“数据结构”这根主线,按照数据结构的逻辑结构、存储结构、运算和运算的实现这四步逐层展开讨论,做到教学思路清晰、逻辑性强,引导学生理解程序的运行原理和过程,并且对于不同层次的学生具体采用不同的方法。在讲解数据结构算法的实现时,我们发现有些班的学生对编程普遍怀有恐惧感,针对这种情况教师与学生一起按常人的逻辑思维方式考虑解决问题的方法,归纳出解决问题的方法和步骤,按方法和步骤与学生一起一步一步地写出程序,然后回过去重读一遍程序,并将不够理想的地方加以改进,使学生知道原来教师考虑问题的思路和自己的思路基本是一样的,这样引导学生编程的过程可使学生获益匪浅,再经过大量地由浅入深地训练后,学生消除了恐惧感,增强了信心,对编程逐渐也产生了兴趣。   数据结构中的内容很丰富,为使学生更好地掌握,我们将教学重点放在使用广泛的数据结构上,精讲最基本的概念与方法,并在这基础上例举一些综合的算法例子,通常借助于发现式教学法的思想进行教学,提供背景材料,讲透算法思想,提出问题,鼓励学生思考、分析,举一反三,让学生自己设计出多种算法。例如,在讲解数据结构中的递归算法时,由于递归算法是数据结构中最难掌握的内容之一,学生一般不能很快接受,因此讲解递归算法的方法很重要。我们先从学生较易接受的数学函数计算入手,进而引入非数值的递归算法,为了使学生了解嵌套调用、层层返回等概念,画出递归运行的状态图和栈的变化图,告诉学生嵌套调用和返回的含义,概括出“递归进入一层,则进栈,递归退出一层,则退栈”的方法,使学生一目了然。在掌握了基本递归算法及运行过程后,进一步例举稍难的递归算法,使学生从多个方面加深对递归算法的理解,这对数据结构后续内容中的树、图、查找和排序算法设计的学习是很有帮助的。   2 注重常用的、经典算法的学习,以激起探索研究的愿望   在数据结构课程教学过程中我们强调基本的编程方法和常用的算法的介绍,并指导学生积累常用算法,积累经典的好算法,例如查找算法、排序算法、遍历算法和图操作算法等,这样使学生在解决复杂问题之前掌握可使用的基本方法,可借鉴好算法的思想来拓展自己的思路。   数据结构中有很多经典的好算法,它们是著名的计算机科学家的成果。我们不仅要学习算法的设计思想,还要学习算法设计的思维方式,以提高学生的逻辑思维能力。以最小生成树两种方法为例,①普里姆(Prim)算法以图中的点为主,通过点朝最小边权伸张出去的方式来求解,其时间复杂度为O(n2)(n为图的顶点个数),它与图中的边数无关,因此适用于求边稠密的图的最小生成树,但在如何判断加入一条边而不形成回路的问题上就遇到了困难;②克鲁斯卡尔(Kruskal)求最小生成树算法以边为主,容易判断加入新顶点是否产生回路的问题,其时间复杂度为O(eloge)(e为图中边的个数),因此适合求边稀疏的图的最小生成树。求解同一个问题时,不同的算法具备不同的特点,适应不同的范围,这样分析讨论,可使学生思路畅通,

文档评论(0)

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

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

1亿VIP精品文档

相关文档