计算机卓越班面向对象程序设计课程教学改革研究[共五篇]

时间:2019-05-12 20:37:31下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《计算机卓越班面向对象程序设计课程教学改革研究》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《计算机卓越班面向对象程序设计课程教学改革研究》。

第一篇:计算机卓越班面向对象程序设计课程教学改革研究

计算机卓越班面向对象程序设计课程教学改革研究

摘 要:针对计算机卓越班面向对象程序设计的教学实际,分析该课程在工程技术能力培养方面存在的一些突出性问题,围绕本校计算机科学与技术专业卓越工程师的培养方案,结合笔者在该课程的教学改革研究与实践经历,提出培养学生创新能力的教学改革思路和改革的具体措施,并说明教学效果。

关键词:卓越工程师教育培养计划;计算机卓越班;面向对象程序设计;创新驱动

文章编号:1672-5913(2017)05-0052-04

中图分类号:G642

0 引 言

“卓越工程师教育培养计划”是国家教育部贯彻落实《国家中长期教育改革和发展规划纲要(2010―2020年)》和《国家中长期人才发展规划纲要(2010―2020年)》的重大改革项目,旨在培养造就一大批创新能力强、适应经济社会发展需要的各类型高质量工程技术人才,为国家走新型工业化发展道路、建设创新型国家和人才强国战略服务,对促进高等教育面向社会需求培养人才、全面提高工程教育人才培养质量,具有十分重要的示范和引导作用[1-2]。现状分析

面向对象程序设计是一门实践性很强的课程,强调学生的实际动手能力。目前高校工科专业的面向对象程序设计课程,大多以一门面向对象程序设计语言的自身体系为脉络展开教学,注重学习编程语言的基本语句、语法、类和对象、继承和派生、多态性等有关面向对象程序设计的基本概念[3-4]。在此基础上,通过上机实验提高学生的动手实践能力。由于该教学模式不以解决实际问题为目的,因此学生的创新潜能得不到很好的挖掘。虽然一些高校计算机专业开设了多门面向对象程序设计课程,例如C++、Java、Karel[5]等,但重复性的教学导致学生无法通过这些课程的学习提高自己的创新能力。

面向对象程序设计的教学内容较多,导致很多教师在教学过程中缺乏系统性和综合性。虽然采取了理论知识讲解和实验环节相结合的手段,并且配合综合设计性案例的分析[6],但因为学时有限,往往只注重知识的机械性灌输,忽略学生思考和质疑的过程,学生很难消化这些枯燥无味、不易理解的零散知识,导致不少中等偏下的学生丧失学习兴趣,无法真正掌握面向对象编程的精髓和技巧。这样的教学无法激发学习主体的积极性和主动性,不利于学有余力的学生创新意识以及创新能力的培养与提高。此外,与传统计算机科学与技术专业相比,计算机科学与技术卓越工程师的培养方案发生了很大的变化。因此,有必要对计算机卓越班的面向对象程序设计课程进行教学改革。通过革除传统课程教学中的弊病,针对计算机卓越班的实际情况,优化教学方法和教学手段,为培养计算机工程技术人才打下良好的基础。改革具体措施

2.1 课程设置与考核方式的改革

传统的面向对象程序设计课程共54学时(2.5学分),其中,理论课36学时(2学分),实验课18学时(0.5学分)。考核方式基本以期末闭卷笔试为主(占总评成绩的70%),实验成?和平时成绩为辅(占总评成绩的30%)。闭卷笔试的考核方式具有较强的可操作性,但一般来说,该方式只能考查学生对理论知识的掌握情况,很难分辨出学生利用面向对象程序设计思想分析、解决问题的能力以及上机编程的实际操作能力。由于教师将考试的重点放在了知识点的掌握上,容易诱使学生在学习和备考时将精力集中在要点的记忆上,从而忽视程序设计方法的掌握和实际动手能力的提高,无法保证工程教育人才的培养质量。

针对以上问题,在课程设置上,为了强化实验课的教学效果,应将实验课与理论课分离出来,单独设置18学时的面向对象程序设计实验课程。此外,为了实现“卓越工程师教育培养计划”中培养创新能力强、适应经济社会发展需要的高质量工程技术人才的要求,学校新增36学时的面向对象程序设计课程设计课程。在考核方式上,面向对象程序设计的理论课程采用期末闭卷笔试为主的方式;面向对象程序设计实验课程采用上机机试为主的方式;面向对象程序设计课程设计课程的考核方式包括软件设计与编程、课程设计报告编写以及一对一答辩。

2.2 教学方法的改革

长期以来,传统的教学方法更注重人的社会性和共性培养,忽视培养人的个性和创造性,其结果是培养了大量统一模式的“标准件”[7]。针对计算机卓越班学生的工程能力和创新能力方面的培养目标,笔者提出一种适用于面向对象程序设计课程教学的创新驱动教学法。该教学法创造了学生主动参与、自主协作、探索创新的新型教学模式,充分发挥学生的主观能动性,最大限度地培养学生的创新思维能力和工程实践能力。

