CS 61A: Structure and Interpretation of Computer Programs
Spring 2025: Mon, Wed, Fri 2pm in 150 Wheeler
Announcements: Friday, January 24
Try to complete Lab 0 before coming to lab next week.
- If you don't finish beforehand, you can finish during your lab period before starting on Lab 1.
Homework 1 is due Thursday 1/30 @ 11:59pm.
- Depends on the videos/reading from Monday 1/27.
- It's best to complete Lab 1 first.
Announcements: Wednesday, January 22
- Welcome to CS 61A!
- Discussion starts this week.
- Lab starts next week.
- Ed is a great place to ask questions.
- Add or change lab & discussion sections with the new sections tool.
- The Fall 2024 website was archived.
Current Assignments
Calendar
Week | Date | Lecture | Textbook | Lab & Discussion Links | Homework & Project |
---|---|---|---|---|---|
1 | Wed 1/22 |
Welcome
|
|
Disc 00: Getting Started
Lab 00: Getting Started
Due
Wed 1/29
|
|
Fri 1/24 |
Functions
|
HW 01: Functions, Control
Due
Thu 1/30
|
|||
2 | Mon 1/27 |
Control
|
Lab 01: Functions
Due
Wed 1/29
|
||
Wed 1/29 |
Higher-Order Functions
|
Disc 01: Control, Environment Diagrams
|
Hog
Checkpt
Tue 2/4
Early Due
Wed 2/12
Due
Thu 2/13
|
||
Fri 1/31 |
Environments
|
HW 02: Higher-Order Functions
Due
Thu 2/6
|
|||
3 | Mon 2/3 |
Functional Abstraction
|
|
Lab 02: Higher-Order Functions, Lambda Expressions
Due
Wed 2/5
|
|
Wed 2/5 |
Function Examples
|
|
Disc 02: Environment Diagrams, Higher-Order Functions | ||
Fri 2/7 |
Function Demos (Optional) |
|
|||
4 | Mon 2/10 |
No Lecture: Midterm on 2/11 | |||
Tue 2/11 |
Midterm 1 (7pm-9pm) | ||||
Wed 2/12 |
Recursion
|
Disc 03: Recursion | |||
Fri 2/14 |
Tree Recursion
|
HW 03: Recursion, Tree Recursion
Due
Thu 2/20
|
|||
5 | Mon 2/17 |
No Lecture: Presidents' Day |
Lab 03: Recursion, Python Lists
Due
Wed 2/19
|
||
Wed 2/19 |
Sequences
|
Disc 04: Tree Recursion | |||
Fri 2/21 |
Containers
|
Cats
Checkpt
Thu 2/27
Early Due
Tue 3/4
Due
Wed 3/5
|
|||
6 | Mon 2/24 |
Data Abstraction
|
Lab 04: Tree Recursion, Data Abstraction
Due
Wed 2/26
|
||
Wed 2/26 |
Trees
|
Disc 05: Trees
|
|||
Fri 2/28 |
Mutability
|
HW 04: Sequences, Data Abstraction, Trees
Due
Thu 3/6
|
|||
7 | Mon 3/3 |
Iterators
|
Lab 05: Iterators, Mutability
Due
Wed 3/5
|
||
Wed 3/5 |
Generators
|
Disc 06: Generators | |||
Fri 3/7 |
Objects
|
HW 05: Generators
Due
Thu 3/13
Ants
Checkpt
1
Thu 3/13
Checkpt
2
Tue 3/18
Early Due
Thu 3/20
Due
Fri 3/21
|
|||
8 | Mon 3/10 |
Attributes
|
Lab 06: Object-Oriented Programming
Due
Wed 3/12
|
||
Wed 3/12 |
Inheritance
|
Disc 07: OOP | |||
Fri 3/14 |
Representation
|
||||
9 | Mon 3/17 |
Composition
|
|
Lab 07: Linked Lists, Inheritance
Due
Wed 3/19
|
|
Wed 3/19 |
Efficiency
|
Disc 08: Linked Lists | |||
Fri 3/21 |
Decomposition
|
|
HW 06: Object-Oriented Programming, Linked Lists
Due
Tue 4/1
|
||
10 | Mon 3/24 |
No Lecture: Spring Break | |||
Wed 3/26 |
No Lecture: Spring Break | ||||
Fri 3/28 |
No Lecture: Spring Break | ||||
11 | Mon 3/31 |
Data Examples
|
|
Lab 08: Mutable Trees
Due
Wed 4/2
|
|
Wed 4/2 |
No Lecture: Midterm 2 Time & Date TBD | ||||
Fri 4/4 |
Scheme
|
HW 07: Scheme
Due
Thu 4/10
|
|||
12 | Mon 4/7 |
Scheme Lists
|
Lab 09: Scheme
Due
Wed 4/9
|
||
Wed 4/9 |
Calculator
|
Disc 09: Scheme, Scheme Lists | |||
Fri 4/11 |
Interpreters
|
HW 08: Scheme Lists
Due
Thu 4/17
Scheme
Checkpt
1
Thu 4/17
Checkpt
2
Thu 4/24
Early Due
Tue 4/29
Due
Wed 4/30
|
|||
13 | Mon 4/14 |
Programs as Data
|
|
Lab 10: Interpreters
Due
Wed 4/16
|
|
Wed 4/16 |
Macros
|
|
Disc 10: Interpreters
|
||
Fri 4/18 |
SQL
|
|
HW 09: Programs as Data, Macros
Due
Thu 4/24
|
||
14 | Mon 4/21 |
Tables
|
|
Lab 11: Programs as Data, Macros
Due
Wed 4/23
|
|
Wed 4/23 |
Aggregation
|
|
Disc 11: Macros
|
||
Fri 4/25 |
Databases (Optional)
|
|
HW 10: SQL
Due
Thu 5/1
|
||
15 | Mon 4/28 |
Designing Functions
|
|
Lab 12: SQL
Due
Wed 4/30
|
|
Wed 4/30 |
TBD |
|
Disc 12: SQL
|
||
Fri 5/2 |
Conclusion |
|
HW 11: Finale
Due
Sun 5/11
|
||
16 | Mon 5/5 |
No Lecture: RRR Week | |||
Wed 5/7 |
No Lecture: RRR Week | ||||
Fri 5/9 |
No Lecture: RRR Week | ||||
17 | Tue 5/13 |
Final (11:30am-2:30pm) |