经典书籍推荐

编程语言

  • C程序设计语言

计算机系统

  • 深入理解计算机系统

程序设计

  • 计算机程序的构造和解释

设计模式

  • 设计模式: 可复用面向对象软件的基础

算法与数据结构

  • 算法导论
  • 算法

计算机网络

  • 计算机网络: 自顶向下方法

计算机体系结构

  • 计算机体系结构: 量化研究方法
  • 计算机组成与设计: 硬件/软件接口

操作系统

  • 现代操作系统
  • 操作系统导论

离散数学

  • 离散数学及其应用
  • 具体数学: 计算机科学基础
  • 计算机科学中的数学

分布式系统

  • 数据密集型应用系统设计
  • 分布式系统: 概念与设计

数据库

  • 数据库系统概念
  • 数据库系统:设计、实现与管理

编译原理

  • 编译原理

各校计算机专业课程体系

MIT计算机科学与工程

必修推荐课程

  • 6.0001 Python计算机科学编程导论
  • 6.042 计算机科学中的数学
  • 6.004 计算架构
  • 6.006 算法概论
  • 6.009 编程基础
  • 6.031 软件构建要素
  • 6.033 计算机系统工程
  • 6.046 算法设计与分析

进阶推荐课程

  • 6.824 分布式系统
  • 6.828 操作系统工程
  • 6.829 计算机网络
  • 6.830 数据库系统

CMU 计算机科学专业

推荐学习课程

  • 15-112 编程和计算机科学基础
  • 15-121 数据结构简介
  • 15-122 命令式计算原理
  • 15-131 计算机科学家的伟大实用思想
  • 15-150 函数式编程原理
  • 15-151 计算机科学的数学基础
  • 15-210 并行和顺序数据结构和算法
  • 15-213 计算机系统概论
  • 15-214 软件构建原理:对象、设计和并发
  • 15-251 理论计算机科学的伟大思想
  • 15-312 编程语言基础
  • 15-313 软件工程基础
  • 15-319 云计算
  • 15-440 分布式系统
  • 15-441 计算机网络
  • 15-445 数据库系统
  • 15-451 算法设计与分析

Berkeley 电子工程与计算机科学

推荐学习课程

  • CS61A 计算机程序的结构和解释
  • CS61B 数据结构
  • CS61C 计算机组成原理
  • CS152/252 计算机体系结构与工程
  • CS160 用户界面设计和开发
  • CS161 计算机安全
  • CS162 操作系统和系统编程
  • CS164 编程语言和编译器
  • CS168 互联网简介:架构和协议
  • CS169A/L 软件工程
  • CS170 高效算法和棘手问题
  • CS172 可计算性和复杂性
  • CS186 数据库系统简介

推荐选修课

  • CS184. 计算机图形学基础

Stanford 计算机科学专业

推荐学习课程

  • CS 103 计算的数学基础
  • CS 106a 编程方法
  • CS 106B/106X 编程抽象
  • CS 107 计算机组成与系统
  • CS 108 面向对象的系统设计
  • CS 109 计算机科学家的概率论
  • CS 110 计算机系统原理
  • CS 140 操作系统
  • CS 143 编译器
  • CS 144 计算机网络
  • CS145 数据管理和数据系统
  • CS 161 算法的设计与分析
  • CS 166 数据结构
  • CS 244B 分布式系统
  • CS 245 数据密集型系统的原理

Harvard 计算机科学专业

推荐学习课程

  • CS50 计算机科学导论
  • CS51 计算中的抽象与设计
  • CS61 系统编程和计算机组成原理
  • CS107 计算科学的系统开发
  • CS120 算法、可计算性和复杂性导论
  • CS121 理论计算机科学导论
  • CS124 数据结构和算法
  • CS141 计算硬件
  • CS146 计算机体系结构
  • CS152 编程语言
  • CS153 编译器
  • CS161 操作系统
  • CS165 数据系统

推荐选修课程

  • CS109 数据科学概论

Princeton 计算机科学专业

推荐学习课程

  • COS126 计算机科学:跨学科方法
  • COS217 编程系统导论
  • COS226 算法和数据结构
  • COS240 计算推理
  • COS316 计算机系统设计原理
  • COS318 操作系统
  • COS320 编译技术
  • COS326 函数式编程
  • COS333 高级编程技术
  • COS375 计算机体系结构和组织
  • COS418 分布式系统
  • COS423 算法导论
  • COS425 数据库和信息管理系统
  • COS432 信息安全
  • COS461 计算机网络

推荐选修

  • COS426 计算机图形学
  • COS433 密码学
  • COS436 人机交互

基础必修课

常识入门课

  • 伯克利 CS10 计算之美与乐趣
  • 计算机科学速成课
  • MIT 计算机教育中缺失的一课
  • CMU 15-131 计算机科学家的伟大实用工具

计算机导论与编程入门

  • 普林斯顿 COS126 计算机科学:跨学科方法
  • 哈佛 CS50X This is CS50x
  • CMU 15-112 编程和计算机科学基础
  • 伯克利 CS61A 计算机程序的构造和解释
  • 斯坦福 CS106a 编程方法
  • MIT 6.0001 计算机科学导论与Python编程
  • MIT 6.009 编程基础 [×]