图1描绘了创新驱动教学法流程图。该流程图将面向对象程序设计课程的教学活动分成4个层次。其中,第1层次的教学从课堂讲练开始,通过简单实例的学习,让学生掌握基础知识。第2层次的教学贯穿于实验课的上机训练过程中,通过一些验证型实验和设计型实验强化学生的实践技能。在此过程中,随着学生理论知识的积累和实践技能的提升,激发了他们运用知识解决问题的动力。第3层次的教学从第13教学周开始,教师会给学生布置课程设计的题目和要求。通过6周左右的课程设计,学生获得了综合应用知识的能力,培养了解决一般问题的能力。通过3个层次的教学,可以完成教学大纲和培养方案的所有要求。第4层次的教学主要由计算机卓越班一些拔尖的学生牵头,鼓励他们带着班里的普通学生成立课题组,申报校级、市级乃至国家级的各类大学生创新计划项目。获得资助后,通过大学生创新计划项目的研究与开发,培养学生协同创新和解决实际问题的能力。在此过程中,每个大学生创新项目团队都会配备一位项目经验丰富的专业教师进行全程指导,帮助学生团队取得更大的成绩。为了确保指导教师的服务质量,根据学校的教师坐班答疑制度,要求具有高级职称的教师每周必须安排8个小时的校内坐班答疑时间,具有中级职称的教师每周必须安排12个小时的校内坐班答疑时间。指导教师克服远郊办学的困难,有了充足的时间为学生的课程答疑解惑,并且协助学生解决项目申报、项目实施以及项目答辩过程中遇到的各种问题。由于完成创新计划项目的主体是学生,教师只起到指导作用,这样,学生不再把学习当任务,而是根据项目的需求来学习,由被动地接受知识转变为主动地寻求知识,从而更好地发挥学习主动性,并且锻炼了自己的创造能力、团队合作能力以及与教师交流的能力。该层次教学的优势在于能够加快学生对知识的理解和融会贯通,更好地培养学生的学习兴趣和团队合作精神,提高学生创新思维和解决实际问题的能力。

2.3 教学手段的改革

面向对象程序设计课程教学手段的改革主要体现为多样化和全方位。

第一,高清视频录播系统的使用。学校在已经拥有的专业视频、音频技术人员和网络设备基础上,构建了一套基于校园网的高清视频录播系统,通过校园网和互联网实现远程教学,将传统教学活动与现代教学手段有机结合,提高教学水平。笔者通过主讲的面向对象程序设计课程获得学校视频课程建设的机会,将36学时的理论课进行了全程录播。在后台录制人员的帮助以及学生的配合下,确保了视频课程的教?W性、严谨性和观赏性。

第二,多媒体课件与板书的有机融合。概念定义、基础语法、图表类解释说明等用多媒体课件讲解,知识表示更形象、描述信息量更大,节约了板书时间。算法的推理与分析过程则采用板书方法,教师边写边讲,使学生思维和教师书写同步,更有利于学生深入理解重点和难点问题。

第三,实验环境真实性的保障。本课程课堂上所讲案例的所有代码都在真实的开发环境上运行,通过教师的引导,在师生交互过程中完成编码工作,调动了学生的积极性和学习兴趣,有利于学生对知识点的理解和实践能力的提高。本课程的上机实验环境主要由计算机工程与技术实验中心负责提供,一人一机,通过机房管理软件控制师生交互,教师可以在答疑过程中将任何一台机器作为教师机进行屏幕广播教学,为学生的实践学习提供了良好的环境。此外,计算机工程与技术实验中心还建有专业实验室,包括航运信息处理实验室、航运工程研究实验室、智能海事网络实验室、大学生创新基地、与甲骨文(中国)软件系统有限公司合作设立的ORACLE实验室等,这些专业实验室为大学生创新计划项目的实施提供了良好的条件。

第四,课程网络平台的建设。通过建设课程网络平台,从时间和空间上延伸了课堂教学。在网络平台上除提供教学基本文件外(教学大纲、教学日历),还及时上传了课件、例题、练习题、单元测试内容等教学资源。教学效果分析

创新驱动教学法与传统教学法在教学理念和实施方式方面有很大的区别。在实施创新驱动教学法的面向对象程序设计课程前后,笔者对上海海事大学计算机科学与技术专业2013级和2012级该课程的学习情况进行统计,列出了各自的学习效果情况。其中,2013级选择了采用创新教学法的计算机131卓越班,人数为31人。2012级选择了采用传统教学法的计算机121班,人数为37人。不同教学班级的教学效果对照见表1。其中,优秀率由总评成绩90分及以上学生的人数除以班级学生总数计算得出,良好率由总评成绩80分及以上学生的人数除以班级学生总数计算得出。

由表1可知,实施创新驱动教学法的计算机131卓越班优秀率和创新项目参与度大幅领先于采用传统教学法的计算机121班。由于计算机131卓越班的学生从计算机专业3个班级中优选而出,不能依据表1的数据简单得出创新驱动教学法的教学效果明显优于传统教学法的结论,还需要考虑生源质量因素对数据的影响。为了观察创新驱动教学法的实际教学效果,笔者将所有计算机131卓越班的学生还原到大学入学时初始分班的状态。然后,选择计算机131班的学生数据代表创新教学法的教学效果,计算机121班的数据代表传统教学法的教学效果。不同教学方法的教学效果对照见表2。

由表2可知,创新驱动教学法在优秀率、良好率以及创新项目参与度等指标上比传统教学法的教学效果更好。结 语

面向对象程序设计是计算机卓越班学生必修的一门专业基础课程,在整个专业的教学体系中具有十分重要的地位和作用。创新驱动教学法整合了各种教学资源,充分发挥了学生的主观能动性。实践证明,随着课程教学改革的不断深入,学生的创新能力得到不断提升,对“卓越工程师教育培养计划”的实施起到一定的推进作用。

参考文献:

[1] 徐秀娟,刘宇,单世民,等.面向卓越工程师的IT服务管理课程教学研究与探索[J].计算机教育,2016(6): 85-89.[2] 胡建人,李文举.计算机专业卓越工程师培养探索[J].大学教育,2016(6): 148-150.[3] 麻志毅.面向对象分析与设计[M].北京: 机械工业出版社,2013.[4] 冀津,王冠宇.悦趣化学习在面向对象程序设计教学中的应用研究[J].计算机教育,2013(18): 99-102.[5] Bergin J,Stehlik M,Roberts J,et al.Robot: A gentle introduction to the art of object-oriented programming in Java[M].Redwood City: Dreamsongs Press,2013.[6] 魏春英.案例教学在VC++面向对象程序设计课程中的应用[J].济宁学院学报,2009,30(3): 33-34.[7] 王芳,王昭俊,刘京,等.创新驱动下研究生多元互补课堂教学模式实践[J].高等建筑教育,2016,25(5): 35-38.(编辑:孙怡铭)

