- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法驱动的面向对象程序设计教学研究
摘要:本文根据“研究型”教学的要求,分析了程序设计相关课程之间的连续性与层次性,探讨了面向对象程序设计教学过程与算法及数据结构的关联,提出了算法驱动的、面向设计的教学模式并给出了应用实例。br 关键词:面向对象;层次性;关联性;教学模式br br 1引言br br 面向对象程序设计技术是当前软件开发的主流技术。因此该课程是计算机专业的十分重要的专业课程。它是学生进一步学习可视化编程及理解组件编程的基础,同时也是计算机实践应用及对学生进行创新能力培养的基础之一。br 显然,在实际授课中,我们不能片面从语法、语句及理论概念的角度去教授该课程,而应该是面向问题与应用的、构建于相关知识体系上的研究型教学。所谓“研究型教学”,就是要利用知识的载体属性,即以知识为载体,通过知识点、知识的发现过程、知识的创建过程,让学生学会思维,学会用科学的方法分析、解决问题。在这里,我们强调的是学生“学会”,是学生作为一个教学中的主体“学会”。其基础必须以足够的相关知识作为载体,以体系化的知识为学习场景。对于面向对象程序设计,如果从“研究型”教学的要求出发,应该以算法、数据结构、程序设计思想、计算机语言等相关知识为载体,从综合的、体系化的角度去理解面向对象的内涵,在这里算法是程序设计的核心。正如一些著名计算机科学家在有关计算机科学教育的论述中认为,计算机科学是一种创造性的思维活动,计算机科学的核心问题是算法理论,其教育必须面向设计[1]。因此,如果将面向对象的程序设计教学过程“嵌入”到算法的设计过程中,以算法为主线,以问题为导向去理解面向对象技术的理论与方法,将学习与“消化”过程有机的结合起来,能够从根本上提高学生综合分析能力及继续学习的能力。br br 2目前教学过程中存在的一些问题br br 在教学方法上,侧重于对面向对象相关术语及概念的灌输,不能很好地与结构化编程的思想进行对比学习。侧重于对语法、语义、语用环境的理解与学习,是以概念理解和记忆为主要手段的继承式学习,这样做的结果是学生仅仅在很浅的层次上学习了一种编程的方法及一些简单语法规范,相对于非计算机专业学生的程序设计学习来说,体现不出计算机专业的优势。 br 在教学内容的组织上,片面强调教学进度与信息量等外在的东西,忽视对学生分析与解决问题能力的引导,各门相关课程之间缺少衔接,不能很好的将编程环境、程序设计语言、算法、数据结构、程序设计思想关联起来形成体系化教学。总之,无论是从教学内容、方法及手段上看,与“研究型教学”的要求相去甚远。 br br 3算法驱动的教学过程的设计br br 教学的总体构想是充分利用面向对象程序设计的“实践”,用于解决算法中的“理论”问题,以此来学习、理解和应用面向对象程序设计的思想及语法规范。以学生为主体,在知识体系上形成一个完整的、立体的对面向对象程序设计思想及过程的理解。br 具体可以表示为按照计算机解决实际问题的基本流程来设计教学过程,表示如下:br br (1) 提出问题br 问题的选择最好能涉及到经典的算法范例,把算法思想通过实例形象地表达出来。问题的选择至少应满足一些要求。首先问题建模要符合学生当前的知识掌握程度,这里主要说的是相关的数学知识。其次问题所涉及的的算法与程序代码应符合由浅入深、由简入繁的认知规律,特别需要强调的是在初级阶段,对算法只是一种理念的引入,因此要尽量简单一些。再次,问题应具有典型性和启发性,最好能够涉及到计算机解决问题的全过程。br 假设我们想通过回溯算法来组织面向对象程序设计的教学过程,可引入如下典型的“n皇后”问题:br 问题描述:在n×n格的棋盘上放置彼此不受攻击的n个皇后,按照国际象棋的规则,皇后可以攻击在同一行或同一列或同一斜线上的棋子。设计程序使得在n×n格的棋盘上放置n个皇后,任何两个皇后不放在同一行或同一列或同一斜线上。br (2) 对问题建立模型br 问题提出后,如何用数学模型来描述实际问题是程序设计的起点。由实际问题抽象出数学模型进而设计出计算机表示的数据结构是培养学生抽象能力的重要环节。抽象能力是计算机专业工作者的基本素质,抽象的层次越高,想象的维数就越多。由于我们的教学重点在于面向对象程序设计方法的教学,此环节的作用在于让学生体验用计算机解决问题的综合性,因此所提出的问题建立模型较简单。当然随着学生学习的深入,应该逐渐强调数学建模的训练。br 对于上述范例,不同的学生可能提出不同的建模方案,教师应对学生的方案进行分析总结并将自己的抽象过程讲解给学生。可以采用如下简单模型:br 1) 输入: br n (n为大于0的整数,所表示的意义为棋盘的大小及皇后的多少)
文档评论(0)