CS 61A: Structure and Interpretation of Computer Programs
Spring 2025: Mon, Wed, Fri 2pm in 150 Wheeler
Announcements: Wednesday, February 19
- Homework 3 is due Thursday 2/20.
- An extra video was added to the Lecture 11 playlist at 1:10pm on Wed 2/19. Watch it before discussion.
Midterm 2 is scheduled for Tuesday 4/1 8pm-10pm.
- Homework 6 deadline extended to Thursday 4/3.
- Lab on Monday 3/31 and Tuesday 4/1 is optional (no need to submit it & attendance is optional).
- Lecture on Monday 3/31 will be Zoom-only.
Announcements: Friday, February 14
- Homework 3 is due Thursday 2/20.
For Lab 3 next week, since Monday is a holiday:
- All students still need to submit the lab.
- Students in Monday labs will automatically get attendance credit.
- Students in Monday labs are welcome to come to any Tuesday lab or office hours.
Announcements: Wednesday, February 12
Project 1: Hog is due Thursday 2/13.
- Bonus point for completing the project by Wed 2/12.
Announcements: Friday, February 7
Project 1: Hog is due Thursday 2/13.
- Bonus point for completing the project by Wed 2/12.
Midterm 1 is Tuesday 2/11 7pm-9pm in various locations.
- Please read the Midterm 1 Ed post that you received via email.
- Request alterations for left-handed desks, alternate times and more by Sunday 2/9.
- Seat assignments will be sent out Monday 2/10.
- No lecture on Monday 2/10.
- No lab on Monday 2/10 or Tuesday 2/11.
Announcements: Wednesday, February 5
- Homework 2 is due Thursday 2/6.
Project 1: Hog is due Thursday 2/13.
- Bonus point for completing the project by Wed 2/12.
Midterm 1 is Tuesday 2/11 7pm-9pm in various locations.
- The study guide will be provided with your exam.
- You may bring 1 2-sided handwritten sheet of notes that you create yourself.
- Request alterations for left-handed desks, alternate times and more by Sunday 2/9.
- Seat assignments will be sent out Monday 2/10.
- No lecture on Monday 2/10.
- No lab on Monday 2/10 or Tuesday 2/11.
New discussion format option: lecture-style review of discussion questions on Fridays 11-12:30 in Soda 306.
- You can switch to it on sections.cs61a.org.
- You can also show up after attending your regular discussion.
Announcements: Monday, February 3
- Homework 2 is due Thursday 2/6.
Project 1: Hog is due Thursday 2/13.
- Checkpoint due Tuesday 2/4.
- Bonus point for completing the project by Wed 2/12.
- Try to finish this week.
- Don't use copilot or ChatGPT.
Midterm 1 is Tuesday 2/11 7pm-9pm in various locations.
- The study guide will be provided with your exam.
- You may bring 1 2-sided handwritten sheet of notes that you create yourself.
- No lecture on Monday 2/10.
- Sign up for exam prep small-group tutoring
New discussion format option: lecture-style review of discussion questions on Fridays 11-12:30 in Soda 306.
- You can switch to it on sections.cs61a.org.
- You can also show up after attending your regular discussion.
Announcements: Friday, January 31
- Homework 2 is due Thursday 2/6.
Project 1: Hog is due Thursday 2/13.
- Checkpoint due Tuesday 2/4.
- Bonus point for completing the project by Wed 2/12.
- It's a good idea to try to finish next week.
- Lots of office hours are available next week!
Midterm 1 is Tuesday 2/11 7pm-9pm in various locations.
- The study guide will be provided with your exam.
- You may bring 1 2-sided handwritten sheet of notes that you create yourself.
- No lecture on Monday 2/10.
- Sign up for exam prep small-group tutoring
Announcements: Wednesday, January 29
- Lab 0 & Lab 1 are due Wednesday 1/29 (today)!
- Homework 1 is due Thursday 1/30 (tomorrow).
Project 1: Hog is due Thursday 2/13.
- Checkpoint due Tuesday 2/4.
- Bonus point for completing the project by Wed 2/12.
You can switch lab & discussion sections until Wed 2/12 on sections.cs61a.org
- Attendance is required if you stay in regular lab & discussion (recommended!)
Announcements: Monday, January 27
Try to complete Lab 0 before coming to lab this week.
- If you don't finish beforehand, you can finish during your lab period before starting on Lab 1.
Attendance for lab is very similar to discussion:
- Get an arrival number & fill out the form shortly after you arrive.
- Get a departure number & fill out the form again just before you leave.
- If you finish early, let your TA know and they will give you a departure number.
Homework 1 is due Thursday 1/30 @ 11:59pm.
- It's best to complete Lab 1 first, including the optional questions.
- Homework (and only homework) includes the 61a-bot, which helps you find problems with your code.
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 |
Newton (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
|
HW 06: Object-Oriented Programming, Linked Lists
Due
Thu 4/3
|
|||
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
|
|
|||
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 (Zoom Only)
|
|
Lab 08: Mutable Trees
Due
Wed 4/2
|
|
Tue 4/1 |
Midterm 2 (8pm-10pm) | ||||
Wed 4/2 |
No Lecture | ||||
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) |