第二篇:《面向对象程序设计》课程教学大纲

《面向对象程序设计》课程教学大纲

学时:72

学分:4

理论学时:52

实验学时:20

面向专业:计算机科学与技术、专升本 课程代码:2700410

先开课程:计算机导论,C语言程序设计 课程性质:必修

执笔人:熊凯

审定人:陈龙猛、于仁师

第一部分:理论教学部分

一、说明

1、课程的性质、地位和任务

《面向对象程序设计》(C++)是计算机科学与技术专业的一门重要的专业基础课,在由基础训练到专业课教学阶段过渡过程中起到承上启下的作用。它不仅为今后学习专业课打下坚实的理论基础和技术基础,而且为软件开发、程序设计提供必要的理论、方法和工具。

通过对C++ 语言的学习,使学生系统了解程序设计语言的概况和基本理论,了解软件开发的全过程;理解面向对象方法的概念;系统掌握c++语言的语法结构,基本掌握结构化程序设计方法和面向对象程序设计的基本方法和编程技术;通过大量的实验和课外实践,逐步培养学生阅读程序、分析程序和独立编写程序的能力。

2、课程教学和教改基本要求

本课程是一门理论联系实际,实践性较强的课程,课内、外习题量相当大,上机时数较多(开设验证性实验2~3个,综合性、设计性实验4~5个),除了课堂教学环节外,学生必须在课外通过大量地阅读程序、编写程序,方能熟练掌握主要的语法和编程方法,并加深对各种语法成分其语用环境的认识。

二、教学内容与课时分配 第一章绪论(2学时)教学内容:

1、面向对象程序设计的基本思想及基本概念;

2、面向对象语言的分类和C++中支持面向对象的特点;

3、面向对象的软件开发环境;

4、C++开发工具的主要功能和使用方法; 重点:

1、面向对象程序设计的基本思想及基本概念;

2、面向对象语言的分类和C++中支持面向对象的特点; 难点:

1、面向对象语言的分类和C++中支持面向对象的特点; 建议教学方法: 课堂讲授 思考题:

1、面向对象程序设计的基本思想是什么?

2、C++语言支持哪些面向对象特点?

第二章面向对象程序设计方法导论(2学时)教学内容:

1、类、对象、实例的概念;

2、封装、继承、多态等概念;

3、面向对象模型的基本情况;

4、面向对象软件分析、设计、实现的基本方向;

5、程序设计风格并在实验中运用; 重点:

1、类、对象、实例的概念;

2、封装、继承、多态等概念; 难点:

1、封装、继承、多态等概念; 建议教学方法: 课堂讲授 思考题:

1、什么是封装?什么是继承?什么是多态性? 第三章

C++对C语言的常规性能扩充(4学时)教学内容:

1、用cin,cout,cerr,<<,>>进行基本输入输出;

2、C++中变量定义的方法及其与C语言中的区别;

3、作用域限定符的用法;

4、C、C++语言中变量的作用域、生存期的概念;

5、枚举类型的用法;

6、枚举变量的存储及其输入输出;

7、C++中struct与C语言中的不同;

8、const的用处和用法;

9、函数形式的类型转换与C语言中类型转换的不同;

10、引用的语法形式;

11、引用参数的用法;

12、函数参数的传址和传值方式及其区别;

13、引用返回值与左值概念;

14、函数原型的写法、作用;

15、new和delete的用处和写法;

16、动态内存分配与指针; 重点:

1、用cin,cout,cerr,<<,>>进行基本输入输出;

2、作用域限定符的用法;

3、函数定义;

4、new和delete的用处和写法;

5、动态内存分配与指针; 难点:

1、函数定义;

2、new和delete的用处和写法;

3、动态内存分配与指针; 建议教学方法: 课堂讲授 思考题:

1、new和delete使用时应注意哪些原则?

2、什么是动态分配内存?在C++中如何实现? 第四章类和对象(8学时)教学内容:

1、类定义的方法和存取级别;

2、结构作为类的定义的方法与class的区别;

3、类的成员变量和成员函数的定义和使用,以及对象的定义;

4、友元函数和友元类;

5、构造函数和析构函数;

6、构造函数和析构函数的调用及其次序;

7、拷贝构造函数的调用;

8、静态类成员变量和成员函数的定义和使用方法;

9、内联成员函数的定义和使用方法;

10、嵌套类与局部类的定义;

11、在函数中对象传递的机制; 重点:

1、类定义的方法和存取级别作用域限定符的用法;

2、构造函数和析构函数;

3、构造函数和析构函数的调用及其次序;

4、嵌套类与局部类的定义;

5、在函数中对象传递的机制; 难点:

1、构造函数和析构函数的调用及其次序;

2、拷贝构造函数的调用; 建议教学方法: 课堂讲授 思考题:

1、构造函数和析构函数的作用是什么?

2、类成员有哪些存取级别?特点如何?

3、构造函数和析构函数的调用次序是怎样的规则? 第五章多态性和重载(6学时)教学内容:

1、成员函数重载;

2、运算符重载的概念;

3、使用friend重载运算符的方法;

4、成员形式和友元形式下一元和二元运算符重载的差别;

5、数组重载运算符new和delete的定义;

6、定义重载某些特殊的运算符的方法,包括重载[]、重载()、重载->等; 重点:

1、成员函数重载;

2、运算符重载的概念;

3、定义重载某些特殊的运算符的方法,包括重载[]、重载()、重载->等; 难点:

