计算机科学基础
从第一个算法到运行它的系统:面向初学者,学习程序设计、数学、数据结构、体系结构、操作系统、网络与数据库。
课程结构
每个模块包含概念与示例、学习时间安排、可运行的 Python 实验、带解答的练习和自测。部分交互演示展示执行过程。进度保存在当前浏览器中,同一浏览器与站点中的两种语言共享进度。
开始之前
无需编程经验或大学数学基础。必要的记法会随内容介绍。需要浏览器、文本编辑器与 Python 3.11 或更新版本;模块 01 不需要第三方包。
一个项目,多种视角
一个小型图书目录贯穿课程:表示图书、搜索与排序、选择数据结构、用 SQLite 保存数据,并通过本地服务器提供访问。不适合目录项目的主题会使用其他例子。
课程模块
全部 14 个模块已提供中英文版本,包含持久目录综合项目。每模块有五小时核心计划,包含拓展和额外练习可安排 5–7 小时。可依次学习或按各课先修链接选择。
模块 01
什么是计算?
问题、算法、抽象、输入输出和计算机的层次。跟踪搜索过程,验证约定,并统计操作次数。
已提供 · 5 小时 · 3 个实验 · 8 道练习
模块 02
信息表示
二进制、十六进制、整数、浮点数和文本编码。编写转换器,探索舍入误差。
已提供 · 5 小时 · 2 个实验 · 8 道练习
模块 03
程序设计基础
变量、表达式、控制流、函数和调试。构建命令行图书目录。
已提供 · 5 小时 · 2 个实验 · 8 道练习
模块 04
数学基础
逻辑、集合、关系、函数、证明、归纳法和概率。练习真值表与简单证明。
已提供 · 5 小时 · 2 个实验 · 8 道练习
模块 05
算法与效率
正确性、不变式、时间与空间复杂度、大 O 表示法、搜索与排序。
已提供 · 5 小时 · 2 个实验 · 8 道练习
模块 06
核心数据结构
数组、链表、栈、队列和哈希表。实现数据结构,比较各自的取舍。
已提供 · 5 小时 · 2 个实验 · 8 道练习
模块 07
递归、树与图
调用栈、树的遍历、广度优先搜索、深度优先搜索和最短路径。构建路径查询程序。
已提供 · 5 小时 · 2 个实验 · 8 道练习
模块 08
算法设计
分治、贪心、回溯和动态规划。解决调度问题。
已提供 · 5 小时 · 2 个实验 · 8 道练习
模块 09
计算机体系结构
逻辑门、CPU 指令、内存、缓存和执行过程。跟踪模拟机器的运行。
已提供 · 5 小时 · 2 个实验 · 8 道练习
模块 10
操作系统
进程、线程、调度、虚拟内存、文件和并发。探索竞态条件。
已提供 · 5 小时 · 2 个实验 · 8 道练习
模块 11
网络与 Web
网络分层、数据包、地址、DNS、TCP 和 HTTP。构建本地客户端与服务器。
已提供 · 5 小时 · 2 个实验 · 8 道练习
模块 12
数据库
关系建模、SQL、键、索引和事务。使用 SQLite 保存图书目录。
已提供 · 5 小时 · 2 个实验 · 8 道练习
模块 13
语言与计算的边界
解析、解释器、自动机、可计算性、不可判定性和 P 与 NP。构建表达式解释器。
已提供 · 5 小时 · 2 个实验 · 8 道练习
模块 14
软件、安全与综合实践
测试、模块化、信任边界、输入验证和身份认证。完成图书目录综合项目。
已提供 · 5 小时 · 2 个实验 · 8 道练习