个人介绍
高级程序设计

主讲教师:刘辛

学校: 周口师范学院
开课院系: 网络工程学院
开课专业: 智能科学与技术、物联网工程
课程英文名称: Advanced Programming
学分: 3
课时: 72
课程介绍
高级程序设计是为计算机本科专业开设的专业必修课程。通过高级程序设计的学习,学生应该了解面向对象程序设计与面向过程程序设计的区别,了解并掌握面向对象编程中类和对象、派生和继承、多态、模板与异常处理的使用,掌握面向对象的编程思想,熟练掌握基于C++语言的面向对象编程技术,熟练掌握C++编程语言的编程技巧和开发应用环境,使学生建立起面向对象程序设计的概念,从而掌握基本的面向对象程序设计技术。
教学大纲

高级程序设计课程教学大纲

一、课程基本信息

课程代码:20170210007    英文名称:Advanced Programming

课程学分:3学分

课程学时:72学时(理论学时:36;实验学时:36

课程类别:专业必修

先修课程:程序设计基础

考核方式:考试

适用专业(方向):物联网工程

二、课程简介

高级程序设计为计算机本科专业开设的专业必修课程。通过高级程序设计的学习,学生应该了解面向对象程序设计与面向过程程序设计的区别,了解并掌握面向对象编程中类和对象、派生和继承、多态、模板与异常处理的使用,掌握面向对象的编程思想,熟练掌握基于C++语言的面向对象编程技术,熟练掌握C++编程语言的编程技巧和开发应用环境,使学生建立起面向对象程序设计的概念,从而掌握基本的面向对象程序设计技术。

三、课程目标

高级程序设计课程具体要求达到的特定教学目标包括:

1. 课程目标1理解并掌握包括类定义、类封装、类继承以及多态性等面向对象的基本概念以及相关的编程方法能够运用这些语法规则设计应用需要的类以及将这些类运用到具体的实际应用中。掌握编制基于类的程序,并具备使用这些技能求解一定复杂度的应用问题。(指标点3.23.35.2

2. 课程目标2理解并掌握面向对象编程思想,面向对象的程序设计语言规则和编程方法。了解与面向过程的程序设计方法之间的差异。掌握C++程序设计语言。(3.23.35.2

3. 课程目标3能够根据面向对象程序设计实验任务需求制定计划,了解项目开发的一般流程,并能在流程设计、算法分析、代码编程、实验数据的采集和存储、运行调试等环节中积极开展交流探究。(指标点3.34.3

4. 课程目标4深入掌握C++开发环境,掌握面向对象程序开发的相关编程技术、编译调试方法。在程序设计语言基础的前提下进一步提高实践操作能力。从而模拟和预测复杂工程问题,同时理解具体方案的局限性。(指标点5.2

四、课程支撑的毕业要求

1. 本课程支撑的毕业要求:毕业要求345

毕业要求3:设计/开发解决方案

能够针对复杂工程问题设计解决方案,开发满足特定需求的软件系统或组件,并能够在设计开发环节中体现创新意识,考虑社会、健康、安全、法律、文化及环境等因素。

毕业要求4:研究

能够基于科学原理并采用科学方法对物联网复杂工程问题进行研究,包括设计实验、分析与解释数据、并通过信息综合得到合理有效的结论。

毕业要求5:使用现代工具

能够针对计算机复杂工程问题,开发、选择与使用恰当的技术、资源、现代工程工具和信息技术工具,包括对计算机复杂工程问题的预测与模拟,并能够理解其局限性。

2. 本课程支撑的指标点:指标点3.23.34.35.2

指标点3.2掌握物联网硬件设计理论与方法,具备物联网硬件系统的设计与开发能力

指标点3.3掌握物联网软件设计理论与方法,具备物联网软件系统的设计与开发能力

指标点4.3能够有效采集、传输、存储实验数据,并对其进行分析、处理和解释,通过信息的综合获取合理有效的结论。

指标点5.2能够使用、开发现代工具,对物联网领域复杂工程问题进行预测与模拟,并理解其局限性

五、课程教学目标与毕业要求对应表

课程目标

达成途径

评价依据

课程支撑的

毕业要求

目标1理解并掌握包括类定义、类封装、类继承以及多态性等面向对象的基本概念以及相关的编程方法。能够运用这些语法规则设计应用需要的类以及将这些类运用到具体的实际应用中。掌握编制基于类的程序,并具备使用这些技能求解一定复杂度的应用问题。

1通过讲授和随堂提问、讨论等环节进行课堂强化学习。(2利用在线平台资源自主学习,并参与问题讨论。3通过课内实验培养学生实践应用能力。(4通过期末考试进行学习总结。

期末考核、课堂考勤、作业、实验作业和报告

 

毕业要求指标点3.23.35.2

目标2理解并掌握面向对象编程思想,面向对象的程序设计语言规则和编程方法。了解与面向过程的程序设计方法之间的差异。掌握C++程序设计语言。

1通过讲授和随堂提问、讨论等环节进行课堂强化学习。(2利用在线平台资源自主学习,并参与问题讨论。3通过课内实验培养学生实践应用能力。(4通过期末考试进行学习总结。

期末考核、课堂考勤、作业、实验作业和报告

毕业要求指标点3.23.35.2

目标3能够根据面向对象程序设计实验任务需求制定计划,了解项目开发的一般流程,并能在流程设计、算法分析、代码编程、实验数据的采集和存储、运行调试等环节中积极开展交流探究。

1通过讲授和随堂提问、讨论等环节进行课堂强化学习。(2利用在线平台资源自主学习,并参与问题讨论。3通过课内实验培养学生实践应用能力。(4通过综合课程设计培养开发能力。

期末考核、课堂考勤、作业、实验作业和报告综合课程设计

 

毕业要求指标点3.34.3

目标4深入掌握C++开发环境,掌握面向对象程序开发的相关编程技术、编译调试方法。在程序设计语言基础的前提下进一步提高实践操作能力。从而模拟和预测复杂工程问题,同时理解具体方案的局限性。

1通过讲授和随堂提问、讨论等环节进行课堂强化学习。(2利用在线平台资源自主学习,并参与问题讨论。3通过课内实验培养学生实践应用能力。(4通过期末考试进行学习总结。5通过综合课程设计培养开发能力。

期末考核、课堂考勤、作业、实验作业和报告综合课程设计

毕业要求指标点5.2


六、课程教学内容与课程目标对应表

理论教学

教学内容

学时

教学目的与要求

教学方法

支撑课程目标

1面向对象程序设计概述

1面向对象程序设计的思想。

2面向对象程序设计的基本特征

3面向对象程序设计与结构化程序设计的对比

重点:1)(2

难点:1

2

1掌握面向对象程序设计的基本概念,理解面向对象系统的主要特性(数据的抽象与封装、继承性、多态性)

2理解结构化程序设计和面向对象程序设计方法的区别,理解类,对象和封装的概念

3了解面向对象语言的发展历史,C++编程的一般过程。

1讲授法。

2案例分析法。

3提问、讨论

课程目标1

课程目标2

2C++语言基础

1C++程序的一般结构

2C++的输入与输出

3string 类的使用。

4)函数的使用,包括带默认值的函数、函数重载和内联函数。

5)指针和引用。

重点:2)、(4)、5

难点:5

6

1了解C++规范程序代码的编写

2掌握输入流cin和输出流cout,输入运算符>>和输出运算符<<的使用

3)掌握string类的使用。 

4)掌握函数声明和定义的语法及如何界定功能模块和提炼函数

5掌握引用的概念和用法

6掌握newdelete运算符的用法

1讲授法。

2案例分析法。

3提问、讨论

课程目标2

课程目标4

3类与对象

1)从结构到类。

2)类声明到定义面向对象程序组织。
3)类的构成。

4)构造函数和析构函数

5对象的建立构造函数与析构函数的作用

重点:3)、(4

难点:2)(4

8

1掌握类的定义和对象的声明

2掌握具有不同访问属性的成员的访问方式

3)掌握类成员定义的语法:成员函数和数据成员。

4)掌握基于类的面向对象程序开发的组织结构。

5)学会定义和使用类,使用类的成员函数;理解封装性。

6)掌握类的构造函数和析构函数定义方法。

