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)