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)