面向对象程序设计的教学改革

  面向对象技术现在已经成为计算机科学与技术中的一个重要领域,并渗透到计算机学科的很多方向。面向对象的思想方法属于计算机专业学生必须学习掌握的核心课程内容。

  由于技术发展日新月异,计算机专业教学特别是教材编写已经相对滞后,面向对象程序设计课程亦不例外。ACM和IEEE/CS把计算机学科的教学归为理论、抽象、设计三个层次过程。面向对象程序设计课程是一门理论与设计(工程实践)联系很强的一门课而且计算机产业界对象技术产品近几年如雨后春笋,越来越多的工程师加入到使用这些产品的行列,这迫切要求专业教学一定要与社会需要相结合。

  目前,大多面向对象程序设计教材对面向对象的概念讲述比较多,或者对算法有比较多的阐述,理论性很好。对其中的基本概念是有必要讲解清楚,但是缺乏比较恰当的联系实际程序设计,很多学生学完后对这门课程的收获仅停留在一些教条或死记硬背的术语上,不能学以致用。

  面向对象程序设计课程的教学目标应该定位于掌握应用面向对象做程序设计的概念、方法,并对当前广泛使用的面向对象程序设计语言及环境有初步了解,培养程序设计的实践能力。

  

  教学内容的改革――

  选定基本核心内容,融合新技术的思想

  

  第一,面向对象语言的选择问题。

  现在很多教材是以C++为语言工具来讲授的,但C++/C不是纯面向对象的语言,而是一种过程、对象混合型语言。学生一般开始学习程序设计接触的便是面向过程的程序语言,以带有面向过程成分的语言来讲述面向对象程序设计对学生的对象思维有影响。另外一方面,用ISO标准的C++来教学与产业界Windows平台近几年广泛使用的面向对象的MFC 有差距,而且现在windows平台上的开发也正从win32的MFC/VC++全面向.Net过渡(基于.Net平台上也有纯面向对象语言C#),其变化之大就跟当初从DOS转向windows平台;也曾经使用过VC ++来作为面向对象程序设计教学的语言工具,但学生往往被集成开发环境及庞大的MFC所迷惑,本课程的学习的重点得不到保障。

  因此,纯面向对象特性的java语言来作为面向对象程序设计的教学语言是很好的选择,不但java语言能较好地体现面向对象的思维方式,而且产业界在高端计算方面java语言正在更多地夺取C++的阵地,成为主流。由于java语言应用广泛,本身涉及很多的技术知识,在面向对象程序设计课程的上机实验使用java时,需要预先给学生准备好java程序设计必备的程序设计环境安装配置基础知识的材料,不让语言本身的因素成为障碍,虽然对基础好的善于自学的学生不是问题。Java语言的集成开发环境选用Sun公司的跨平台的开发工具NetBean,在本课程的网页上给出调试程序的简单例子及步骤,从学生实验来看,大多数学生能较快地使用这个工具,比以前用MS VC++的班级的实验课效果大有改进,让学生把更多注意力放在程序设计方面。

  第二,选择基本的教学内容,不求内容多,重点对这些核心内容教学。可以主要选择这些内容来讲:类和对象、方法、继承、接口、事件处理、多态性与抽象类、线程、程序和包。

  第三,对象概念的图形表示法选用UML. 讲到有关概念需要用图形来表示时,用业界标准的统一建模语言来表达,不但能清晰地描述概念,而且能让学生对复杂系统建模有潜移默化的影响。 UML本身也是很庞大的,在这门课程里同样不能让UML成为学习概念的障碍,而是理解概念的更好的助手,所以当讲到相关概念要用图形来表示概念时才出现UML的表示法,要让学生知道UML是面向对象思维分析的工具。在这里不过多讲述UML,不会影响课程的教学效果。实际上,尽管UML内容繁杂,往往也是80%的场合只用到了20%的UML.我们在教学时只在本课程教学用的网页上给出一个精练的可视化的UML表示法,让学生需要使用时到上面自己查找图形表示法,而不另外用专门的学时讲授UML。

  

  教学方法的改革――

  重点突破,重视实践,引入实例分析

  

  这些内容应该作为重点让学生掌握:类与对象、分类与继承、事件处理。对象技术在各个领域应用很多,其中的概念及方法是很多的,但应该使学生把最基本的东西多花时间去学习理解。

  在讲述有关概念时,让学生明白为什么要提出使用该概念或方法是很重要的,使他们清楚在什么场合应用,有不少学生会被众多的概念所迷惑,因为他们本来就很少程序设计的经验。所以针对每部分内容, 都应该准备一些实例结合相关的概念来讲授。现在的面向对象程序开发环境大多有PME(Properties, Methods, Events)模型,有几章的内容都可以联系起来让学生看一些精选的内容。还有就是框架(基础类库)技术, 也应该作为实例结合相关内容进行讲述。

  有一些由编程经验丰富的技术专家写出的技术丛书,里面有不少经典易懂的实例讲述,我们可以把平时在那些开发类的技术丛书中学习积累的例子引入来讲,当然科研工作中也可能积累一些对讲课很有益的东西可以转化到讲课当中。从一些开发经验丰富的著作中及自己的开发实践中提取的恰当例子,对学生的学习很有帮助,有助于他们“现场直播式”的较快理解有关概念,并有可能通过教师设计的实例亲自动手加以实践、实现,同时也可以增强了学生学习的兴趣、积极性。

  为了让学生通过实践理解所学内容,除了提供实例分析外,还向他们提供规模难度不同的大作业题目让其选做, 学得好的、学得差根据自己的掌握程度在教师指导下选做大作业。这也是教学方法的一个改革实践。

  

  结语

  

  本文结合作者面向对象程序设计的教学经验和软件开发实践经验, 就面向对象程序设计课程的教学内容的选择、更新,理论与实践的结合等方面提出了一些观点及措施, 有些也是教学方法的改革尝试。在软件技术发展迅猛的时代,我们这方面的课程教学也应该相应有发展,也应有更多的教学、产业界人员、学生一起来促进教学效果的改进。

  面向对象技术现在已经成为计算机科学与技术中的一个重要领域,并渗透到计算机学科的很多方向。面向对象的思想方法属于计算机专业学生必须学习掌握的核心课程内容。

  由于技术发展日新月异,计算机专业教学特别是教材编写已经相对滞后,面向对象程序设计课程亦不例外。ACM和IEEE/CS把计算机学科的教学归为理论、抽象、设计三个层次过程。面向对象程序设计课程是一门理论与设计(工程实践)联系很强的一门课而且计算机产业界对象技术产品近几年如雨后春笋,越来越多的工程师加入到使用这些产品的行列,这迫切要求专业教学一定要与社会需要相结合。

  目前,大多面向对象程序设计教材对面向对象的概念讲述比较多,或者对算法有比较多的阐述,理论性很好。对其中的基本概念是有必要讲解清楚,但是缺乏比较恰当的联系实际程序设计,很多学生学完后对这门课程的收获仅停留在一些教条或死记硬背的术语上,不能学以致用。

  面向对象程序设计课程的教学目标应该定位于掌握应用面向对象做程序设计的概念、方法,并对当前广泛使用的面向对象程序设计语言及环境有初步了解,培养程序设计的实践能力。

  

  教学内容的改革――

  选定基本核心内容,融合新技术的思想

  

  第一,面向对象语言的选择问题。

  现在很多教材是以C++为语言工具来讲授的,但C++/C不是纯面向对象的语言,而是一种过程、对象混合型语言。学生一般开始学习程序设计接触的便是面向过程的程序语言,以带有面向过程成分的语言来讲述面向对象程序设计对学生的对象思维有影响。另外一方面,用ISO标准的C++来教学与产业界Windows平台近几年广泛使用的面向对象的MFC 有差距,而且现在windows平台上的开发也正从win32的MFC/VC++全面向.Net过渡(基于.Net平台上也有纯面向对象语言C#),其变化之大就跟当初从DOS转向windows平台;也曾经使用过VC ++来作为面向对象程序设计教学的语言工具,但学生往往被集成开发环境及庞大的MFC所迷惑,本课程的学习的重点得不到保障。

  因此,纯面向对象特性的java语言来作为面向对象程序设计的教学语言是很好的选择,不但java语言能较好地体现面向对象的思维方式,而且产业界在高端计算方面java语言正在更多地夺取C++的阵地,成为主流。由于java语言应用广泛,本身涉及很多的技术知识,在面向对象程序设计课程的上机实验使用java时,需要预先给学生准备好java程序设计必备的程序设计环境安装配置基础知识的材料,不让语言本身的因素成为障碍,虽然对基础好的善于自学的学生不是问题。Java语言的集成开发环境选用Sun公司的跨平台的开发工具NetBean,在本课程的网页上给出调试程序的简单例子及步骤,从学生实验来看,大多数学生能较快地使用这个工具,比以前用MS VC++的班级的实验课效果大有改进,让学生把更多注意力放在程序设计方面。

  第二,选择基本的教学内容,不求内容多,重点对这些核心内容教学。可以主要选择这些内容来讲:类和对象、方法、继承、接口、事件处理、多态性与抽象类、线程、程序和包。

  第三,对象概念的图形表示法选用UML. 讲到有关概念需要用图形来表示时,用业界标准的统一建模语言来表达,不但能清晰地描述概念,而且能让学生对复杂系统建模有潜移默化的影响。 UML本身也是很庞大的,在这门课程里同样不能让UML成为学习概念的障碍,而是理解概念的更好的助手,所以当讲到相关概念要用图形来表示概念时才出现UML的表示法,要让学生知道UML是面向对象思维分析的工具。在这里不过多讲述UML,不会影响课程的教学效果。实际上,尽管UML内容繁杂,往往也是80%的场合只用到了20%的UML.我们在教学时只在本课程教学用的网页上给出一个精练的可视化的UML表示法,让学生需要使用时到上面自己查找图形表示法,而不另外用专门的学时讲授UML。

  

  教学方法的改革――

  重点突破,重视实践,引入实例分析

  

  这些内容应该作为重点让学生掌握:类与对象、分类与继承、事件处理。对象技术在各个领域应用很多,其中的概念及方法是很多的,但应该使学生把最基本的东西多花时间去学习理解。

  在讲述有关概念时,让学生明白为什么要提出使用该概念或方法是很重要的,使他们清楚在什么场合应用,有不少学生会被众多的概念所迷惑,因为他们本来就很少程序设计的经验。所以针对每部分内容, 都应该准备一些实例结合相关的概念来讲授。现在的面向对象程序开发环境大多有PME(Properties, Methods, Events)模型,有几章的内容都可以联系起来让学生看一些精选的内容。还有就是框架(基础类库)技术, 也应该作为实例结合相关内容进行讲述。

  有一些由编程经验丰富的技术专家写出的技术丛书,里面有不少经典易懂的实例讲述,我们可以把平时在那些开发类的技术丛书中学习积累的例子引入来讲,当然科研工作中也可能积累一些对讲课很有益的东西可以转化到讲课当中。从一些开发经验丰富的著作中及自己的开发实践中提取的恰当例子,对学生的学习很有帮助,有助于他们“现场直播式”的较快理解有关概念,并有可能通过教师设计的实例亲自动手加以实践、实现,同时也可以增强了学生学习的兴趣、积极性。

  为了让学生通过实践理解所学内容,除了提供实例分析外,还向他们提供规模难度不同的大作业题目让其选做, 学得好的、学得差根据自己的掌握程度在教师指导下选做大作业。这也是教学方法的一个改革实践。

  

  结语

  

  本文结合作者面向对象程序设计的教学经验和软件开发实践经验, 就面向对象程序设计课程的教学内容的选择、更新,理论与实践的结合等方面提出了一些观点及措施, 有些也是教学方法的改革尝试。在软件技术发展迅猛的时代,我们这方面的课程教学也应该相应有发展,也应有更多的教学、产业界人员、学生一起来促进教学效果的改进。


相关文章

  • 软件开发案例分析课程
  • <软件开发案例分析>课程 教学大纲 大连职业技术学院 2005年 9月 一. 课程名称: <软件开发案例分析> 二. 学分: (4学分) 三. 适用专业: 计算机软件设计专业.计算机软件设计专业(日语) 四. 教学目 ...查看


  • 课程群建设的思考与探索
  • 龙源期刊网 http://www.qikan.com.cn 课程群建设的思考与探索 作者:闵芳 陈腊梅 来源:<教育教学论坛>2015年第52期 摘要:通过南京航空航天大学金城学院面向对象程序设计课程群教学资源建设,探索面向对象 ...查看


  • 考试分析评价系统论文
  • 摘要 考试试卷分析评价系统是总结分析学校试卷质量的重要工具.本文以试卷分析评价系统的项 目开发为基础,介绍了中国试卷分析评价软件的应用发展和市场需求,同时介绍了数据库的发展现状及在本系统中的应用,描述了整个系统的开发过程, 分析了这个系统的 ...查看


  • C++课程设计任务书
  • <C++面向对象课程设计>任务书 一.课程设计目的与要求 1.课程设计目的 面向对象程序设计作为一门软件设计的课程,具有极强的实践性,必须使学生具备灵活应用理论知识的能力及面向对象程序设计技能.所以在<C++面向对象程序设 ...查看


  • 俄罗斯方块系统设计文档
  • 俄罗斯方块 系统设计说明书 版本号:V1.0 班 级: 项目组长: 小组成员: 任课教师: 职 称: 日 期: 更改控制页 目 录 第一章 前言 . ............................................. ...查看


  • 计算机科学与技术专业 主要课程
  • 计算机科学与技术专业 03023001 高等数学 Higher Mathematics [192-11-1.2] 内容提要:作为本专业的重要基础课程,内容以微积分.中值定理.不定积分.定积分及其应用,多元 函数微分法及其应用.重积分.曲线积 ...查看


  • 面向全体.挖掘数学潜能培养优等生
  • 面向全体.挖掘数学潜能培养优等生 时光流逝,岁月如梭,仿佛只是一瞬间,已经是二十几个年头了,顾自己的教学生活,有得有失.现在社会处于信息时代,学生平时在生活中得到信息是也相当大而快,而初中年龄段的学生的特点,求知欲望较强,特别是对新鲜事物接 ...查看


  • 最新版软件开发实训课程设计教学大纲编写模板
  • 实践教学环节类别:课程设计 实践教学环节编号:073411236 总周数:2 实践学分:2 开课单位:自动化工程学院 软件开发实训课程设计教学大纲 一.课程设计目的和要求 1.课程设计目的 软件开发实训是测控技术与仪器专业的一个重要的实践性 ...查看


  • 信息化建设对高校共青团管理的作用
  • 专业代写 扣扣:506717090 4.4.2 信息化建设对高校共青团管理的作用 信息化是现代管理的一个趋势,通过信息化来解决发展所存在的问题.而随着我国社会的发展和高校的改革,高校共青团所处的环境也在发生着变化.在不同的环境下,高校共青团 ...查看


热门内容