课程进度
周次 |
日期 |
课程资料 |
上机实践 |
第 1 周 |
09.09 |
课件:第零讲:课程介绍
第一讲:计算机基础知识
课外阅读:
IEEE 浮点运算标准
|
1. 熟悉 C++ IDE 的使用
2. 熟悉上机作业递交方法
3. 练习: Python 简单编程
(作业递交链接, due 09.13)
|
第 2 周 |
09.14 (09.16) |
课件:第二讲:C++ 编程基础
参考资料:
C++ 中的关键字,
C++ 运算优先级
代码:ex02.zip
|
1. 编程作业选讲
2. 完成第二讲的作业(练习 2.1, 2.2, 2.3)
(作业递交链接, due 09.20)
|
第 3 周 |
09.23 |
课件:
第三讲:选择与循环
应用举例:
定积分数值计算
(PPT)
代码:ex03.zip
|
1. 编程作业选讲
2. 完成第三讲的作业
(作业递交链接, due 09.29)
|
第 4 周 |
09.30 |
课件:
第四讲:函数(一)
代码:ex04.zip
|
1. 编程作业选讲
2. 完成第四讲的作业(一)4.1--4.7
(作业递交链接, due 10.13,参考模板)
|
第 5 周 |
10.12 (10.07) |
课件:
第四讲:函数(二)
应用举例:
计算定积分的蒙特卡洛方法
视频欣赏:
自然界的斐波那契数列
|
1. 编程作业选讲
2. 完成第四讲的作业(一)4.8--4.11
(作业递交链接, due 10.13,参考模板)
|
第 6 周 |
10.14 |
课件:
第五讲:数组(一)数值数组
代码:ex05.zip
|
1. 编程作业选讲
2. 完成第五讲的作业
(作业递交链接, due 10.18,参考模板)
|
第 7 周 |
10.21 |
课件:
第五讲:数组(二)字符数组(字符串)
第六讲:指针(一)
课外阅读:
内存分配 -- 栈和堆
Pointers and Memory
代码:ex06.zip
|
1. 上机小测验
2. 编程作业选讲
3. 完成第六讲的作业 6.1, 6.4, 6.5, 6.6
(作业递交链接, due 11.01,参考模板)
|
第 8 周 |
10.28 |
课件:
第六讲:指针(二)
应用举例:
矩阵乘积快速算法 -- Strassen 算法
Gauss 消去法
课外阅读:
Fast and stable matrix multiplication
|
1. 编程作业选讲
2. 完成第六讲的作业 6.2, 6.3, 6.7, 6.8, 6.9 (可选)
(作业递交链接, due 11.01,参考模板)
|
第 9 周 |
11.04 |
课件:
第七讲:输入输出与 (C 语言) 文件操作
代码:ex07.zip
|
1. 编程作业选讲
2. 完成第七讲的作业
(作业递交链接, due 11.08,参考模板)
|
第 10 周 |
11.11 |
课件:
第八讲:排序算法
课外阅读:
十大经典排序算法,
希尔排序动画演示
代码:ex08.zip
|
1. 编程作业选讲
2. 完成第八讲的作业
(作业递交链接, due 11.15,参考模板)
|
第 11 周 |
11.18 |
课件:
第九讲:类与对象 (I) 面向对象基础
代码:ex09.zip
|
1. 编程作业选讲
2. 完成第九讲的作业
(作业递交链接, due 11.22,参考模板)
|
第 12 周 |
11.25 |
课件:
第十讲:类与对象 (II) 面向对象进阶
代码:ex10.zip
|
1. 编程作业选讲
2. 完成第十讲的作业
|
第 13 周 |
12.02 |
课件:
第十一讲:类与对象 (III) 面向对象提高
参考阅读:
C++ array 类,
C++ vector 类,
C++ string 类
视频:
C++ String 用法总结 (可以在学完模板后观看)
代码:ex11.zip
|
1. 编程作业选讲
2. 完成第十一讲的作业
|
|
|
|
C++ 学习资源
C++ 编译器与开发环境
- C++编译器:
-
GCC/G++
--- GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, and so on
-
Clang
--- provides a language front-end and tooling infrastructure for C, C++, Objective C/C++, OpenCL, CUDA, and so on
-
Microsoft Visual C++/MSVC
--- 集成在微软的开发工具 Visual Studio 中
- IDE:
-
Code::Blocks
-- 开源的全功能跨平台集成开发环境, 支持 C, C++, Fortran
-
Visual Studio Code/VSCode
-- 微软出品的轻量级跨平台编辑器, 支持 C, C++, Python, Fortran
-
Qt Creator
-- 跨平台开发环境, 支持 C++ 和 Python
(Qt 是一个丰富的 C++ 代码库, 为应用程序开发提供一站式解决方案, 包括开发图形用户界面)
C++ 与数值计算
- Eigen
-- A high-level C++ library of template headers for numerical linear algebra
- xtensor
-- a C++ library meant for numerical analysis with multi-dimensional array expressions
- mtensor
-- tensor 计算库, 支持 cuda 的延迟计算
- FFTW
-- 基于 C 语言的快速 Fourier 变换实现
- GSL
-- GNU 科学计算库
- GMP
-- The GNU Multiple Precision Arithmetic Library
|
|
参考资料
- C++ 程序设计 (第三版), Y.D. Liang著, 刘晓光等译, 机械工业出版社, 2015.
- C++ Primer 中文版 (第5版), S.B. Lippman等编著, 王刚等译, 电子工业出版社, 2013.
- C++ Primer Plus 中文版 (第6版), S. Prata著, 张海龙等译, 人民邮电出版社, 2012.
- 深入理解C++11:C++11新特性解析与应用,
C++标准委员会成员和IBM XL编译器中国开发团队共同撰写, 机械出版社, 2013.
-
C++程序设计语言(第1-3部分), B. Stroustrup著, 王刚等译, 机械工业出版社, 2016.
- Effective C++:改善程序与设计的55个具体做法 (第3版), S. Meyers 著, 侯捷译, 电子工业出版社, 2011.
-
数据结构与算法分析--C++描述 (第4版, 2014), Weiss著, 冯舜玺译, 电子工业出版社, 2016.
- 算法导论 (第3版), T.H. Cormen等著, 殷建平等译, 机械工业出版社, 2013.
- 算法设计手册 (第2版) (影印版), S.S. Skiena著, 清华大学出版社, 2009.
-
计算机体系结构基础, 胡伟武等, 在线更新.
|
|