CS 61A: Structure and Interpretation of Computer Programs

Spring 2026: Mon, Wed, Fri 1-2 p.m. in Dwinelle 155

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

(Optional) Hog Contest
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)