CSE/CS101:C++ 编程抽象思维 / Spring 2023
公告
课程介绍 - Course Description
《CSE/CS101:C++ 编程抽象思维》使用 C++ 编程语言介绍高级编程技术。本课程从零开始编写讲义并精心组织相关知识点的引入,从最基础的编程概念逐步深入,重点讲解了递归思维、算法分析、数据抽象,以及一些经典的数据结构和算法实现。
本课程参考了斯坦福大学 CS106B: Programming Abstractions 课程的教学目标和大纲(没看错!价值超 $4,200.00 的课程)。编程不是记忆一些语法规则,完成一些简单的过程代码,而是如何利用计算机解决难题。本课程是关于从“如何编写程序”过渡到“如何解决计算机问题”,从“如何写对程序”过渡到“如何写好程序”。
完成本课程后,我们希望您能实现以下学习目标:
- 使用编程来解决现实世界中的复杂问题
- 认识并理解计算机科学中通用的抽象思维
- 利用算法推理和递归技能,可以将复杂的问题分解为较小的子问题
- 在使用或设计数据结构和算法时,能够评估设计上的权衡
除此之外,通过本课程的训练,您将获得足够强大的调试能力,并体会到测试驱动开发(TDD)的优势。
本期亮点
- 维护并升级课本配套 C++ 库,尝试迁移到 C++17 标准。
- 回归课本,尽最大努力带领大家完成课本上的习题。
- 增加 CMake 的讲解,课程结束后有能力开发自己的库、或引入第三方库学习研究。
- 适当增加 CS106L 相关的内容。
- 若精力允许,也会尝试使用课本配套库开发相应的作业。
面向对象
本课程主要面向传统工科朋友,苦于编程学习迟迟不得要领;或是想掌握斯坦福 CS106B 的编程知识,却总是无法独立完成的朋友。
本课程不适合已经学完一门数据结构或算法课程的朋友;不适合单纯想练习 C++ 语法技巧的朋友,本课程用到的语法技巧仅仅算是 C++ 入门。
课程安排
课程采用斯坦福风格,主要涉及以下几个主题:
- C++ 基础知识
- 抽象数据结构
- 递归
- 类和面向对象编程
- 内存管理
- 经典抽象数据类型
- 经典高级算法
建议学习时间的投入不低于 150 个小时。
授课方式
暂定使用 QQ 群课堂功能,支持回放。
进阶课程
- CSE/CS102:计算机组成与系统,完美复现斯坦福 CS107
往期课程 - Previous Offerings
讲师 - Instructors
恐龙老师