1、成员函数重载;

2、运算符重载; 建议教学方法: 课堂讲授 思考题:

1、什么是重载?

2、函数重载有哪些原则?

3、如何实现数组重载运算符new和delete? 第六章继承性与派生类(6学时)教学内容:

1、类层次的概念及如何将概念和实现转变为类的层次的方法;

2、单继承的定义;

3、不同派生方式下成员存取控制的变化;

4、向基类构造函数传递参数的方法;

5、多继承的定义;

6、虚基类和二义性问题; 重点:

1、类层次的概念及如何将概念和实现转变为类的层次的方法;

2、单继承的定义;

3、不同派生方式下成员存取控制的变化;

4、向基类构造函数传递参数的方法; 难点:

1、不同派生方式下成员存取控制的变化;

2、向基类构造函数传递参数的方法; 建议教学方法: 课堂讲授 思考题:

1、C++中继承的语法是怎样规定的?

2、不同派生方式下成员存取控制有何变化?

3、如何向基类构造函数传递参数?

第七章运行时的多态性和虚函数(6学时)教学内容:

1、虚函数和纯虚函数的概念;

2、虚函数的用法;

3、虚析构函数的意义;

4、抽象类的概念;

5、早期和后期联编的概念; 重点:

1、虚函数和纯虚函数的概念;

2、虚函数的用法;

3、抽象类的概念;

4、早期和后期联编的概念; 难点:

1、虚函数的用法;

2、抽象类的概念;

3、早期和后期联编的概念; 建议教学方法: 课堂讲授 思考题:

1、什么是虚函数?如何定义虚函数?

2、什么是抽象类?

3、在什么场合中使用抽象类?

4、什么是早期联编?什么是后期联编? 第八章泛型程序设计和模板(6学时)教学内容:

1、泛型程序设计的意义;

2、模板函数的用法;

3、类模板的定义方法;

4、多参数的模板设计; 重点:

1、泛型程序设计的意义;

2、模板函数的用法;

3、类模板的定义方法; 难点:

1、模板函数的用法;

2、类模板的定义方法; 建议教学方法: 课堂讲授 思考题:

1、什么是模板?

2、如何定义函数模板?

3、如何定义类模板?

第九章

C++的I/O系统(8学时)教学内容:

1、C++的流,包括C++的预定义流;

2、格式化I/O的定义格式和定义方法;

3、创建重载运算符<<和>>的方法;

4、创建无参数操纵符和带参数操纵符的方法;

5、一般I/O流和文件流的关系;

6、文件与文件流的关系;

7、文件系统的概念,包括文件指针和关于文件的操作;

8、文件类的定义和相关操作的定义、使用方法;

9、利用常用函数进行文件的打开、关闭、读写、定位等操作; 重点:

1、C++的流;

2、格式化I/O的定义格式和定义方法;

3、创建重载运算符<<和>>的方法;

4、文件与文件流的关系;

5、文件系统的概念;

6、文件类的定义和相关操作的定义、使用方法; 难点:

1、创建重载运算符<<和>>的方法;

2、文件系统的概念;

3、文件类的定义和相关操作的定义、使用方法; 建议教学方法: 课堂讲授 思考题:

1、什么是流?

2、重载运算符<<和>>应该注意哪些原则?

3、对文件的读写有哪些方式?

4、如何控制二进制文件?

第十章面向对象的软件构造及程序设计风范(4学时)教学内容 1、软件质量

2、程序断言机制

3、异常处理机制

4、面向对象的软件构造 重点:

1、异常处理机制;

2、面向对象的软件构造; 难点:

1、异常处理机制; 建议教学方法: 课堂讲授 思考题:

1、什么是异常?

2、C++中如何处理异常?

3、面向对象的软件构造有哪些原则?

三、考核方式和要求

考核方式:闭卷

考核要求:考核内容应包括基本概念题、程序代码分析题(形式为程序填空和程序阅读等)和程序设计题等。

成绩核算:平时作业占总成绩的15%,实验成绩占总成绩的15%,理论考试根据教学大纲命题,占总成绩的70%。第二部分:实验教学部分

一、说明

1、本门课程实验的性质任务、目的与要求

本课程是一门理论联系实际,实践性较强的课程,上机时数较多(开设验证性实验2~3个,综合、设计性实验4~5个)。学生通过本课程的实验锻炼,应达到具有基本C++程序设计能力和基本调试能力,并具有编写面相对象程序设计的方法、思路和设计调试能力。

2、本门课程实验项目设置情况 序号 实验名称 学时 必开 选开 实验类型 验 证 基本 操作 综 合 设 计 应 用 创 新

内容提要Visual C++的开发环境认识 2 必

用Visual C++的程序向导建立一个简单的Windows程序并调试通过。C++中的对C语言的常规扩充(1)2 必

编写一个完整的C++程序,并调试通过。C++中的对C语言的常规扩充(2)2 必

将原来C语言编写的程序改写成一个C++程序,并调试通过。4 类与对象 2 必 √

设计一个类并写一测试程序建立该类的对象并调试。5 多态性和重载 2 必 √

为自定义的类编写恰当的运算符重载并测试通过。6 继承性与派生类 2 必 √

将自定义的类进行派生,研究其各种函数的调用。7 运行时的多态性和虚函数 2 必 √

在自定义的类中增加虚函数测试其运行情况。8 泛型程序设计和模板 2 必 √

编写一个函数模板和类模板并调试通过。9 C++的I/O系统 2 必 √

在自定义的类中增加流输入输出功能并编写一程序测试该类对文件流的操作。10 C++的发展和应用 2 必 √

利用STL类库编写一个简单的程序调试通过。

二、各实验项目教学要求

实验一 Visual C++的开发环境的认识

(一)实验目的:熟悉Visual C++的开发环境。

