Linux操作系统开源的特性使得其获得越来越重要的地位,而Linux系统编程也向C++程序设计者提出了更高的要求。本课程由C/C++语言的共性与特性出发,在深入学习程序设计语言的基础上,进一步强调程序设计语言的适用性,并与Linux系统编程紧密结合,通过大力培养学习者的抽象思维能力和计算思维能力,将学习者对语言作为工具的基本认知转化为动手实践能力,完成从具象到抽象再到具象的思维能力转变。课程内容主要涵盖C++程序设计基本概念、数据组织与算法设计、程序组织、面向对象程序设计方法、泛型编程与模板库以及进程、线程、内存管理、设备驱动程序、网络等Linux系统编程核心主题。
Overview
Syllabus
- 第一讲 C/C++基本语法元素
- 1.1 提纲
- 1.2 程序设计的基本概念
- 1.3 简单C/C++程序介绍
- 1.4 程序设计的基本流程
- 1.5 基本语法元素
- 1.6 程序设计风格
- 1.7 编程实践
- 第二讲 程序控制结构
- 2.1 提纲
- 2.2 结构化程序设计基础
- 2.3 布尔数据
- 2.4 分支结构
- 2.5 break语句
- 2.6 循环结构
- 2.7 编程实践
- 第三讲 函数
- 3.1 提纲
- 3.2 函数声明、调用与定义
- 3.3 函数调用栈框架
- 3.4 编程实践
- 第四讲 算法
- 4.1 提纲
- 4.2 算法概念与特征
- 4.3 算法描述
- 4.4 算法设计与实现
- 4.5 递归算法(一)
- 4.6 递归算法(二)
- 4.7 容错与计算复杂度
- 4.8 编程实践
- 第五讲 程序组织与开发方法
- 5.1 提纲
- 5.2 库与接口
- 5.3 随机数库(一)
- 5.4 随机数库(二)
- 5.5 作用域与生存期
- 5.6 典型软件开发流程(一)
- 5.7 典型软件开发流程(二)
- 5.8 编程实践
- 第六讲 复合数据类型
- 6.1 提纲
- 6.2 字符
- 6.3 数组(一)
- 6.4 数组(二)
- 6.5 结构体
- 6.6 编程实践
- 第七讲 指针与引用
- 7.1 提纲
- 7.2 指针基本概念
- 7.3 指针与函数
- 7.4 指针与复合数据类型(一)
- 7.5 指针与复合数据类型(二)
- 7.6 字符串
- 7.7 动态存储管理(一)
- 7.8 动态存储管理(二)
- 7.9 引用
- 7.10 编程实践
- 第八讲 链表与程序抽象
- 8.1 提纲
- 8.2 数据抽象(一)
- 8.3 数据抽象(二)
- 8.4 链表(一)
- 8.5 链表(二)
- 8.6 链表(三)
- 8.7 链表(四)
- 8.8 函数指针(一)
- 8.9 函数指针(二)
- 8.10 抽象链表(一)
- 8.11 抽象链表(二)
- 8.12 编程实践
- 第九讲 类与对象
- 9.1 提纲
- 9.2 程序抽象与面向对象
- 9.3 类类型
- 9.4 对象(一)
- 9.5 对象(二)
- 9.6 类与对象的成员(一)
- 9.7 类与对象的成员(二)
- 9.8 类与对象的成员(三)
- 9.9 继承(一)
- 9.10 继承(二)
- 9.11 继承(三)
- 9.12 多态(一)
- 9.13 多态(二)
- 9.14 编程实践
- 第十讲 操作符重载
- 10.1 提纲
- 10.2 四则运算符重载(一)
- 10.3 四则运算符重载(二)
- 10.4 关系与下标操作符重载
- 10.5 赋值操作符重载(一)
- 10.6 赋值操作符重载(二)
- 10.7 赋值操作符重载(三)
- 10.8 赋值操作符重载(四)
- 10.9 赋值操作符重载(五)
- 10.10 流操作符重载(一)
- 10.11 流操作符重载(二)
- 10.12 流操作符重载(三)
- 10.13 操作符重载总结
- 10.14 编程实践
- 第十一讲 泛型编程
- 11.1 提纲
- 11.2 泛型编程概览
- 11.3 异常处理机制(一)
- 11.4 异常处理机制(二)
- 11.5 运行期型式信息(一)
- 11.6 运行期型式信息(二)
- 11.7 模板与型式参数化
- 11.8 题外话:术语翻译
- 11.9 泛型编程实践(一)
- 11.10 泛型编程实践(二)
- 11.11 泛型编程实践(三)
- 11.12 泛型编程实践(四)
- 11.13 泛型编程实践(五)
- 11.14 泛型编程实践(六)
- 11.15 泛型编程实践(七)
- 11.16 泛型编程实践(八)
- 11.17 泛型编程实践(九)
- 11.18 泛型编程实践(十)
- 11.19 编程实践
- 第十二讲 Linux系统编程基础
- 12.1 提纲
- 12.2 程序执行环境(一)
- 12.3 程序执行环境(二)
- 12.4 程序执行环境(三)
- 12.5 程序执行环境(四)
- 12.6 输入输出(一)
- 12.7 输入输出(二)
- 12.8 文件系统
- 12.9 设备
- 12.10 库(一)
- 12.11 库(二)
- 12.12 makefile文件(一)
- 12.13 makefile文件(二)
- 12.14 makefile文件(三)
- 12.15 编程实践
- 第十三讲 进程编程
- 13.01 提纲
- 13.02 进程基本概念
- 13.03 信号
- 13.04 进程管理(一)
- 13.05 进程管理(二)
- 13.06 进程管理(三)
- 13.07 进程间通信(一)
- 13.08 进程间通信(二)
- 13.09 进程间通信(三)
- 13.10 进程间通信(四)
- 13.11 进程池
- 13.12 编程实践
- 第十四讲 线程编程
- 14.1 提纲
- 14.2 线程基本概念
- 14.3 线程管理(一)
- 14.4 线程管理(二)
- 14.5 线程管理(三)
- 14.6 线程管理(四)
- 14.7 线程同步机制(一)
- 14.8 线程同步机制(二)
- 14.9 C++11线程库(一)
- 14.10 C++11线程库(二)
- 14.11 C++11线程库(三)
- 14.12 C++11线程库(四)
- 14.13 C++11线程库(五)
- 14.14 编程实践
- 第十五讲 网络编程
- 15.1 提纲
- 15.2 Internet网络协议
- 15.3 套接字(一)
- 15.4 套接字(二)
- 15.5 编程实践
- 课程文档
Taught by
Lin Qiao