7)理解构造函数和析构函数的执行过程

1讲授法。

2案例分析法。

3提问、讨论

课程目标1

课程目标2

课程目标3

第4章 类的知识进阶

1)复制构造函数的作用和执行时机。

2)构造函数重载和成员函数重载。

3)静态成员和静态成员函数。

4)常成员与引用成员。

5)常成员函数。

6)友元函数与友元类的声明与使用。

7)运算符重载。

重点:2)、(3)、(4)、(7

难点:4)、(7

6

(1)理解复制构造函数的作用和执行时机。

(2)理解常数据成员与静态数据成员的差别。

(3)了解友元的作用和使用场合。

(4)掌握友元函数和友元类的使用。

(5)理解和掌握几种典型运算符重载的方法(成员与非成员函数)。

1讲授法。

2案例分析法。

3提问、讨论

课程目标1

课程目标2

课程目标3

课程目标4

第5章 类的继承与派生

(1)类的继承概念与层次结构的对应。

(2)定义派生类的方法

(3)掌握继承访问权限控制的三种方式。

(4)多级派生和多重派生。

(5)继承引发的同名冲突及其解决方案。

(6)赋值兼容原则的应用

重点:2)、(3)、(5)、(6

难点:4)、(5)、(6

6

1)理解和掌握类分层概念及继承方式,理解派生类定义与构造。

