CS 61A: Structure and Interpretation of Computer Programs
Spring 2026: Mon, Wed, Fri 1-2 p.m. in Dwinelle 155
Announcements: Wednesday, January 21
- Discussions start today! Look for your lab and discussion assignments at sections.cs61a.org.
- Lab 0 has been released! Feel free to get started on it even before lab.
Announcements: Tuesday, January 20
Welcome to CS 61A!
Current Assignments
Calendar
| Week | Date | Lecture | Textbook | Lab & Discussion Links | Homework & Project |
|---|---|---|---|---|---|
| 1 | Wed 1/21 |
1. Welcome
|
|
Disc 00: Getting Started
Lab 00: Getting Started
Due
Wed 1/28
|
|
| Fri 1/23 |
2. Functions
|
HW 01: Functions, Control
Due
Thu 1/29
|
|||
| 2 | Mon 1/26 |
3. Control
|
Lab 01: Functions
Due
Wed 1/28
|
||
| Wed 1/28 |
4. Higher-Order Functions
|
Disc 01: Control, Environment Diagrams
|
Hog
Checkpt
Tue 2/3
Early Due
Wed 2/11
Due
Thu 2/12
|
||
| Fri 1/30 |
5. Environments
|
HW 02: Higher-Order Functions
Due
Thu 2/5
|
|||
| 3 | Mon 2/2 |
6. Functional Abstraction
|
|
Lab 02: Higher-Order Functions, Lambda Expressions
Due
Wed 2/4
|
|
| Wed 2/4 |
7. Function Examples
|
|
Disc 02: Environment Diagrams, Higher-Order Functions | ||
| Fri 2/6 |
8. Quest Review |
|
|||
| 4 | Mon 2/9 |
No Lecture: Quest (Mon - Wed) | |||
| Wed 2/11 |
9. Recursion
|
Disc 03: Recursion | |||
| Fri 2/13 |
10. Tree Recursion
|
HW 03: Recursion, Tree Recursion
Due
Thu 2/19
|
|||
| 5 | Mon 2/16 |
No Lecture: Presidents' Day |
Lab 03: Recursion, Python Lists
Due
Wed 2/18
|
||
| Wed 2/18 |
11. Sequences
|
Disc 04: Tree Recursion | |||
| Fri 2/20 |
12. Containers
|
Cats
Checkpt
Thu 2/26
Early Due
Wed 3/4
Due
Thu 3/5
|
|||
| 6 | Mon 2/23 |
13. Data Abstraction
|
Lab 04: Tree Recursion, Data Abstraction
Due
Wed 2/25
|
||
| Wed 2/25 |
14. Trees
|
Disc 05: Trees | |||
| Fri 2/27 |
15. Mutability
|
HW 04: Sequences, Data Abstraction, Trees
Due
Thu 3/5
|
|||
| 7 | Mon 3/2 |
16. Iterators
|
Lab 05: Iterators, Mutability
Due
Wed 3/4
|
||
| Wed 3/4 |
17. Generators
|
Disc 06: Iterators, Generators | |||
| Fri 3/6 |
18. Objects
|
HW 05: Iterators, Generators
Due
Thu 3/12
Ants
Checkpt
1
Thu 3/12
Checkpt
2
Tue 3/17
Early Due
Thu 3/19
Due
Fri 3/20
|
|||
| 8 | Mon 3/9 |
19. Attributes
|
Lab 06: Object-Oriented Programming
Due
Wed 3/11
|
||
| Wed 3/11 |
20. Inheritance
|
Disc 07: OOP, Inheritance | |||
| Fri 3/13 |
21. Representation
|
HW 06: Object-Oriented Programming, Linked Lists, Mutable Trees
Due
Thu 3/19
|
|||
| 9 | Mon 3/16 |
22. Composition
|
|
Lab 07: Linked Lists, Inheritance
Due
Wed 3/18
|
|
| Wed 3/18 |
23. Efficiency
|
Disc 08: Linked Lists | |||
| Fri 3/20 |
24. Decomposition
|
|
|||
| 10 | Mon 3/23 |
No Lecture: Spring Break | |||
| Wed 3/25 |
No Lecture: Spring Break | ||||
| Fri 3/27 |
No Lecture: Spring Break | ||||
| 11 | Mon 3/30 |
25. Midterm Review
|
|
||
| Wed 4/1 |
Midterm (7pm-9pm) | ||||
| Fri 4/3 |
26. Scheme
|
HW 07: Scheme
Due
Thu 4/9
|
|||
| 12 | Mon 4/6 |
27. Scheme Lists
|
Lab 08: Scheme
Due
Wed 4/8
Lab 09: Interpreters
Due
Wed 4/8
|
||
| Wed 4/8 |
28. Calculator
|
Disc 09: Scheme, Scheme Lists | |||
| Fri 4/10 |
29. Interpreters
|
HW 08: Scheme Lists
Due
Thu 4/16
Scheme
Checkpt
1
Thu 4/16
Checkpt
2
Thu 4/23
Early Due
Tue 4/28
Due
Wed 4/29
(Optional) Scheme Contest
Due
Wed 4/29
Scheme Gallery
Due
Wed 4/29
|
|||
| 13 | Mon 4/13 |
30. Programs as Data
|
|
Lab 10: Programs as Data, Macros
Due
Wed 4/15
|
|
| Wed 4/15 |
31. Macros
|
|
Disc 10: Interpreters | ||
| Fri 4/17 |
32. SQL
|
|
HW 09: Programs as Data, Macros
Due
Thu 4/23
|
||
| 14 | Mon 4/20 |
33. Tables
|
|
Lab 11: SQL
Due
Wed 4/22
|
|
| Wed 4/22 |
34. Aggregation
|
|
Disc 11: Macros
|
||
| Fri 4/24 |
35. Databases
|
|
HW 10: SQL
Due
Thu 4/30
|
||
| 15 | Mon 4/27 |
36. Designing Functions
|
|
||
| Wed 4/29 |
37. Language Models (Optional) |
|
Disc 12: SQL
|
||
| Fri 5/1 |
38. Conclusion |
|
HW 11: Finale
Due
Sun 5/10
|
||
| 16 | Mon 5/4 |
No Lecture: RRR Week | |||
| Wed 5/6 |
No Lecture: RRR Week | ||||
| Fri 5/8 |
No Lecture: RRR Week | ||||
| 17 | Tue 5/12 |
Final (8am-11am) |