(二)实验内容:利用Visual C++的程序向导建立一个简单的基于MFC类库的Windows程序并调试通过。

(三)主要仪器设备及其配套数:计算机每人一套(四)所在实验室:计算机实验室

实验二 C++中的对C语言的常规扩充(1)(一)实验目的:掌握C++语言中扩充部分。

(二)实验内容:编写一个完整的C++程序,并调试通过。(三)主要仪器设备及其配套数:计算机每人一套(四)所在实验室:计算机实验室

实验三 C++中的对C语言的常规扩充(2)(一)实验目的:掌握C++语言中扩充部分。

(二)实验内容:将原来C语言编写的程序改写成一个C++程序,并调试通过。(三)主要仪器设备及其配套数:计算机每人一套(四)所在实验室:计算机实验室 实验四类与对象

(一)实验目的:掌握类的定义。

(二)实验内容:定义一个类并写一测试程序建立该类的对象并调试。(三)主要仪器设备及其配套数:计算机每人一套(四)所在实验室:计算机实验室 实验五多态性和重载

(一)实验目的:掌握成员函数和运算符的重载。

(二)实验内容:为自定义的类编写恰当的运算符重载并测试通过。(三)主要仪器设备及其配套数:计算机每人一套(四)所在实验室:计算机实验室 实验六继承性与派生类

(一)实验目的:掌握继承性与派生类

(二)实验内容:将自定义的类进行派生,研究其各种函数的调用。(三)主要仪器设备及其配套数:计算机每人一套(四)所在实验室:计算机实验室 实验七运行时的多态性和虚函数

(一)实验目的:掌握运行时的多态性和虚函数的概念。

(二)实验内容:在自定义的类中增加虚函数测试其运行情况。(三)主要仪器设备及其配套数:计算机每人一套(四)所在实验室:计算机实验室 实验八泛型程序设计和模板

(一)实验目的:掌握泛型程序设计和模板。

(二)实验内容:编写一个函数模板和类模板并调试通过。(三)主要仪器设备及其配套数:计算机每人一套(四)所在实验室:计算机实验室 实验九 C++的I/O系统

(一)实验目的:掌握C++的I/O系统。

(二)实验内容:在自定义的类中增加流输入输出功能并编写一程序测试该类对件流的操作。(三)主要仪器设备及其配套数:计算机每人一套(四)所在实验室:计算机实验室 实验十 C++的发展和应用

(一)实验目的:了解C++的发展和应用。

(二)实验内容:利用STL类库编写一个简单的程序调试通过。(三)主要仪器设备及其配套数:计算机每人一套(四)所在实验室:计算机实验室

三、考核方式和成绩评定要求

本课程实验的考核方式以每次上机实验的完成情况、实验报告的质量为主结合平日成绩进行综合评定

第三部分:建议使用的教材和参考书目

[1] 面向对象程序设计基础,李师贤等编著,高等教育出版社,1998.[2] 面向对象程序设计,刘正林主编,华中科技大学出版社,2001.[3] C++大学教程,Harvey M.Detitel,Paul Jmes Deitel著,邱仲潘等译,电子工业出版社,2002.

第三篇:C 面向对象程序设计课程教学大纲

《C++面向对象程序设计》课程教学大纲

C++ Object Oriented Programming

课程代码:

课程性质:专业基础理论课/必修

适用专业:信息计算、信息安全、统计

开课学期:

2、3 总学时数:10

4总学分数:6.5

编写年月:2000年3月

修订年月:2007年7月 执

笔:刘伟、高学军

一、课程的性质和目的

《面向对象程序设计》是信息与计算科学专业本科生的一门必修课程。面向对象软件开发方法是吸收了软件工程领域有益的概念和有效的方法而发展起来的一种软件开发方法。它集抽象性、封装性、继承性和多态性于一体,可以帮助人们开发出模块化的程序数据抽象程度高的,体现信息隐蔽、可复用、易修改、易扩充等特性。本课程主要介绍面向对象程序设计的方法和C++语言的基本概念。以C++语言中的面向对象机制为主。学习者在学习过程中可以通过大量的程序实例和相关练习,逐步掌握C++的面向过程和面向对象的功能,从而掌握面向对象程序设计的基本知识和基本技能。

二、课程教学内容及学时分配

第一章 面向对象的程序设计方法和C++简介(6学时)

了解面向对象程序设计的基本思想及基本概念;了解面向对象语言的分类和C++中支持面向对象的特点;了解面向对象的软件开发环境;了解Visual C++开发工作台的主要功能。

主要内容:面向对象程序设计的基本思想及基本概念:对程序的的质量要求;程序的模块化和结构化;为什么要面向对象:从面向过程到面向对象C++语言发展的历史:面向对象语言分类;C++中支持面向对象的特点面向对象的软件开发环境与Visual C++。

第二章 程序设计基础(8学时)

通过实例掌握C++程序的程序结构和执行机制;掌握简单的终端输入输出方法;掌握:C++的数据类型、常量和变量的概念;掌握数组类型及数组类型与指针类型的 1 关系;掌握用typedef自定义类型的方法;了解表达式的构成、求值顺序和表达式中的类型转换;掌握常用运算符的使用;了解程序设计风格并在试验中运用。

主要内容:C++的程序结构;C++的数据类型:基本数据类型、复合数据类型和引申数据类型;常量和变量;表达式与操作符;程序设计风格。