C++编程

  • 斯坦福 CS106B/CS106X 程序抽象

数据结构与算法基础

  • CMU 15-122 命令式计算原理
  • 斯坦福 CS166 数据结构
  • MIT 6.006 算法概论
  • 伯克利 CS61B 数据结构
  • 普林斯顿 COS226 算法和数据结构
  • CMU 15-121 数据结构简介

进阶必修课

算法导论

  • 普林斯顿 COS423 算法导论
  • 哈佛 CS124 数据结构和算法[×]
  • CMU 15-210 并行和顺序数据结构和算法
  • CMU 15-451 算法设计与分析
  • 斯坦福 CS 161 算法的设计与分析
  • 伯克利 CS170 高效算法和棘手问题
  • MIT 6.046J 算法设计与分析

计算机系统

  • 普林斯顿 COS316 计算机系统设计原理
  • 斯坦福 CS 107 计算机组成与系统
  • 斯坦福 CS 110 计算机系统原理
  • CMU 15-213 深入理解计算机系统
  • MIT 6.004 计算架构
  • MIT 6.033 计算机系统工程
  • 哈佛 CS61 系统编程和计算机组成原理
  • 伯克利 CS61C 计算机组成原理

操作系统

  • 普林斯顿 COS318 操作系统
  • 哈佛 CS161 操作系统
  • 伯克利 CS162 操作系统和系统编程
  • MIT 6.828 操作系统工程
  • 斯坦福 CS 140 操作系统

编程语言

  • 普林斯顿 COS217 编程系统导论
  • 哈佛 CS152 编程语言
  • CMU 15-312 编程语言基础
  • 哈佛 CS51 计算中的抽象和设计
  • 普林斯顿 COS326 函数式编程
  • CMU 15-150 函数式编程原理
  • 斯坦福 CS43 函数式编程

软件工程

  • 普林斯顿 COS333 高级编程技术
  • 哈佛 CS107 计算科学的系统开发
  • 斯坦福 CS 108 面向对象的系统设计
  • 伯克利 CS160 用户界面设计和开发
  • 伯克利 CS169 软件工程
  • MIT 6.031 软件构建
  • CMU 15-214 软件构建原理:对象、设计和并发
  • CMU 15-313 软件工程基础

专项必修课

计算机网络

  • 普林斯顿 COS461 计算机网络
  • 斯坦福 CS 144 计算机网络
  • CMU 15-441 计算机网络
  • 伯克利 CS168 互联网简介:架构和协议
  • MIT 6.829 计算机网络

编译器

  • 斯坦福 CS 143 编译器
  • 哈佛 CS153 编译器
  • 伯克利 CS164 编程语言和编译器
  • 普林斯顿 CS320 编译技术

数据库

  • 普林斯顿 COS425 数据库和信息管理系统
  • 斯坦福 CS145 数据管理和数据系统
  • CMU 15-445 数据库系统
  • 哈佛 CS165 数据系统
  • 伯克利 CS186 数据库系统概论
  • MIT 6.830 数据库系统

可计算性

  • 普林斯顿 COS240 计算推理
  • 哈佛 CS120 算法、可计算性和复杂性导论
  • 哈佛 CS121 理论计算机科学导论
  • CMU 15-251 理论计算机科学的伟大思想
  • 伯克利 CS172 可计算性和复杂性

计算机安全

  • 普林斯顿 COS432 信息安全
  • 伯克利 CS161 计算机安全

深入进阶必修课

高级算法

  • MIT 6.851 高级数据结构
  • MIT 6.854 高级算法
  • MIT 6.856J 随机算法

计算机体系结构

  • 普林斯顿 COS375 计算机体系结构
  • 哈佛 CS141 计算硬件
  • 哈佛 CS146 计算机体系结构
  • 伯克利 CS152/252 计算机体系结构与工程
  • 斯坦福 EE180 计算机体系结构

云计算

  • CMU 15-319 云计算

分布式系统

  • 普林斯顿 COS418 分布式系统
  • CMU 15-440 分布式系统
  • 斯坦福 CS 244B 分布式系统
  • 斯坦福 CS 245 数据密集型系统的原理
  • MIT 6.824 分布式系统

推荐选修课

WEB开发

  • 斯坦福 CS142 Web应用程序

密码学

  • 普林斯顿 COS433 密码学
  • 伯克利 CS171 密码学

计算机图形学

  • 普林斯顿 COS426 计算机图形
  • 斯坦福 CS 148 计算机图形和成像简介
  • 伯克利 CS184 计算机图形学基础
  • 斯坦福 CS 248 计算机图形学导论

并行计算

  • 斯坦福 CS 149 并行计算
  • CMU 15-418 并行计算机体系结构和编程

游戏开发

  • 斯坦福 CS 146 游戏设计与开发

人机交互

  • 普林斯顿 COS436 人机交互
  • 斯坦福 CS147 人机交互导论

计算逻辑

  • 斯坦福 CS 157 计算逻辑

数据科学

  • 哈佛 CS109 数据科学概论