2掌握继承方式对基类成员的访问权限的影响

3)掌握子类对父类成员的访问。

4)理解和掌握继承中的构造和析构顺序。

5)理解同名冲突产生的原因,并能合理使用作用域标识符“::和虚基类进行解决。

5掌握赋值兼容原则

1讲授法。

2案例分析法。

3提问、讨论

课程目标1

课程目标2

课程目标3

课程目标4

6 虚函数和多态性

1多态性的概念

2虚函数的作用

3虚函数定义和实现的方式

4纯虚函数与抽象类

5)多态编程。

重点:1)、(2)、(3)、(4)、(5

难点:1)、(4)、(5

4

1掌握编译时的多态和运行时的多态的使用

2)理解和掌握虚函数语法及其作用。

3)理解和掌握多态作用。

4)理解和掌握抽象类的定义,注意抽象类和具体类的关系和差异。

5)理解和掌握虚基类和纯虚基类的定义方法和差异。

6)结合实际问题,建立对应的类模型:运用虚基类和基类指针构建多态模型,用抽象类做接口。

1讲授法。

2案例分析法。

3提问、讨论

课程目标1

课程目标2

课程目标3

课程目标4

7模板与异常处理

1函数模板和模板函数的定义与使用

2类模板与模板的定义和使用

3)异常处理机制。

重点:1)、(2)、(3

难点:2)、(3

4

1)理解和掌握函数模板的定义和使用

2)理解和掌握类模板的定义和使用。

3)理解和掌握异常处理的概念和相应的关键字。

4)掌握异常处理的一般模式,能简单应用异常处理。

1讲授法。

2案例分析法。

3提问、讨论

课程目标1

课程目标2

课程目标3

课程目标4

注:教学内容坚持课程思政,坚持专业教育与课程思政教育相融合。

2. 实验教学

1)实验教学性质与目标

