CS 61A: Structure and Interpretation of Computer Programs

Summer 2025: Mon, Tue, Wed, Thu 5-6:30 p.m. on Zoom

Announcements: Friday, June 13

  • Welcome to CS 61A!
  • This website is under construction and its contents are subject to change.
  • Please note that the midterm time is tentatively being moved to Monday, 7/14 5-7 pm. We will share more information once the midterm time has been confirmed.
  • The lecture time has been changed to Mon-Thurs 5:00-6:30pm. Lecture will be delivered synchronously online (via Zoom) and recorded. The other components of the class will be in person.
  • For the first week, lectures will be delivered both in person in Soda 306 (HP Auditorium) and synchronously online. You can choose which you would prefer, but we'd encourage you to come in person!

Current Assignments

Calendar

Week Date Lecture Textbook Lab & Discussion Links Homework & Project
1 Mon
6/23
Welcome
Tue
6/24
Functions
Disc 00: Getting Started
Wed
6/25
Control
Lab 00: Getting Started
Due Mon 6/30
HW 01: Functions, Control, Higher-Order Functions
Due Tue 7/1

Hog
Checkpt Wed 7/2
Due Tue 7/8
Thu
6/26
Higher-Order Functions
Disc 01: Functions, Control
2 Mon
6/30
Environments
Lab 01: Functions, Control
Due Tue 7/1
Tue
7/1
Recursion
Disc 02: Higher-Order Functions, Environment Diagrams
Wed
7/2
Tree Recursion
Lab 02: Higher-Order Functions, Lambda Expressions
Due Thu 7/3
Thu
7/3
Sequences and Containers
Disc 03: Recursion, Tree Recursion
HW 02: Recursion, Tree Recursion, Sequences, Python Lists
Due Thu 7/10
3 Mon
7/7
Data Abstraction and ADT Trees
Lab 03: Recursion, Tree Recursion
Due Tue 7/8
Tue
7/8
Mutability
Disc 04: Trees, Python Lists
Cats
Checkpt Tue 7/15
Due Fri 7/18
Wed
7/9
Iterators and Generators
Lab 04: Sequences, Mutability, Trees
Due Fri 7/11
Thu
7/10
Midterm Review
Disc 05: Mutability, Iterators, Generators
HW 03: Trees, Iterators, Generators
Due Wed 7/16
4 Mon
7/14
Midterm (5-7pm)
Tue
7/15
Objects and Attributes
Wed
7/16
Inheritance and String Representation
Lab 05: Iterators, Generators
Due Thu 7/17
Thu
7/17
Mutable Trees
Disc 06: OOP, Inheritance, String Representation
HW 04: Object-Oriented Programming, Mutable Trees
Due Wed 7/23
Fri
7/18
Ants
Checkpt Thu 7/24
Due Tue 7/29
5 Mon
7/21
Linked Lists
Lab 06: Object-Oriented Programming, Inheritance, String Representation
Due Tue 7/22
Tue
7/22
Efficiency
Disc 07: Mutable Trees, Linked Lists
Wed
7/23
Scheme
Lab 07: Mutable Trees, Linked Lists
Due Thu 7/24
Thu
7/24
Scheme Lists
Disc 08: Efficiency, Scheme
HW 05: Linked Lists, Efficiency, Scheme
Due Wed 7/30
6 Mon
7/28
Interpreters
Lab 08: Scheme, Scheme Lists
Due Tue 7/29
Tue
7/29
Tail Calls
Disc 09: Scheme Lists, Interpreters
Wed
7/30
Scheme Data Abstraction
Lab 09: Interpreters
Due Thu 7/31
Scheme
Checkpt Thu 8/7
Due Thu 8/14
Thu
7/31
SQL and Tables
Disc 10: Tail Calls, Scheme Data Abstraction
HW 06: Scheme Data Abstraction, SQL
Due Thu 8/7
7 Mon
8/4
Aggregation and Databases
Lab 10: Tail Calls, Scheme Data Abstraction
Due Tue 8/5
Tue
8/5
Special Topics I
Disc 11: SQL
Wed
8/6
Special Topics II
Lab 11: SQL
Due Thu 8/7
Thu
8/7
Final Review
Disc 12: SQL, Final Review
Fri
8/8
HW 07: Finale
Due Mon 8/11
8 Mon
8/11
Conclusion
Lab 12: Final Review (Optional)
Due Tue 8/12
Tue
8/12
Final (11:30am-2:30pm)