- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件设计课程改革探索和实践
软件设计课程改革探索和实践
[摘要] 如何在有限的学时内,将面向对象程序设计和数据结构有机结合,让学生既能掌握面向对象程序设计和数据结构的核心知识,又能较快地提高软件编程实践水平,是摆在非计算机信息类专业教学面前的一个重要课题,本文进行了一些有益的尝试。
[关键词] 面向对象;数据结构;程序设计
1 引言
面向对象程序设计和数据结构是学习软件设计的两门基础课程。面向对象程序设计解决了编程方法和编程思想问题;数据结构解决了数据的组织和处理方法,直接影响着软件的效率。
“数据结构”中抽象数据类型(ADT)的概念与面向对象中类(class)的概念十分接近,在“数据结构”中使用c++比使用c更贴切,使用c++语言实现数据结构是一种发展趋势,在美国等发达国家高校和国内重点大学已经成为主流。
在计算机专业教学中,面向对象程序设计和数据结构通常各需要60学时。对于非计算机信息类专业来说,通常没有足够的学时数来全面系统地学习这两门课程,如何在有限的时间内,将面向对象程序设计和数据结构有机结合,既掌握面向对象程序设计和数据结构的核心知识,又能较快地提高编程实践水平,是摆在非计算机信息类专业教学面前的一个重要课题。针对这个问题,我们在网络工程专业的实践教学中,经过不断探索,积累了一定的经验,希望能与同行切磋商讨。
2 抓好教学第一关――教材建设
面向对象程序设计与数据结构本身存在着密切的联系,其目的都是为了更好地进行程序设计。针对这种情况,我们首先从教材建设入手,通过新教材体现我们的教学指导思想。
本课程的教学目标不是教会学生一些关于程序设计语言的语法规范,而是以这些语法知识为载体,培养学生学会用计算机分析问题解决问题的能力。为此,新教材主要体现了如下一些特点:
①适当淡化语法,加强基本理论和技能的分析训练,这有利于在学时紧张的情况下学生通过自学提高分析问题的能力。
②通过实例具体而分散地介绍语法难点,将复杂枯燥的语法知识分解到每个生动、有趣、实用的程序实例中,以这些语法知识为载体,培养学生学会用计算机分析问题解决问题的能力。
③在教学内容安排上,以介绍面向对象程序设计为主线,以面向对象程序设计与数据结构的有机结合为突破口,以面向对象的观点来讨论数据结构,以解决数据结构实际问题为途径,使学生在解决数据结构实际问题的过程中融会贯通面向对象的程序设计思想。
3 灵活运用多种教学方法和教学手段,优化课堂教学质量
面向对象程序设计与数据结构是一门既有难度又有深度的课程,教师好的教学方法和教学手段就显得尤为重要。
3.1 以生动形象的比喻阐释抽象的概念。C++语言中的许多概念对于初学者而言,显得抽象而深奥。作为任课教师如果能在讲课中适当地运用形象、生动的比喻,常常会使许多看似深奥的概念变得浅显而易于理解。比如我们可以将拷贝构造函数的作用与生活中的“复印机”作类比,将队列的插入和删除操作与“排队买票”作类比,将栈的插入和删除操作与“子弹出入子弹夹”作类比等。通过与日常生活中的例子进行类比,在课堂上采用“大白话”的讲授方式,可以促进学生对抽象概念的理解,大大提高学生的学习兴趣与学习动力。
3.2采用“问题启发”式教学。
3.2.1 问题的驱动。问题驱动是指学生在教师设计的情境下发现问题、思考问题、解决问题的过程。在讲课过程中引入“What+How+why”的教学理念,采用发现学习模式,应用启发式教学。What是让学生明确学什么,拓宽学生的视野掌握更多的知识。How就是怎样做的意思。这是思考问题的过程。教师在对问题进行分析时要做到简洁、透彻。解决问题要切实准确,引导学生积极思考。Why就是为什么要这样做。注意教给学生提出问题、分析问题和解决问题的方法,最终达到学生自行探究问题的目的。
3.2.2 问题的多解性。算法设计过程本身是一种创造性的思维过程,通过算法设计可以有效提高学生的创新能力,对于同一个问题要求学生尽量从不同角度去思考,找出不同的解决方法而不是满足于一种方法,通过对同一问题寻找不同的方案来实现可以有效发散学生思维、拓展学生的思维。比如在讲解“顺序队列”的“假溢出”问题时,通过提问进行启发,层层深入,最终给出三种不同的解决方案,培养学生的发散思维能力,让学生带着疑问去学习。
3.2.3问题的特殊性。一般的方法适合于解决普通的问题,但往往不适合一些特殊的问题。为了更有效地解决问题,对于特殊的问题往往需要寻找特殊的方法。例如:有一数组中保存了个人信息的数据,其中含有性别,设计一个排序算法使记录按女在前男在后的顺序排列。解决这个问题可以选择多种排序算法,常用的排序算法都能实现,但是效率不高。而采用
文档评论(0)