本课程实验以“任务驱动”的方式将所学知识通过完成任务的形式组织起来,让学生通过实验内容训练,主要使学生了解有关面向对象程序设计的基本概念及术语,掌握面向对象程序设计的一般方法。通过编程和实践使学生具备基本的程序设计技能、面向对象编程的一般思想,并能较熟练地使用C++语言进行程序设计;培养学生严谨的程序设计思想和应用计算机解决和处理实际问题的思维方法与基本能力,并以此为基础逐渐掌握复杂软件的设计和开发手段,为大型应用软件设计与开发打下良好的理论和实践基础,进一步提高程序设计能力,为后续课程的学习打下坚实的理论和实践基础。


2)实验项目基本情况

序号

实验项目名称

实验要求

实验

学时

支撑

课程目标

1

C++程序基本结构

1熟悉C++语言编程环境,掌握运行一个C++程序的基本步骤,包括编辑、编译、连接和运行

2学习用C++语言编程环境编写标准的C++控制台程序

3了解程序调试过程

设计

2

课程目标2

2

C++C语言的补充

1 C++在非面向对象方向对C的扩充

2)掌握内存动态分配方法,newdelete运算符的用法

3理解函数重载、带默认值函数的作用

4)掌握引用的使用

设计

6

课程目标2

课程目标4

3

C++类设计基础

1)掌握类的定义和对象的声明的方式

2观察具有不同访问属性的成员的访问方式

3观察构造函数和析构函数的执行过程

4)掌握对象数组和对象指针的使用。

5)能根据问题需要定义和使用常数据成员。

设计

8

课程目标1

课程目标2

课程目标3

 

4

C++类进阶

(1)观察复制构造函数的执行时机,理解深复制与浅复制。

(2)掌握友元函数的使用。

(3)掌握如何根据问题需要定义和使用静态数据成员。

(4)掌握成员函数重载运算符的方法。

设计

6

课程目标1

课程目标2

课程目标3

课程目标4

5

继承和派生

1掌握派生类的定义方法和实现

2理解三种访问权限继承下基类成员对派生类成员和派生类对象的可见性

3)观察继承中构造函数和析构函数的执行顺序。

4)理解由继承引发的同名冲突并掌握其解决方案。

设计

6

课程目标1

课程目标2

课程目标3

课程目标4

6

虚函数和多态性

(1)掌握虚函数的定义和使用,正确理解并编程实现之。

(2)根据问题模型自行设计简单的继承层次来求解。

(3)掌握抽象类定义和使用。

(4)使用虚函数及指向基类的指针实现动态绑定。

设计

4

课程目标1

课程目标2

课程目标3

课程目标4

7

模板异常处理

(1)掌握函数模板的定义和具体应用

(2)初步掌握类模板的定义和具体应用

(3)掌握基本的异常处理

设计

4

课程目标1

课程目标2

课程目标3

课程目标4

七、课程考核及成绩评定

1. 重点考核内容:面向对象程序设计概念与特征、C++C语言的扩充、类与对象的概念、类的继承与派生、通过虚函数实现多态性、函数模板与类模板的使用

2. 考核方式:考试

3. 考核形式:课程考勤、平时作业、实验成绩、在线学习情况、期末考核等综合评定。

4. 成绩评定:采用百分制,其构成比例如下。

1) 课程终评成绩 = 平时成绩 * 40% + 期末考试成绩 * 60%

