CS 61A: Structure and Interpretation of Computer Programs
Fall 2025: Mon, Wed, Fri 1-2 p.m. in Wheeler 150
Announcements: Monday, September 15
The Hog Project is due Thursday 9/18 @ 11:59pm.
- You can get a bonus point for completing the project by Wednesday 9/17.
- Entries to the completely optional Hog Strategy Contest are due Thursday 9/25.
Midterm 1 is Tuesday 9/16 7pm-9pm in various locations around campus.
- You will be assigned a seat on Monday 9/15.
- No lab on Monday 9/15 or Tuesday 9/16.
- Experiment: there is an Ed thread for lecture questions today that we'll be monitoring during lecture.
Announcements: Friday, September 12
The Hog Project is due Thursday 9/18 @ 11:59pm.
- You can get a bonus point for completing the project by Wednesday 9/17.
- Entries to the completely optional Hog Strategy Contest are due Thursday 9/25.
Midterm 1 is Tuesday 9/16 7pm-9pm in various locations around campus.
- To request the alternate time or special seating, fill out the alteration request form by Friday 9/12 @ 11:59pm.
- You will be assigned a seat on Monday 9/15.
- No lab on Monday 9/15 or Tuesday 9/16.
Announcements: Wednesday, September 10
- Homework 2 (short) is due Thursday 9/11 @ 11:59pm.
The Hog Project is due Thursday 9/18 @ 11:59pm.
- Phase 1 of the project (called the checkpoint) is due Thursday 9/11.
- You can get a bonus point for completing the project by Wednesday 9/17.
- You can work with a partner and submit once for both of you.
Midterm 1 is Tuesday 9/16 7pm-9pm in various locations around campus.
- You will be assigned a seat on Monday 9/15.
- To request the alternate time or special seating, fill out the alteration request form by Friday 9/12 @ 11:59pm.
- Once you finish Homework 2 and Hog Phase 1, try a past exam.
- Scratch paper and the Midterm 1 study guide will be provided.
- You can join a lecture-style discussion section Thursdays 5pm in Soda 306 if you don't want to discuss in a group.
- You can join an exam-prep tutoring session this week.
- No lab on Monday 9/15 or Tuesday 9/16.
Announcements: Monday, September 8
- Homework 1 is due Monday 9/8 @ 11:59pm.
- Homework 2 (short) is due Thursday 9/11 @ 11:59pm.
The Hog Project is due Thursday 9/18 @ 11:59pm.
- Phase 1 of the project (called the checkpoint) is due Thursday 9/11.
- You can get a bonus point for completing the project by Wednesday 9/17.
- You can work with a partner and submit once for both of you.
Midterm 1 is Tuesday 9/16 7pm-9pm in various locations around campus.
- You will be assigned a seat on Monday 9/15.
- To request the alternate time or special seating, fill out the alteration request form by Friday 9/12 @ 11:59pm.
- Once you finish Homework 2 and Hog Phase 1, try a past exam.
- Scratch paper and the Midterm 1 study guide will be provided.
- You can join a lecture-style discussion section Thursdays 5pm in Soda 306 if you don't want to discuss in a group.
- You can join an exam-prep tutoring session this week.
- No lab on Monday 9/15 or Tuesday 9/16.
Announcements: Friday, September 5
- There is no longer a Zoom option for lecture, but there will be recordings of lecture all semester.
- Homework 1 is due Monday 9/8 @ 11:59pm.
- Homework 2 (short) is due Thursday 9/11 @ 11:59pm.
The Hog Project is due Thursday 9/18 @ 11:59pm.
- Phase 1 of the project (called the checkpoint) is due Thursday 9/11.
- You can get a bonus point for completing the project by Wednesday 9/17.
- You can work with a partner and submit once for both of you.
Midterm 1 is Tuesday 9/16 7pm-9pm in various locations around campus.
- Once you finish Homework 2 and Hog Phase 1, try a past exam.
- We will go through most questions from the Fall 2022 Midterm 1 in various lectures next week.
- We will go through questions 1, 3, & 4 from the Spring 2025 Midterm 1 in lecture on Monday 9/15.
- Details about logistics (where to go, what to bring, how to prepare) will be shared on Ed.
Announcements: Wednesday, September 3
- Zoom link for Lectures 1, 2, and 3: berkeley.zoom.us/j/99731895700
Lab 0 and Lab 1 are due Wednesday 9/3 @ 11:59pm.
- Definitely work through the optional questions this week (after you submit).
- Bring your Student ID to discussion; we will take attendance by scanning it.
Homework 1 is due Monday 9/8 @ 11:59pm.
- Strongly recommended: Finish by Thursday 9/4.
- It's not ok to share your homework code with others.
- There's an experimental AI tutor called "61a-bot" that gives help on your code.
Come to Staff Office Hours cs61a.org/office-hours to ask questions about homework & lab.
- Wednesday mornings 10-12am we will hold Zoom & In-Person office hours.
Announcements: Friday, August 29
- Zoom link for Lectures 1, 2, and 3: berkeley.zoom.us/j/99731895700
- Monday labs are rescheduled to Friday 8/29 for this week only (due to the holiday).
First work on Lab 0 (setting up your computer) and then on Lab 1.
- Try Lab 0 before you come to lab if you have time.
Lab 0 and Lab 1 are due Wednesday 9/3 @ 11:59pm.
- You're meant to complete lab assignments during lab.
- It's ok to share your lab code with others if that's what helps you learn.
- There is no attendance requirment for Lab 1, since some students are still working on their schedules.
Homework 1 is due Monday 9/8 @ 11:59pm.
- Strongly recommended: Finish by Thursday 9/4.
- It's not ok to share your homework code with others.
- There's an experimental AI tutor called "61a-bot" that gives help on your code.
- See Ed for: changing sections, lecture questions, external announcements, etc.
Announcements: Wednesday, August 27
- Lecture 1 will happen again at 8pm on Wednesday 8/27 in 155 Dwinelle in case you missed it or couldn't see well.
- Zoom link for Lectures 1, 2, and 3: berkeley.zoom.us/j/99731895700
Discussion starts this week (Wednesday, Thursday, Friday).
- We won't start taking attendance until next week.
- Lab starts Friday. Try Lab 0 before you arrive (but it's ok if you don't finish it).
- Ed is a great place to ask questions.
- Instructions for how to add or change lab & discussion sections should appear on Ed soon (perhaps Wednesday night).
- The Spring 2025 and Summer 61A websites have been archived (@berkeley.edu login required).
Announcements: Tuesday, August 26
- Welcome to CS 61A!
- The Spring 2025 and Summer 61A websites have been archived (@berkeley.edu login required).
Current Assignments
Calendar
Week | Date | Lecture | Textbook | Lab & Discussion Links | Homework & Project |
---|---|---|---|---|---|
1 | Wed 8/27 |
Welcome
|
|
Disc 00: Getting Started
Lab 00: Getting Started
Due
Wed 9/3
|
|
Fri 8/29 |
Functions
|
Lab 01: Functions
Due
Wed 9/3
|
HW 01: Functions, Control
Due
Mon 9/8
|
||
2 | Mon 9/1 |
No Lecture: Labor Day | |||
Wed 9/3 |
Control
|
Disc 01: Control, Environment Diagrams
|
|||
Fri 9/5 |
Higher-Order Functions
|
HW 02: Higher-Order Functions
Due
Thu 9/11
Hog
Checkpt
Thu 9/11
Early Due
Wed 9/17
Due
Thu 9/18
|
|||
3 | Mon 9/8 |
Environments
|
Lab 02: Higher-Order Functions, Lambda Expressions
Due
Wed 9/10
|
||
Wed 9/10 |
Functional Abstraction
|
|
Disc 02: Environment Diagrams, Higher-Order Functions | ||
Fri 9/12 |
Midterm 1 Review Part 1
|
|
(Optional) Hog Contest
Due
Thu 9/25
|
||
4 | Mon 9/15 |
Midterm 1 Review Part 2
|
|
||
Tue 9/16 |
Midterm 1 (7pm-9pm) | ||||
Wed 9/17 |
Recursion
|
Disc 03: Recursion | |||
Fri 9/19 |
Tree Recursion
|
HW 03: Recursion, Tree Recursion
Due
Thu 9/25
|
|||
5 | Mon 9/22 |
Sequences
|
Lab 03: Recursion, Python Lists
Due
Wed 9/24
|
||
Wed 9/24 |
Containers
|
Disc 04: Tree Recursion |
Cats
Checkpt
Thu 10/2
Early Due
Wed 10/8
Due
Thu 10/9
|
||
Fri 9/26 |
Data Abstraction
|
||||
6 | Mon 9/29 |
Trees
|
Lab 04: Tree Recursion, Data Abstraction
Due
Wed 10/1
|
||
Wed 10/1 |
Mutability
|
Disc 05: Trees | |||
Fri 10/3 |
Iterators
|
HW 04: Sequences, Data Abstraction, Trees
Due
Thu 10/9
|
|||
7 | Mon 10/6 |
Generators
|
Lab 05: Iterators, Mutability
Due
Wed 10/8
|
||
Wed 10/8 |
Objects
|
Disc 06: Generators | |||
Fri 10/10 |
Attributes
|
HW 05: Generators
Due
Thu 10/16
Ants
Checkpt
1
Thu 10/16
Checkpt
2
Tue 10/21
Early Due
Wed 10/22
Due
Thu 10/23
|
|||
8 | Mon 10/13 |
Inheritance
|
Lab 06: Object-Oriented Programming
Due
Wed 10/15
|
||
Wed 10/15 |
Representation
|
Disc 07: OOP | |||
Fri 10/17 |
Composition
|
|
HW 06: Object-Oriented Programming, Linked Lists, Mutable Trees
Due
Thu 10/23
|
||
9 | Mon 10/20 |
Efficiency
|
Lab 07: Linked Lists, Inheritance
Due
Wed 10/22
|
||
Wed 10/22 |
Decomposition
|
|
Disc 08: Linked Lists | ||
Fri 10/24 |
Data Examples
|
|
|||
10 | Mon 10/27 |
Midterm 2 Review |
|
||
Tue 10/28 |
Midterm 2 (7pm-9pm) | ||||
Wed 10/29 |
Concurrency |
|
Disc 09: Concurrency
|
||
Fri 10/31 |
TBD |
|
|||
11 | Mon 11/3 |
Scheme
|
Lab 08: Scheme
Due
Wed 11/5
|
HW 07: Scheme
Due
Thu 11/6
|
|
Wed 11/5 |
Scheme Lists
|
Disc 10: Scheme, Scheme Lists | |||
Fri 11/7 |
Calculator
|
HW 08: Scheme Lists
Due
Thu 11/13
|
|||
12 | Mon 11/10 |
Interpreters
|
Lab 09: Interpreters
Due
Wed 11/12
|
Scheme
Checkpt
1
Thu 11/13
Checkpt
2
Thu 11/20
Early Due
Mon 11/24
Due
Tue 11/25
|
|
Wed 11/12 |
Programs as Data
|
|
Disc 11: Interpreters
|
||
Fri 11/14 |
Macros
|
|
HW 09: Programs as Data, Macros
Due
Thu 11/20
|
||
13 | Mon 11/17 |
SQL
|
|
Lab 10: Programs as Data, Macros
Due
Wed 11/19
|
|
Wed 11/19 |
Tables
|
|
Disc 12: Macros
|
(Optional) Scheme Contest
Due
Wed 12/3
|
|
Fri 11/21 |
Aggregation
|
|
HW 10: SQL
Due
Thu 11/27
|
||
14 | Mon 11/24 |
Databases
|
|
||
Wed 11/26 |
No Lecture: Thanksgiving | ||||
Fri 11/28 |
No Lecture: Thanksgiving | ||||
15 | Mon 12/1 |
Designing Functions
|
|
Lab 11: SQL
Due
Wed 12/3
|
|
Wed 12/3 |
TBD |
|
Disc 13: SQL
|
||
Fri 12/5 |
Conclusion |
|
HW 11: Finale
Due
Sun 12/14
|
||
16 | Mon 12/8 |
No Lecture: RRR Week | |||
Wed 12/10 |
No Lecture: RRR Week | ||||
Fri 12/12 |
No Lecture: RRR Week | ||||
17 | Wed 12/17 |
Final (7pm-10pm) |