提示
本课程按典型的计算机科学学位路线展开,从第一个程序一直到机器学习。先学编程基础和离散数学,再逐步深入:面向对象设计、数据结构与算法、计算机体系结构、操作系统、数据库和网络。后面的部分包括算法设计、计算理论与编译原理、软件工程,以及人工智能与机器学习。
有两个习惯比任何一门语言都重要。第一,每周都要写代码、运行代码:看懂答案和自己写出来不是一回事。第二,分析代价。大学的答案要说明运行时间如何随输入规模增长,也就是 Big-O,还要说明算法为什么正确,而不只是在一个测试上能运行。
离散数学看起来和编程无关,其实不然。数学归纳法正是证明递归函数正确的方法,而图论就藏在地图、网络和编译器背后。
-
1
编程基础
- 1.1 What this course is, and how to use it
- 1.1 值、类型以及输入/输出。
- 1.2 选择与条件语句
- 1.3 迭代
- 1.4 函数
- 1.5 集合论
- 1.6 文件与错误
- 1.7 分解、测试与调试
加载中…
-
11
计算理论与编译器⟦number⟧
- 11.1 自动机与正则语言
- 11.2 上下文无关文法与解析理论
- 11.3 可计算性
- 11.4 词法分析
- 11.5 语法分析⟦number⟧
- 11.6 语义分析与代码生成
加载中…
-
12
软件工程
- 12.1 需求工程
- 12.2 体系结构与设计
- 12.3 人机交互与无障碍设计
- 12.4 版本控制与团队协作
- 12.5 测试与持续集成
- 12.6 安全与职业伦理
- 12.7 团队项目
加载中…