课程名称 |
面向对象程序设计实验 |
Experiments of Object Oriented Programming |
开课单位 |
计算机学院 |
课程性质 |
必修课 |
课程类别 |
实践环节 |
课程代码 |
210731101901 |
学分 |
1 |
学时 |
22 |
适用专业 |
软件工程、物联网工程 |
先修课程 |
程序设计基础 |
支撑课程 |
面向对象程序设计 |
授课语言 |
中文 |
一、课程简介
(一)课程中文简介(300-500字,含主要实验内容、实验教学目标等)
面向对象程序设计实验以C++语言为工具,以动手编程为切入点,侧重C++语言特性、面向对象方法和程序设计抽象思维的训练。通过实验,使学生具备熟练使用C++语言进行程序设计的能力,熟练掌握C++语言的基本语法、函数、对象、类、模板、运算符重载、继承、多态等技术,掌握C++标准模板库的使用,理解模块化、封装、泛型、抽象化、继承和多态等程序设计抽象思维模式,培养程序设计抽象思维能力,了解大型程序和GUI程序的设计工具,了解面向对象方法各领域的发展方向。
(二)课程英文简介
Experiments of Object Oriented Programming uses C ++ language as a tool and hands-on programming as an entry point, focusing on the training of C ++ language features, object-oriented methods and abstract thinking of programming. Through experiments, students will have the ability to use C ++ language for programming, master the basic syntax of C ++ language, functions, objects, classes, templates, operator overloading, inheritance, polymorphism and other technologies, and master the use of C ++ standard template library. Understand the abstract thinking modes of programming such as modularization, encapsulation, generics, abstraction, inheritance and polymorphism, cultivate the abstract thinking ability of programming, understand the design tools of large programs and GUI programs, and understand the development direction of object-oriented methods in various fields.
二、实验课程目标
本课程的目标包括:
CO1:识记面向对象程序设计的基础知识和基本方法;能够在程序设计的过程中,领会问题的基本要素,选择并封装合适的类和对象,归纳并抽象合理的类间关系,解释面向对象程序设计的基本方法和核心要素。
CO2:能够在程序设计的过程中,辨认面向对象方法的核心目标和关键要素,熟练运用面向对象设计语言的各种功能技术和基础模型,利用面向对象程序设计方法,编写程序实现求解过程。
CO3:能够在程序设计的过程中,分析问题的基本规律,比较并选择恰当的抽象数据类型,识别和运用恰当的面向对象方法与技术,编写程序实现并归纳测试样例加以测试。
课程目标与所支撑的毕业要求指标点的对应关系如下表所示。
适用专业 |
毕业要求内涵观测点 |
课程目标 |
软件工程 |
GR3.2能够遵循软件设计方案,实现软件单元,特别是互联网应用软件、智能应用软件与游戏软件的单元实现。 |
CO1、CO2、CO3 |
物联网工程 |
GR3.5综合利用物联网应用领域专业知识和新技术,在针对复杂工程问题的设计及开发中体现创新意识。 |
CO1、CO2、CO3 |
智能科学与技术 |
GR2.4能够运用基本原理,借助文献研究分析人工智能领域的复杂工程问题,判断过程的影响因素,获得有效结论。 |
CO1 |
GR3.3综合利用人工智能领域的专业知识和新技术,在针对复杂工程问题的系统设计中体现创新意识。 |
CO2、CO3 |
三、实验内容与要求
(一)实验设计(实验类型及内容)
验证性(70%)
验证性实验有七个:C++语言基础、类和对象、类的组合、运算符重载、继承、多态。
综合性(10%)
综合性实验有一个:模板和STL
设计研究性(20%)
设计研究型实验有二个:类的封装、继承和多态
表2 实验内容与课程目标对应关系
实验课程目标 |
实验模块(可选) |
对应实验 |
CO1 |
|
实验3,4,9 |
CO2 |
|
实验1,2,3,5,6 |
CO3 |
|
实验4,7,8,9 |
(二)实验内容及要求
表3 实验内容与要求
编号 |
实验项目 |
学时数 |
实验内容 |
实验类型 |
实验要求 |
1 |
C++语言基础 |
2 |
熟悉C++新语法:引用、函数等 |
验证性 |
必做 |
2 |
类和对象 |
4 |
掌握C++类和对象的使用 |
验证性 |
必做 |
3 |
类的封装 |
2 |
运用类的封装设计程序 |
设计研究 |
必做 |
4 |
类的组合 |
4 |
理解C++类的组合的使用 |
验证性 |
必做 |
5 |
运算符重载 |
2 |
掌握C++运算符重载的使用 |
验证性 |
必做 |
6 |
模板和STL |
4 |
掌握C++模板的使用,了解STL库 |
综合性 |
必做 |
7 |
继承 |
2 |
掌握C++继承的使用 |
验证性 |
必做 |
8 |
多态 |
2 |
掌握C++多态的使用 |
验证性 |
必做 |
9 |
面向对象设计 |
2 |
运用封装、组合、继承和多态设计程序 |
设计研究 |
必做 |
四、实验设备与环境配置
1. 计算机:Intel Core2 Duo E4300 1.8GHZ、内存512MB、硬盘15GB以上。
2. 编译器:支持ISO C++ 98标准特性,如GCC、VC++7以上;或支持ISO C++ 11标准特性,如GCC 4.8.1、VC++ 2013以上。
3. 开发环境:Codeblocks 10.05以上,或Visual Studio 2008以上,或Xcode 4.1以上。
4. 实验题目及结果:学生在程序在线评测系统进行实验,使用系统题库,并由系统判定实验结果。
五、课程思政、创新创业元素
教学章节 |
知识点 |
思政元素案例 |
培养目标 |
备注 |
实验3 |
团队合作与分工 |
软件开发团队的人员组成和分工 分类学原理 |
1.理解团队协作的重要性2.在学习生活中做好分类计划,合理规划时间 |
|
实验4 |
关系 |
良好定义类与类之间的关系.实现既定的系统目标 |
理解哲学中事物之间的普遍联系:联系是事物之间以及事物内部诸要素之间的相互影响、相互制约和相互作用。联系具有普遍性、客观性、多样性、条件性 |
|
实验6 |
自学能力 |
通过查询STL文档自学STL使用方法 |
培养编程中基本的自我学习能力 |
|
六、主要参考资料
[1] 杜茂康, 等. C++面向对象程序设计, 2版[M]. 北京: 电子工业出版社, 2011.
[2] Kayshav Dattatri. C++面向对象高效编程, 2版[M]. 叶尘, 译. 北京: 电子工业出版社 2013.
[3] Bjarne Stroustrup. C++程序设计原理与实践[M]. 王刚, 等译. 北京: 机械工业出版社, 2010.
[4] Stanley B Lippman, Josee Lajoie, Barbara E Moo. C++ Primer中文版, 5版[M]. 王刚, 等译. 北京: 电子工业出版社, 2013.
[5] Bjarne Stroustrup. C++程序设计语言(特别版)[M]. 裘宗燕, 译. 北京: 机械工业出版社, 2002.
[6] F A Allain. C++程序设计:现代方法[M]. 赵守彬, 等译. 北京: 人民邮电出版社, 2014.
[7] 郑莉, 等. C++语言程序设计, 4版[M]. 北京: 清华大学出版社, 2010.
[8] Scott Meyers. Effective C++:改善程序与设计的55个具体做法, 3版[M]. 侯捷, 译. 北京: 电子工业出版社, 2010.
[9] Herb Sutter. Exceptional C++:47个C++工程难题、编程问题和解决方案[M]. 聂雪军, 译. 北京: 电子工业出版社, 2012.
[10] Herb Sutter. C++编程规范:101条规则、准则与最佳实践[M]. 刘基诚, 译. 北京: 人民邮电出版社, 2010.
[11] Ivor Horton. Visual C++ 2013入门经典 [M]. 李周芳, 等译. 北京: 清华大学出版社, 2015.
[12] http://www.cprogramming.com [OL].
七、考核方式、方法及实验成绩评定方法
考核成绩可以采用五级制或百分制。课程成绩考核有两种:
方式一:由各次实验成绩考核组成。
方式二:包括课程实验(占80%-100%),期末考试占(0%-20%);
方式三:包括课程实验(占50%),课程作业占(50%)。
各次实验考核成绩由程序在线评测系统(Online Judge)根据实验中每题的完成情况按百分制给出。实验每题按百分制给出,其中通过测试样例数占比90%,完成时间占比10%。
(一)评分标准
表4 实验评分标准
考核 环节 |
<60 (不及格) |
60-69 (及格) |
70-79 (中等) |
80-89 (良好) |
90-100 (优秀) |
平时 |
在线评测系统成绩<60 |
在线评测系统成绩60-70 |
在线评测系统成绩70-80 |
在线评测系统成绩80-90 |
在线评测系统成绩90-100 |
期末考核(可选) |
视作一次实验(可选) |
视作一次实验(可选) |
视作一次实验(可选) |
视作一次实验(可选) |
视作一次实验(可选) |
(二)实验项目权重
表5 实验课程目标与实验项目对应关系
实验项目 |
目标1 |
目标2 |
目标3 |
C++语言基础 |
|
10% |
|
类和对象 |
|
30% |
|
类的封装 |
30% |
20% |
|
类的组合 |
30% |
|
30% |
运算符重载 |
|
20% |
|
模板和STL |
|
20% |
|
继承 |
|
|
25% |
多态 |
|
|
25% |
面向对象设计 |
40% |
|
20% |
|
100% |
100% |
100% |
撰稿人:吴振寰
审核人:崔焕庆
批准人:罗汉江