第三章 语句与程序流程(1

2掌握程序执行的流程;掌握C++语句结构,包括复合语句、分支语句、迭代语句和转移语句;了解各种迭代语句之间的关系和相互转换的方法;了解转移语句对程序结构的影响。

主要内容:模块化程序设计介绍;函数的一般形式;函数的参数;函数的返回值;递归函数;内联函数;函数和变量作用域;函数重载;函数指针;函数原型与强类型检查。

第四章 类与对象(10学时)

掌握类定义的方法和存取级别;了解结构的概念和结构作为类的定义的方法;了解联合与位域的概念和联合作为类的定义的方法;掌握类的成员变量和成员函数的定义和使用,以及对象的定义;了解友元函数和友元类;掌握构造函数和析构函数;掌握静态类成员变量和成员函数的定义和使用方法;掌握内联函数的定义和使用方法;了解嵌套类与局部类的定义;掌握在函数中对象传递的机制。

主要内容:复合数据类型;类的定义、类的成员变量和成员函数,存取级别,作用域分辨符;对象和类的关系;类的构造函数和析构函数;构造函数的定义;析构函数;类/对象数组;静态类成员:静态成员变量;静态成员函数;内联函数;友元类;this指针;嵌套类与局部类;在函数中对象传递的机制。第五章 数组、指针和引用(10学时)

掌握对象数组及创建初始化和未初始化的数组的方法;掌握指针的概念,包括指针变量、指针表达式、指针数组;掌握指向对象的指针;了解指向函数的指针;掌握引用的概念,包括引用参数、向对象传递引用、返回引用等;了解有关C++的动态存储分配的机制;掌握利用new和delete进行动态空间的申请和释放。

主要内容:对象数组的初始化;数组与指针;数组赋值;对象数组指针的定义、初始化;指针运算;指针数组;指向对象的指针;字符串指针引用;向对象传递引用;返回引用;引用与指针的关系;引用的常用方法;C++的动态存储分配:动态空间的申请与释放。

第六章 继承性与派生类(8学时)

了解类层次的概念及如何将概念和实现转变为类的层次的方法;掌握单继承的 2 定义格式、成员存取控制和向基类构造函数传递参数的方法;了解多继承的定义方式、虚基类和二义性问题。

主要内容:类的层次概念;成员的继承;将概念和实现转变为类的层次;单继承;成员存取控制;受保护基类的继承;向基类构造函数传递参数;多继承;虚基类;二义性问题;多继承的应用。

第七章 多态性和虚函数(8

掌握函数重载的概念;掌握运算符重载的概念;掌握使用friend重载运算符的方法;定义重载某些特殊的运算符的方法;掌握虚函数和纯虚函数的概念;了解抽象类的概念;了解早期和后期联编的概念;

主要内容:函数重载与二义性;重载构造函数;求重载函数的地址;运算符重载;引用在运算符重载中的应用;运算符重载的限制;使用friend重载运算符;虚函数

第八章 C++的I/O系统(8

了解C++的流;掌握格式化I/O的定义格式和定义方法;了解一般I/O流和文件流的关系;了解文件与文件流的关系;了解文件系统的概念;掌握文件类的定义和相关操作的定义、使用方法;掌握利用常用函数进行文件的打开、关闭、读写、定位等操作。

主要内容:流的定义;C++的预定义流;格式化的I/O;创建自己的提取符;创建无参数的操纵符;创建带参数的操纵符;文件与文件流;文件打开和关闭、文件的定位与随机存取、文件的读写。

第九章 面向对象的程序设计环境(6应用程序框架及交互界面的开发。

主要内容:面向对象的软件开发环境;Visual C++开发工作台简述;MFC的结构层次;MFC分层概述

应用程序框架及交互界面的开发;控制类及其编程实现;实现菜单和对话框控制;文档和视;单文档界面;多文档界面。

第十章 用面向对象方法设计应用程序(4学时)

掌握根据给定应用系统的设计要求用面向对象的方法设计实现应用系统;掌握利用Visual C++的界面生成器生成应用程序界面;掌握利用消息机制实现对象之间的交互。

主要内容:综合利用前面所学的内容设计两个具体的应用程序。

了解Visual C++的消息机制;了解Visual C++的基本类库MFC;掌握Visual C++ 3

学时分配:第二学期:72学时,理论课56学时,实验课16学时;

第三学期:32学时,理论课24学时,实验课8学时。

三、课程教学的基本要求

1.了解面向对象的基本概念和使用面向对象技术进行程序设计的基本思想; 2.能比较熟练地用C++语言进行一般面向对象的程序设计; 3.初步掌握面向对象编程环境Visual C++的使用。

该课程实践性较强,需要学员多作练习;主持教师需要有比较熟练的编程经验,对Visual C++环境比较熟悉;针对所留习题,可以组织两到三次讨论,以便学员掌握面向对象设计思想。

总评成绩:平时作业占30%,闭卷考试占70%。

四、本课程与其它课程的联系与分工先修课程:计算机基础训练 后续课程:软件工程

五、建议教材及教学参考书

[1]郑莉、傅仕星编,《C++面向对象程序设计》,清华大学出版社,2003年9月出版 [2]谭浩强编,《C++面向对象程序设计》,清华大学出版社,2005年7月出版 [3]李师贤等译,《C++精髓》,机械工业出版社,2002年8月出版

[4]Davis Chapman,《学用Visual c++ 6.0》,清华大学出版社,2001年7月出版

第四篇:《面向对象程序设计方法》课程教学大纲

《面向对象程序设计方法》课程教学大纲

(计算机科学与技术本科专业使用)

一、课程的地位、教学目的和基本要求

C++语言是一种高效实用的程序设计语言,既可进行过程化的程序设计,也可进行面向对象程序设计。本课程以介绍C++语言的基本语法为基础逐步向学生渗透面向对象的程序设计思想,要求学生掌握类的封装、数据隐藏、继承及多态等特性,领会面向对象程序设计,掌握面向对象程序设计方法,培养一定的程序设计能力,为以后各专业课程的学习打下良好的程序设计基础。

二、主要教学环节

1、理论教学 学时数:60 占全部学时数:75 %

2、实验 学时数:20 占全部学时数:25 %

3、实训 学时数:二周

三、课程内容 Ⅰ.理论部分

第一章 C++入门 2学时(1)教学目的、要求

本章要求学生掌握源程序的编辑、编译、连接和执行。了解C++程序设计语言的发展过程以及支持环境。(2)重点与难点

本章的重点和难点是源程序的编辑、编译、连接和执行。

第一节 从C到C++ 第二节 程序与语言 第三节 结构化程序设计 第四节 面向对象程序设计 第五节 程序开发过程 第六节 函数

第二章 基本数据类型与输入输出 2学时(1)教学目的、要求

本章要求学生掌握C++语言数据类型,变量及常量的声明和赋值以及输入输出函数。了解I/O流及printf和scanf输入输出的作用。(2)重点与难点

本章的重点和难点是C++语言数据类型,变量及常量的声明和赋值以及输入输出函数。

第一节 字符集与保留字 第二节 基本数据类型 第三节 变量定义 第四节 常量及常量定义 第五节 I/O流控制 第六节 Printf与scanf 第三章 表达式和语句 2学时(1)教学目的、要求

本章要求学生掌握C++各运算符与常用表达式内容,及if语句的应用。(2)重点与难点

C++各运算符与常用表达式内容,及if语句的应用。

第一节 表达式 第二节 算术运算和赋值 第三节 算术类型转换 第四节 增量和减量 第五节 关系与逻辑运算 第六节 if语句 第七节 条件运算符 第八节 逗号表达式 第九节 求值次序与副作用

第四章 过程化语句 2学时(1)教学目的、要求

本章要求学生掌握switch,while, do…while, for结构的应用,了解描述算法和穷举、迭代算法。(2)重点与难点

本章的重点和难点是循环型程序设计,即switch,while, do…while, for 2 结构的应用。

第一节 while 语句 第二节 do…..while 语句 第三节 for语句 第四节 switch 语句 第五节 switch 语句 第六节 过程应用: 求兀 第七节 过程应用: 判明素数 第八节 过程应用: 求积分

第五章 函数 2学时(1)教学目的、要求

本章要求学生掌握函数的概念、定义、调用机制,和递归、内联、重载函数的概念,以及全局、局部变量。(2)重点与难点

本章的重点和难点是函数的概念、定义、调用机制,以及全局、局部变量。

第一节 函数概述 第二节 函数原型

第三节 全局变量和局部变量 第四节 函数调用机制 第五节 静态局部变量 第六节 递归函数 第七节 内联函数 第八节 重载函数 第九节 默认参数的函数

第六章 程序结构 2学时(1)教学目的、要求

本章要求学生掌握变量的存储类型,作用域,可见性,生命期等概念。(2)重点与难点

本章的重点和难点是变量的存储类型,作用域,可见性,生命期。

第一节 外部存储类型 第二节 静态存储类型 第三节 作用域 第四节 可见性 第五节 生命期 第六节 头文件 第七节 多文件结构 第八节 编译预处理

第七章 数组 2学时(1)教学目的、要求

本章要求学生掌握数组的概念、元素的访问,及数组的应用。(2)重点与难点

本章的重点和难点是数组元素的访问,及数组的应用。

第一节 数组定义 第二节 访问数组元素 第三节 初始化数组 第四节 向函数传递数组 第五节 二维数组 第六节 数组应用: 排序

第七节 数组应用: Josephus问题 第八节 数组应用: 矩阵乘法

第八章 指针 2学时(1)教学目的、要求

本章要求学生掌握指针的概念、运算,以及指针与数组和函数的应用。(2)重点与难点

本章的重点和难点是指针的运算,以及指针与数组和函数的关系及应用。

第一节 指针概念 第二节 指针运算 第三节 指针与数组 第四节 堆内存分配 第五节 const指针 第六节 指针与函数 第七节 字符指针 第八节 指针数组 第九节 命令行参数 第十节 函数指针

第九章 引用 2学时(1)教学目的、要求

本章要求学生掌握引用的概念、操作,以及引用作为函数参数的应用。(2)重点与难点

本章的重点和难点是引用的操作,以及引用作为函数参数的应用。

第一节 引用的概念 第二节 引用的操作 第三节 什么能被引用 第四节 用引用传递函数参数 第五节 返回多个值 第六节 用引用返回值 第七节 函数调用作为左值 第八节 用const限定引用 第九节 返回堆中变量的引用

第十章 结构 2学时(1)教学目的、要求

本章要求学生掌握结构体概念及其定义,结构体变量和结构体数组的引用,指向结构体变量和数组的指针。(2)重点与难点

本章的重点和难点是结构体数组的引用,指向结构体变量和数组的指针。

第一节 结构 第二节 结构与指针

第三节 结构与数组 第四节 传递结构参数 第五节 返回结构 第六节 链表结构 第七节 创建与遍历链表 第八节 删除链表结点 第九节 插入链表结点

第十节 结构应用: Josephus问题

第十一章 类 4学时(1)教学目的、要求

本章要求学生掌握类的概念、类的定义,及成员函数的调用。了解保护成员和软件方法的发展必然。(2)重点与难点

本章的重点和难点是类的概念、类的定义,及成员函数的调用。

第一节 从结构到类 第二节 软件方法的发展必然 第三节 定义成员函数 第四节 调用成员函数 第五节 保护成员 第六节 屏蔽类的内部实现 第七节 再论程序结构

第十二章 构造函数 6学时(1)教学目的、要求

本章要求学生掌握构造、析构函数的使用,以及构造类成员和构造对象的顺序。了解重载和默认构造函数的概念(2)重点与难点

本章的重点和难点是构造、析构函数的使用,以及构造类成员和构造对象的顺序。

第一节 类与对象

第二节 构造函数的需要性 第三节 构造函数的使用 第四节 析构函数

第五节 带参数的构造函数 第六节 重载构造函数 第七节 默认构造函数 第八节 类成员初始化困惑 第九节 构造类成员 第十节 构造对象的顺序

第十三章 面向对象程序设计 4学时(1)教学目的、要求

本章要求学生掌握结构化和面向对象方法的实现。了解程序效率和维护。(2)重点与难点

本章的重点和难点是结构化和面向对象方法的实现。

第一节 抽象 第二节 分类 第三节 设计和效率 第四节 讨论Josephus问题 第五节 结构化方法 第六节 结构化方法的实现 第七节 第八节 第九节

面向对象方法 面向对象方法实现 程序维护

第十四章 堆与拷贝构造函数 6学时(1)教学目的、要求

本章要求学生掌握堆的概念,堆对象,拷贝构造函数及浅拷贝与深拷贝的应用。了解临时和无名对象。(2)重点与难点

本章的重点和难点是堆的概念,堆对象,拷贝构造函数及浅拷贝与深拷贝的 7 应用。

第一节 关于堆

第二节 需要new和delete的原因 第三节 分配堆对象 第四节 拷贝构造函数 第五节 默认拷贝构造函数 第六节 浅拷贝与深拷贝 第七节 临时对象 第八节 无名对象

第九节 构造函数用于类型转换

第十五章 静态成员与友员 2学时(1)教学目的、要求

本章要求学生掌握懂得怎样声明一个静态数据成员,怎样使用静态成员函数以及静态成员函数为什么与特定对象无关。(2)重点与难点

本章的重点和难点是静态数据成员和静态成员函数的使用,以及友元的概念。

第一节 静态成员的需要性 第二节 静态成员的使用 第三节 静态数据成员 第四节 静态成员函数 第五节 需要友员的原因 第六节 友员的使用

第十六章 继承 8学时(1)教学目的、要求

本章要求学生掌握继承的概念,工作方式,以及多态性和虚函数的概念。了解抽象类和类的冗余。(2)重点与难点

本章的重点和难点是继承的概念,工作方式,以及多态性和虚函数的概念。

第一节 继承的概念 第二节 继承的工作方式 第三节 派生类的构造 第四节 继承与组合 第五节 多态性

第六节 多态的思考方式 第七节 多态性如何工作 第八节 不恰当的虚函数 第九节 虚函数的限制 第十节 类的冗余

第十一节 克服冗余带来的问题 第十二节 类的分解 第十三节 抽象类

第十四节 由抽象类派生具体类 第十五节 纯虚函数的需要性

第十七章 多重继承 6学时(1)教学目的、要求

本章要求学生掌握多继承的概念,工作方式以及多继承的构造顺序和访问控制。了解虚拟继承、保护和私有继承。(2)重点与难点

本章的重点和难点是多继承的概念,工作方式以及多继承的构造顺序和访问控制。

第一节 多继承如何工作 第二节 继承的模糊性 第三节 虚拟继承

第四节 多继承的构造顺序 第五节 继承的访问控制 第六节 保护继承与私有继承

第十八章 运算符重载 4学时(1)教学目的、要求 本章要求学生掌握运算符重载的需要性和应用。了解增量运算符的重载。(2)重点与难点

本章的重点和难点是运算符重载的需要性和应用。

第一节 运算符重载的需要性 第二节 如何重载运算符 第三节 值返回与引用返回 第四节 运算符作成员函数 第五节 重载增量运算符 第六节 转换运算符 第七节 赋值运算符

四、主要教科书和参考书

1、《C++程序设计教程》

2、《C++程序设计题解与上机指导》

3、《C++语言程序设计》

4、《C++语言与面向对象程序设计》

5、《C++语言程序设计》

钱能 钱能

潭浩强 郑莉

吕凤翥清华大学出版社

清华大学出版社 清华大学出版社 清华大学出版社

清华大学出版社

责任撰写人:陈桂芬

第五篇:“面向对象的程序设计基础”课程总结

《面向对象的程序设计基础》课程总结

2014~2015学年第一学期基本结束,“面向对象的程序设计基础”课程的教学任务圆满完成。下面对本学期教学情况进行总结。

1.授课班级为14软件一班、14软件二班两个班级,平均每班授课学时96,两个班总课时量为192。

2.两个班级整体良好。积极努力、勤于思考,学习气氛比较浓厚;上课过程均未出现迟到早退现象。课堂秩序良好,和教师积极互动,发言踊跃,课堂气氛较活跃。

3.本学期两个班施行“翻转课堂”的教学模式,以任务链为载体,同学们通过完任务而掌握相关的知识点,该教学模式可以充分的锻炼同学们自主学习和结对学习的能力,教学效果很明显,教学质量得到了提高。整个学期的学习过程中,通过教师参与检查,学习内容及进度基本按照学期授课计划进行,作业按照作业计划基本完成,完成情况良好,而且部分同学的进度超前。期中考试以测试同学们的一些经典例题的基本程序思想为主,由于大部分题目同学们练习过,所以基本所有同学基本到达测试目的。

4.期末考试以测试同学们的基本知识和经典程序的设计为目的,因为面向对象的程序编写需要编译和运行,采用上机考试。考试成绩偏低,分析原因可能是因为同学们的注意力在解决问题上,对于问题相关的知识点没有系统的掌握,在以后的教学中一定要加强。

5.总评成绩的评定:出勤情况占5%,课堂表现占10%,平时作业占20%,阶段测试占20%,期末考试成绩占45%的比例完成。结果符合要求:85分以上占27%,84~75分占33%,74~60分占33%,60分以下占7%。

6.存在的问题:班风还有待进一步建立和加强。

李志芳

2015年1月13日

下载计算机卓越班面向对象程序设计课程教学改革研究[共五篇]word格式文档
下载计算机卓越班面向对象程序设计课程教学改革研究[共五篇].doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