CS 61A:计算机程序的构造和解释
CS 61A: Structure and Interpretation of Computer Programs

Fall 2020
Instructors: Hany Farid, John DeNero

🎉 欢迎来到 CS 61A-CN !🎉

本网站是 CS 61A 的中文翻译版。

如果您有任何问题或建议,欢迎提交 Issue 或者 PR


可以按照以下顺序进行学习:

  • 观看课程视频 📺 + 阅读课本 📖
  • 完成实验 (Lab) 、作业 (Homework) 、项目 (Project)

祝您学习愉快!📚


相关链接:

周数
Week
日期
Date
讲座
Lecture
教材
Textbook
Orientation Links 实验和讨论
Lab and Discussion Links
作业和项目
Homework & Project
1 Wed
8/26
计算机科学
Computer Science

实验00: 入门
Lab 00: Getting Started
Tue 9/1
Fri
8/28
函数
Functions

作业01: 变量和函数,控制
HW 01: Variables & Functions, Control
Thu 9/3
2 Mon
8/31
控制
Control

实验01: 变量和函数,控制
Lab 01: Variables & Functions, Control
Tue 9/1
Wed
9/2
高阶函数
Higher-Order Functions

讨论01: 环境图,控制
Disc 01: Environment Diagrams, Control
项目: Hog
Hog
Fri 9/11
Fri
9/4
环境
Environments

实验02: 高阶函数,Lambda表达式
Lab 02: Higher-Order Functions, Lambda Expressions
Tue 9/8
3 Mon
9/7
No Lecture: Labor Day
Wed
9/9
设计
Design

讨论02: 高阶函数,自引用
Disc 02: Higher-Order Functions, Self Reference
Fri
9/11
函数示例
Function Examples

实验03: 期中复习(可选)
Lab 03: Midterm Review (Optional)
Wed 9/14
4 Mon
9/14
Midterm 1
Wed
9/16
递归
Recursion

讨论03: 递归
Disc 03: Recursion
项目: Hog Contest
Hog Contest
Mon 9/21
Fri
9/18
树递归
Tree Recursion

作业02: 递归
HW 02: Recursion
Thu 9/24
5 Mon
9/21
容器
Containers
实验04: 递归,树递归,Python列表
Lab 04: Recursion, Tree Recursion, Python Lists
Tue 9/22
Wed
9/23
数据抽象
Data Abstraction

讨论04: 树递归,Python列表,数据抽象
Disc 04: Tree Recursion, Python Lists, Data Abstraction
项目: Cats
Cats
Fri 10/2
Fri
9/25

Trees

6 Mon
9/28
二进制数(可选)
Binary Numbers (optional)

实验05: 数据抽象,树
Lab 05: Data Abstraction, Trees
Tue 9/29
Wed
9/30
电路(可选)
Circuits (optional)

讨论05: 树,二进制数
Disc 05: Trees, Binary Numbers
Fri
10/2
可变值
Mutable Values

作业03: 树,数据抽象
HW 03: Trees, Data Abstraction
Thu 10/8
7 Mon
10/5
可变函数
Mutable Functions

实验06: 非局部,可变性
Lab 06: Nonlocal, Mutability
Tue 10/6
Wed
10/7
迭代器
Iterators

讨论06: 非局部,可变性,迭代器
Disc 06: Nonlocal, Mutability, Iterators
Fri
10/9
对象
Objects

作业04: 非局部,迭代器
HW 04: Nonlocal, Iterators
Thu 10/15
8 Mon
10/12
继承
Inheritance

实验07: 面向对象编程,迭代器
Lab 07: Object-Oriented Programming, Iterators
Tue 10/13
项目: Ants
Ants
Fri 10/23
Wed
10/14
表示
Representation

讨论07: 面向对象编程
Disc 07: Object-Oriented Programming
Fri
10/16
组合
Composition

作业05: 面向对象编程,链表,树
HW 05: Object-Oriented Programming, Linked Lists, Trees
Mon 10/26
9 Mon
10/19
效率(可选)
Efficiency (optional)

实验08: 链表,可变树
Lab 08: Linked Lists, Mutable Trees
Tue 10/20
Wed
10/21
分解
Decomposition

讨论08: 链表,树,表示
Disc 08: Linked Lists, Trees, Representation
Fri
10/23
数据示例
Data Examples

Sat
10/24
实验09: 期中复习
Lab 09: Midterm Review
Tue 10/27
10 Mon
10/26
用户(可选)
Users (optional)

Wed
10/28
Midterm 2
Fri
10/30
人工智能与数据伦理(可选)
Ethical AI & Data (optional)

11 Mon
11/2
Scheme 语言
Scheme

实验10: Scheme
Lab 10: Scheme
Wed 11/4
作业06: Scheme
HW 06: Scheme
Thu 11/5
Wed
11/4
异常
Exceptions

讨论10: Scheme,Scheme 列表
Disc 10: Scheme, Scheme Lists
Fri
11/6
计算器
Calculator

作业07: Scheme 列表
HW 07: Scheme Lists
Thu 11/12
12 Mon
11/9
解释器
Interpreters

实验11: 解释器
Lab 11: Interpreters
Tue 11/10
项目: Scheme
Scheme
Tue 11/24

项目: Scheme 困难版
Scheme Challenge Version
Tue 11/24
Wed
11/11
No Lecture: Veterans Day 讨论11: 解释器
Disc 11: Interpreters
Fri
11/13
声明式编程
Declarative Programming

作业08: Scheme
HW 08: Scheme
Thu 11/19
13 Mon
11/16

Tables

实验12: SQL
Lab 12: SQL
Tue 11/17
项目: Scheme Contest
Scheme Contest
Mon 11/30
Wed
11/18
聚合
Aggregation

讨论12: SQL
Disc 12: SQL
Fri
11/20
数据库(可选)
Databases (optional)

作业09: SQL
HW 09: SQL
Thu 12/3
14 Mon
11/23
尾调用(可选)
Tail Calls (optional)

实验13: 更多 SQL
Lab 13: More SQL
Tue 11/24
Wed
11/25
No Lecture: Thanksgiving
Fri
11/27
No Lecture: Thanksgiving
15 Mon
11/30
宏(可选)
Macros (optional)

实验14: 最终复习
Lab 14: Final Review
Tue 12/1
Wed
12/2
最终示例
Final Examples

讨论14: 最终复习
Disc 14: Final Review
Fri
12/4
总结
Conclusion

作业10: 完结篇
HW 10: Finale
Sun 12/13

项目: Scheme Gallery
Scheme Gallery
Sun 12/13
16 Thu
12/17
Final (3-6 PM)