CS 61A: Structure and Interpretation of Computer Programs
Fall 2023, Instructor: Satish Rao
Monday, November 27
- Homework 9 is due Tuesday 11/28.
- Homework 10 is due Thursday 11/30.
Optional guest lecture from Yaron (Ron) Minsky 1pm on Wednesday 11/29 in 150 Wheeler.
- Topic: "Types and why you should care"
- No Zoom option; come to live lecture
- No lecture in 245 Li Ka Shing
- Free Jane Street t-shirts for some students, I hear.
Week 15 Class Material
-
Lecture 37: Aggregation
- Lecture 38: Types (Yaron Minsky)
- Lecture 39: Conclusion
- Week 15 Readings:
Monday, November 20
Project 4 is due Tuesday 11/21.
- Early submission bonus on Monday 11/20.
- All extension requests for up to 7 days (through Tuesday 11/28) are automatically approved, but you will not receive a confirmation email or see the extension on Gradescope.
- Lecture on Monday 11/20 will be video only, no in-person or Zoom lecture.
- No lab during Thanksgiving week.
Wednesday, November 15
Project 4 is due Tuesday 11/21.
- Checkpoint 2 due Thursday 11/16
- Early submission bonus on Monday 11/20.
- Lecture on Monday 11/20 will be video only, no in-person or Zoom lecture.
- No lab during Thanksgiving week.
Week 13 Class Material
-
Lecture 33: Programs as Data
-
Lecture 34: Macros
-
Lecture 35: SQL
- Week 13 Readings:
Monday, November 13
Project 4 is due Tuesday 11/21.
- Checkpoint 1 due Monday 11/13
- Checkpoint 2 due Thursday 11/16
- Early submission bonus on Monday 11/20.
Week 13 Class Material
-
Lecture 33: Programs as Data
-
Lecture 34: Macros
-
Lecture 35: SQL
- Week 13 Readings:
Wednesday, November 8
- Homework 8 is due Thursday 11/9.
- Project 4 is due Tuesday 11/21.
Week 12 Class Material
-
Lecture 31: Interpreters
-
Lecture 32: Tail Calls (Optional)
- Week 12 Readings:
Friday, November 3
- Homework 8 is due Thursday 11/9.
- Midterm 2 regrade requests through Gradescope are open until Wednesday 11/8.
Week 11 Class Material
-
Lecture 28: Scheme
-
Lecture 29: Scheme Lists
-
Lecture 30: Calculator
- Week 11 Readings:
Wednesday, November 1
- Homework 7 due Thursday 11/2
Lectures on Wed 11/1 and Fri 11/3 are in 150 Wheeler only
- Prof. DeNero is lecturing. (Prof. Rao is out of town.)
- Zoom link
Midterm 2, solutions, and videos are posted on Ed.
- If you took the exam, you should have received your scored exam from Gradescope.
- Regrade requests through Gradescope are open until Wednesday 11/8.
Week 11 Class Material
-
Lecture 28: Scheme
-
Lecture 29: Scheme Lists
-
Lecture 30: Calculator
- Week 11 Readings:
Monday, October 30
- Homework 7 due Thursday 11/2
Week 11 Class Material
-
Lecture 28: Scheme
-
Lecture 29: Scheme Lists
-
Lecture 30: Calculator
- Week 11 Readings:
Friday, October 20
Project 3 due Tuesday 10/24
- Early submission bonus point Monday 10/23
- Optional lectures on Mon 10/23 & Wed 10/25 will be in Wheeler 150 only (no Zoom; no Li Ka Shing)
Midterm 2 7pm-9pm Friday 10/27
- Midterm 1 study guide & midterm 2 study guide & scratch paper provided
- You may bring two hand-written sheets of notes
- No lecture on Friday 10/27
Week 9 Class Material
-
Lecture 23: Efficiency
-
Lecture 24: Decomposition
-
Lecture 25: Data Examples
- Week 9 Readings:
Wednesday, October 18
Project 3 due Tuesday 10/24
- Early submission bonus point Monday 10/23
- Homework 6 due Thursday 10/19
- Optional lectures on Mon 10/23 & Wed 10/25 will be in Wheeler 150 only (no Zoom; no Li Ka Shing)
- Midterm 2 7pm-9pm Friday 10/27
Week 9 Class Material
-
Lecture 23: Efficiency
-
Lecture 24: Decomposition
-
Lecture 25: Data Examples
- Week 9 Readings:
Monday, October 16
Project 3 due Tuesday 10/24
- Checkpoint 2 due Tuesday 10/17
- Early submission bonus point Monday 10/23
- Homework 6 due Thursday 10/19
- Midterm 2 7pm-9pm Friday 10/27
Week 9 Class Material
-
Lecture 23: Efficiency
-
Lecture 24: Decomposition
-
Lecture 25: Data Examples
- Week 9 Readings:
Wednesday, October 11
Project 3 due Tuesday 10/24
- Checkpoint 1 extended to Thursday 10/12
- Checkpoint 2 due Tuesday 10/17
- Early submission bonus point Monday 10/23
- Lab 7 extended to Thursday 10/12
- Homework 5 due Thursday 10/12
- Homework 6 due Thursday 10/19
- Midterm 2 7pm-9pm Friday 10/27
Week 8 Class Material
-
Lecture 20: Inheritance
-
Lecture 21: Representation
-
Lecture 22: Composition
- Week 8 Readings:
Tuesday, October 10
Project 3 due Tuesday 10/24
- Checkpoint 1 due Wednesday 10/11
- Checkpoint 2 due Tuesday 10/17
- Early submission bonus point Monday 10/23
- Homework 5 due Thursday 10/12
- Homework 6 due Thursday 10/19
- Midterm 2 7pm-9pm Friday 10/27
Week 8 Class Material
-
Lecture 20: Inheritance
-
Lecture 21: Representation
-
Lecture 22: Composition
- Week 8 Readings:
Tuesday, October 3
- Project 2 due Tuesday 10/3 @ 11:59pm.
- Homework 4 due Thursday 10/5 @ 11:59pm.
- Homework 5 due Thursday 10/12 @ 11:59pm.
- No DeNero lecture on Friday 10/6. (All are welcome at the Rao lecture 1pm in 150 Wheeler.)
Week 7 Class Material
-
Lecture 17: Generators
-
Lecture 18: Objects
-
Lecture 19: Attributes
- Week 7 Readings:
Friday, September 29
Project 2 due Tuesday 10/3 @ 11:59pm.
- Eary submission bonus point for completing the whole project by Monday 10/2.
- Homework 4 due Thursday 10/5 @ 11:59pm.
Week 6 Class Material
-
Lecture 14: Trees
-
Lecture 15: Mutability
-
Lecture 16: Iterators
- Week 6 Readings:
Monday, September 25
Project 2 due Tuesday 10/3 @ 11:59pm.
- Checkpoint due Thursday 9/28.
- Eary submission bonus point for completing the whole project by Monday 10/2.
Week 6 Class Material
-
Lecture 14: Trees
-
Lecture 15: Mutability
-
Lecture 16: Iterators
- Week 6 Readings:
Friday, September 15
- Homework 3 due Thursday 9/21.
Week 4 Class Material
-
Lecture 9: Recursion
-
Lecture 10: Tree Recursion
- Week 4 Readings:
Tuesday, September 12
Hog is due 11:59pm Wed 9/13.
- Early submission bonus point for completing the project by Tues 9/12.
Alternative courses:
Week 4 Class Material
-
Lecture 9: Recursion
-
Lecture 10: Tree Recursion
- Week 4 Readings:
Tuesday, September 5
- Homework 2 is due 11:59pm Thursday 9/7.
Hog is due 11:59pm Wed 9/13.
- Early submission bonus point for completing the project by Tues 9/12.
- Complete Phase 1 by Tuesday 9/5 to earn the checkpoint (one point).
Midterm 1 will be held 8pm-10pm Monday 9/11 in various locations.
- The midterm 1 study guide will be provided.
- You may bring 1 2-sided sheet of notes.
- Arrive by 8pm to find your seat and receive your exam; the exam itself will begin at 8:10.
- The exam will cover material through Lecture 5 (9/1).
- No lab next week: 9/11-9/13
- No lecture on Monday 9/11
Week 3 Class Material
-
Lecture 6: Sound (Optional)
-
Lecture 7: Functional Abstraction
-
Lecture 8: Function Examples
- Week 3 Readings:
Friday, September 1
- Homework 2 is due 11:59pm Thursday 9/7.
Hog is due 11:59pm Wed 9/13.
- Early submission bonus point for completing the project by Tues 9/12.
- Complete Phase 1 by Tuesday 9/5 to earn the checkpoint (one point).
Midterm 1 will be held 8pm-10pm Monday 9/11 in various locations.
- Arrive by 8pm to find your seat and receive your exam; the exam itself will begin at 8:10.
- The exam will cover material through Lecture 5 (9/1).
Week 2 Class Material
-
Lecture 3: Control
-
Lecture 4: Higher-Order Functions
-
Lecture 5: Environments
- Week 2 Readings:
Wednesday, August 30
- Homework 1 is due 11:59pm Thursday 8/31. Go to lab, then try the homework.
Hog is due 11:59pm Wed 9/13.
- Early submission bonus point for completing the project by Tues 9/12.
- Complete Phase 1 by Tuesday 9/5 to earn the checkpoint (one point).
- Come to drop-in office hours if you want help with lab, homework, projects, or anything else.
Week 2 Class Material
-
Lecture 3: Control
-
Lecture 4: Higher-Order Functions
-
Lecture 5: Environments
- Week 2 Readings:
Friday, August 25
- Try Lab 00 before coming to Lab next week.
- Homework 1 is due 11:59pm Thursday 8/31. Go to lab, then try the homework.
- Use the Rao and DeNero links at the top nav bar to find the right course calendar.
Week 1 Class Material
-
Lecture 1: Welcome
-
Lecture 2: Functions
- Week 1 Readings:
Monday, August 21
- Welcome to CS 61A!
- The homepage for the larger offering of CS 61A (LEC 001, with Professor Rao) can be found at cs61a.org
- The homepage for the smaller offering of CS 61A (LEC 002, with Professor DeNero) can be found at cs61a.org/denero.html
- Discussion section begins this week (starting Wednesday Aug 23)
- Section assignments will be released by Tuesday, Aug 22
Week 1 Class Material
-
Lecture 1: Welcome
-
Lecture 2: Functions
- Week 1 Readings:
Current Assignments
Calendar
Week | Date | Lecture | Textbook | Lab & Discussion Links | Homework & Project |
---|---|---|---|---|---|
1 | Wed 8/23 |
|
Disc 00: Getting Started
Lab 00: Getting Started
Due
Wed 8/30
|
||
Fri 8/25 |
HW 01: Functions, Control
Due
Thu 8/31
|
||||
2 | Mon 8/28 |
Lab 01: Functions, Control
Due
Wed 8/30
|
|||
Wed 8/30 |
Disc 01: Control, Environment Diagrams |
Hog
Checkpt
Tue 9/5
Due
Wed 9/13
|
|||
Fri 9/1 |
HW 02: Higher-Order Functions
Due
Thu 9/7
|
||||
3 | Mon 9/4 |
|
Lab 02: Higher-Order Functions, Lambda Expressions
Due
Wed 9/6
|
||
Wed 9/6 |
|
Disc 02: Environment Diagrams, Higher-Order Functions | |||
Fri 9/8 |
|
Lab 03: Midterm Review (Optional)
Due
Wed 9/13
|
|||
4 | Mon 9/11 |
Midterm 1 (8pm-10pm) | |||
Wed 9/13 |
Disc 03: Recursion | ||||
Fri 9/15 |
HW 03: Recursion, Tree Recursion
Due
Thu 9/21
|
||||
5 | Mon 9/18 |
Lab 04: Recursion, Python Lists
Due
Wed 9/20
|
|||
Wed 9/20 |
Disc 04: Tree Recursion |
Cats
Checkpt
Thu 9/28
Due
Tue 10/3
|
|||
Fri 9/22 |
|||||
6 | Mon 9/25 |
Lab 05: Trees, Data Abstraction
Due
Wed 9/27
|
|||
Wed 9/27 |
Disc 05: Trees, Data Abstraction | ||||
Fri 9/29 |
HW 04: Sequences, Trees
Due
Thu 10/5
|
||||
7 | Mon 10/2 |
Lab 06: Iterators, Mutability
Due
Wed 10/4
|
|||
Wed 10/4 |
Disc 06: Iterators, Generators | ||||
Fri 10/6 |
HW 05: Generators
Due
Thu 10/12
Ants
Checkpt
1
Thu 10/12
Checkpt
2
Tue 10/17
Due
Tue 10/24
|
||||
8 | Mon 10/9 |
Lab 07: Object-Oriented Programming
Due
Thu 10/12
|
|||
Wed 10/11 |
Disc 07: OOP, String Representation | ||||
Fri 10/13 |
|
HW 06: Object-Oriented Programming, Linked Lists
Due
Thu 10/19
|
|||
9 | Mon 10/16 |
Lab 08: Linked Lists
Due
Wed 10/18
|
|||
Wed 10/18 |
|
Disc 08: Linked Lists, Efficiency | |||
Fri 10/20 |
|
||||
10 | Mon 10/23 |
|
Lab 09: Mutable Trees
Due
Wed 10/25
|
||
Wed 10/25 |
|
Disc 09: Midterm Review | |||
Fri 10/27 |
Midterm 2 (7pm-9pm) | ||||
11 | Mon 10/30 |
Lab 10: Scheme
Due
Wed 11/1
|
HW 07: Scheme
Due
Thu 11/2
|
||
Wed 11/1 |
Disc 10: Scheme, Scheme Lists | ||||
Fri 11/3 |
HW 08: Scheme Lists
Due
Thu 11/9
|
||||
12 | Mon 11/6 |
Lab 11: Interpreters
Due
Wed 11/8
|
Scheme
Checkpt
1
Mon 11/13
Checkpt
2
Thu 11/16
Due
Tue 11/21
(Optional) Scheme Contest
Due
Tue 11/21
|
||
Wed 11/8 |
|
Disc 11: Interpreters, More Scheme | |||
Fri 11/10 |
No Lecture: Veterans Day | ||||
13 | Mon 11/13 |
|
Lab 12: Programs as Data
Due
Wed 11/15
|
||
Wed 11/15 |
|
Disc 12: Macros | |||
Fri 11/17 |
|
HW 09: Programs as Data, Macros
Due
Tue 11/28
|
|||
14 | Mon 11/20 |
|
|||
Wed 11/22 |
No Lecture: Thanksgiving Break | ||||
Fri 11/24 |
No Lecture: Thanksgiving Break | ||||
15 | Mon 11/27 |
|
Lab 13: SQL
Due
Tue 12/5
|
HW 10: SQL
Due
Thu 11/30
|
|
Wed 11/29 |
Types (Yaron Minsky) |
|
Disc 13: SQL
|
||
Fri 12/1 |
Conclusion |
|
HW 11: Finale
Due
Fri 12/8
|
||
16 | Mon 12/4 |
No Lecture: RRR Week | |||
Wed 12/6 |
No Lecture: RRR Week | ||||
Fri 12/8 |
No Lecture: RRR Week | ||||
17 | Wed 12/13 |
Final (7pm-10pm) |