活动新闻
研究生先导课程一:《C++程序设计》课程教学
一、 课程简介
1. 课程背景
程序设计课程是大学计算机基础教育和人工智能专业、计算机专业的核心课程,是数据结构、算法设计、软件工程等课程的前导课程。程序设计课程的教学目标是使学生能够使用一种程序设计语言和软件开发工具熟练的进行软件开发,为学生将来的知识学习、工程开发、科学研究提供有力的基础工程能力支持。
C++是国内外广泛使用的计算机程序设计语言,功能强大、数据表示丰富、代码运行效率高、可移植性好,适合编写系统软件和各类应用程序。在TIOBE排行榜上,C++语言多年来始终处于前五位。学习程序设计从C++入手,对于培养利用计算机求解现实问题的计算思维能力,具有其他语言无法比拟的优点。掌握了C++语言之后,再学习其他程序设计语言就会轻车熟路了。
C是C++的子集,因此在C++的授课中,有至少一半的内容是和C语言一样的。而国内C++程序设计课程的学时普遍较少,且讲授的重点一般都放在和C重叠的那一部分。对于C++比C多出来的内容往往只介绍类、继承等基本概念,而对于重载、多态、异常处理、数据流等内容言之甚少。本课程即针对这一问题,增加了C++独有的内容的比重,不但适用于在校大学生、研究生,而且适用于工作中使用C++进行软件开发的工程技术和科研人员。
2. 修课说明
适用对象:人工智能、计算机相关专业
选修课程:C语言程序设计
共修课程:无
排斥课程:无
3. 课程目标
通过本课程的学习,学生将获得C++基础、函数、数组、指针、字符串以及面向对象编程方法思想等方面的知识,培养学生程序设计、开发与测试能力,运用计算思维方法去分析和解决问题的能力,以及团队合作精神,为学习后续的课程和进一步获得程序设计相关知识奠定坚实的基础。
课程的知识和技术标签
4. 教学团队
授课老师:刘强 教授
助教:于延锁 助理教授
二、 教学内容与教学要求
序号 | 教学内容 | 教学要求 |
第一周 | C++语言概述、信息的表示与存储、程序中数据的表示、运算符与表达式 | 了解计算机系统的组成及计算机指令 程序设计语言的发展及C++语言 |
第二周 | 顺序结构的程序设计、选择结构的程序设计、循环结构的程序设计、循环结构的设计 | 学习语句、输入与输出、if语句和switch语句、选择结构的嵌套循环语句、循环的附加控制语句、掌握循环结构的程序设计、循环的嵌套、循环的设计 |
第三周 | 函数的定义和使用 函数的设计 函数的调用 作用域、生命期和程序的组织结构 | 学习函数的定义和函数的参数 函数的声明与内联函数 默认参数与函数重载 函数模板与库函数的调用 函数的嵌套调用 函数的递归调用 作用域和生命期 程序的组织结构 |
第四周 | 命名空间 数组的定义和使用 数组与函数 字符串的处理数组的应用 | 学习并掌握命名空间的定义和使用 一维数组、二维数组的定义、初始化、引用 数组作为函数的参数和传递机制 字符数组与字符串处理函数 字符串对象及其操作 用数组解决排序和查找问题 |
第五周 | 指针的定义与使用 指针与数组 指针与函数 | 学习并掌握指针的定义 指针的有效性和运算 一维数组与指针 指针与字符串 指针作为函数的参数 引用和指向函数的指针 |
第六周 | 动态分配内存 自定义数据类型 自定义数据类型的应用——链表 预处理命令 习题解析 | 学习并掌握new与delete运算符 动态分配数组和字符串 结构体类型 共用体类型、枚举类型 链表的概念和分类 链表的运算 什么是预处理命令以及宏定义 文件包含和条件编译 数据类型、控制结构、函数 预处理命令、数组、指针、自定义数据类型 |
第七周 | 类的定义 对象的定义和使用 构造函数 默认构造函数和复制构造函数 析构函数 | 学习并掌握定义类及成员的访问控制 类的数据成员、类的成员函数、类的声明 对象的的定义及 对象的动态建立和释放 对象成员的引用、对象的赋值、对象的指针 构造函数及构造函数的定义 构造函数的重载、带默认参数的构造函数 定义默认构造函数、隐式类类型转换 复制构造函数与合成复制构造函数 析构函数的定义及合成析构函数 何时需要编写析构函数 |
第八周 | 对象数组和对象指针 类作用域、对象生命期、const限定 静态成员和友元 | 学习并掌握对象数组及指向对象的指针 成员指针及this指针 类的作用域及对象的生命期 常对象、常成员、常指针、常引用 |
第九周 | 类的继承与派生 派生类成员的访问 派生类的构造和析构函数 多重继承 | 学习并掌握派生类的定义 派生类的构成 派生类成员的访问权限 赋值兼容规则 派生类的构造函数 派生类的析构函数 重继承派生类及二义性问题 虚基类 |
第十周 | 多态性 虚函数 运算符重载 典型运算符的载 | 学习并掌握多态性的概念 静态联编和动态联编 多态的条件及多态性 纯虚函数和抽象类 运算符重载的概念和实现 构造“分数”类 典型运算符的重载 |
第十一周 | 类模板 标准库 文件 向量vector | 学习并掌握类模板的定义 类模板应用举例 C++标准库 字符串流 文件的概念 文件的操作 向量的实现细节 向量的使用 |
第十 二周 | 队列(queue)和栈(stack)列表list 异常处理 | 学习并掌握队列queue 栈stack 列表的使用和实现细节异常处理的基本概念 异常处理的实现 |
三、 学习要求和课程考核
1. 学习要求
(1)利用在线视频资源和教材进行学习;
(2)按时完成在线课程对应的课后作业及测试。
2. 课程考核
每周对相应的课后测试成绩统计,班长和班委进行督促统计,上报给研究院负责老师。
四、 参考书籍和参考资料
1. 姜学锋、周国清、刘君瑞,C++程序设计,清华大学出版社,2012年.
2. 郑莉,董渊著,C++语言程序设计(第5版),清华大学出版社,2020年.
3. 魏英,C++程序设计实验教程,清华大学出版社,2011年.
4. 刘君瑞,C++程序设计习题与解析,清华大学出版社,2011年.
五、 学习导航
1.直接点击下方的“C++程序设计”课程链接(如下图所示):https://www.icourse163.org/course/NWPU-494001
2. 进入到课程首页面后,点击“立即参加”或“已参加,进入学习”,即可进入学习页面。
3. 每一章节由PPT、视频、练习三部分组成,初学者可以按照顺序,先看PPT做预习,然后看视频,再做练习。或者直接看视频,然后练习,PPT作为查缺补漏的工具。
相信同学们经过系统的学习C++程序设计这门课,一定会对计算机语言有了更深一步的了解,对于未来学习更新的技术打下了坚实的基础。加油!