2)平时成绩内容包括:课程考勤 * 15% + 超星在线课程学习情况(包括观看课程视频、章节学习次数、章节作业和课堂互动*60% + 课程实验(acm.zknu.edu.cn 各章实验题)* 25%

八、选用教材与课程资源

 材:

C++程序设计第3. 齐建玲邓振杰.北京:人民邮电出版社,2017

参考书:

1C++程序设计.谭浩强著.北京:清华大学出版社,2015

2C++程序设计思想与方法.翁慧玉俞勇.北京:人民邮电出版社,2016

3面向对象程序设计:C++描述.(美)Richard Johnson Baugh.北京:机械工业出版社,2011

4C++面向对象程序设计教程.陈维兴、林小茶著,北京:清华大学出版社,2018

5C++语言程序设计.郑莉、董渊著.北京:清华大学出版社,2010

网络教学资源

1. 自建超星学习通教学平台

https://mooc1-1.chaoxing.com/course/216833016.html

2. 北京大学《程序设计与算法(三)C++面向对象程序设计》国家级精品在线开放课程网址

https://www.icourse163.org/course/CAU-432001

3. 中国农业大学C++语言程序设计》国家级精品在线开放课程网址

https://www.icourse163.org/course/PKU-1002029030

课程评价

教学资源
课程章节 | 文件类型   | 修改时间 | 大小 | 备注
1.1 面向过程PK面向对象
附件
.${file.extension}
2021-03-01 --
 
附件
.${file.extension}
2021-03-01 --
1.2 C++的历史
附件
.
2021-02-26 46.78MB
1.3 面向对象编程方法
附件
.
2021-02-26 92.36MB
1.4 第一个C++程序
附件
.
2021-03-01 99.81MB
1.6 辅导答疑
视频
.mp4
2021-03-10 46.71MB
 
视频
.mp4
2021-03-10 101.02MB
 
视频
.mp4
2021-03-10 43.17MB
2.1 2.1 基本结构
文档
.pptx
2021-03-09 117.93KB
2.2 2.2数组 2.3 string类
文档
.pptx
2021-03-09 94.06KB
2.3 2.4 函数
文档
.pptx
2021-03-09 90.66KB
2.4 2.5 指针与引用
文档
.pptx
2021-03-10 102.88KB
2.5 2.6 结构体与共用体
文档
.pptx
2021-03-26 97.78KB
 
附件
.
2021-03-26 94.39MB
2.6 辅导答疑
视频
.mp4
2021-03-20 80.10MB
 
视频
.mp4
2021-03-25 41.22MB
3.1 面向对象程序设计基本特点
附件
.
2021-03-20 96.79MB
3.2 类的定义和对象
附件
.
2021-04-01 72.33MB
 
文档
.pptx
2021-04-01 112.90KB
3.3 类的构造函数
附件
.
2021-04-01 93.13MB
 
文档
.pptx
2021-04-01 61.28KB
3.4 类的析构函数
附件
.
2021-04-01 89.49MB
 
文档
.pptx
2021-04-01 42.40KB
3.5 标识符的作用域与可见性
附件
.
2021-03-28 94.39MB
 
附件
.
2021-03-28 89.66MB
3.6 常对象
附件
.
2021-04-15 91.36MB
3.7 辅导答疑
视频
.mp4
2021-04-15 142.20MB
 
视频
.mp4
2021-04-15 632.82MB
4.1 静态数据成员
附件
.
2021-03-28 89.66MB
4.2 友元
附件
.
2021-03-28 91.36MB
4.3 运算符重载
附件
.
2021-05-31 91.00MB
 
附件
.
2021-05-31 93.84MB
4.4 辅导答疑
视频
.mp4
2021-05-09 350.42MB
 
视频
.mp4
2021-05-09 324.49MB
 
视频
.mp4
2021-05-09 369.44MB
 
视频
.mp4
2021-05-10 364.17MB
 
视频
.mp4
2021-05-10 271.24MB
5.1 类的继承和派生(1)
附件
.
2021-05-10 92.12MB
5.2 类的继承和派生(2)
附件
.
2021-05-10 162.60MB
5.3 类的继承和派生(3)
附件
.
2021-05-10 93.24MB
5.4 类的继承和派生(4)
附件
.
2021-05-10 89.92MB
5.5 辅导答疑
视频
.mp4
2021-06-20 491.06MB
 
视频
.mp4
2021-06-20 366.17MB
6.1 虚函数
附件
.
2021-05-31 93.84MB
6.2 辅导答疑
视频
.mp4
2021-06-30 310.31MB
7.1 异常处理
附件
.
2021-06-16 124.11MB
提示框
提示框
确定要报名此课程吗?
确定取消

京ICP备10040544号-2

京公网安备 11010802021885号