CS 61A: Structure and Interpretation of Computer Programs

Spring 2024, Instructor: John DeNero

Announcements: Monday, March 18

  • The Ants Project is due Tuesday 3/19.

    • Early submission bonus point for finishing by Monday 3/18.
    • Office hours Monday 3/18 are 6-8pm
  • Midterm 2 is 8pm-10pm Thursday 3/21.

    • No lecture Wednesday 3/20.
    • No discussion Wednesday 3/20 or Thursday 3/21.
    • Scores will not be returned until after Spring Break.
  • Special schedule Friday 3/22.

    • Optional guest lecture on Large Language Models (Pamela Fox) 2-3 in 1 Pimentel.
    • Optional guest lecture/Q&A on the Ants GUI (Benji Xu & Justin Park) 3-4 in 293 Cory.

Announcements: Wednesday, March 13

  • Homework 6 (very short) is due Thursday 3/14.
  • The Ants Project is due Tuesday 3/19.

    • Early submission bonus point for finishing by Monday 3/18.
  • Midterm 2 is 8pm-10pm Thursday 3/21.

    • Alteration requests due Sunday 3/17.
    • No lecture Wednesday 3/20.
    • No discussion Wednesday 3/20 or Thursday 3/21.
    • Optional (great) guest lecture Friday 3/22.
    • Scores will not be returned until after Spring Break.

Announcements: Friday, March 8

  • Homework 6 (very short) is due Thursday March 14.
  • The Ants Project is due Tuesday 3/19.

    • Checkpoint 1 (3 questions) is due Thursday 3/7.
    • Checkpoint 2 (many questions) is due Tuesday 3/12.
    • Early submission bonus point for finishing by Monday 3/18.

Announcements: Wednesday, March 6

  • Homework 5 is due Thursday March 7.
  • The Ants Project is due Tuesday 3/19.

    • Checkpoint 1 (3 questions) is due Thursday 3/7.
    • Checkpoint 2 (many questions) is due Tuesday 3/12.
    • Early submission bonus point for finishing by Monday 3/18.
  • Thursday afternoon office hours in Warren are only from 5pm-6pm!

    • Only HW 5 & Checkpoint 1 questions will be answered on Thursday afternoon.
    • Please come today (Wednesday) instead!
  • Midterm 2 is 8pm-10pm Thursday 3/21.

  • You can come to lab early and/or stay late on Tuesday (or come at an unassigned time) to finish lab.

    • Your lab period is also a fine time to ask questions about homework or projects, but questions about lab will be prioritized.

Announcements: Friday, March 1

  • Homework 5 is due Thursday March 7.

Announcements: Wednesday, February 28

  • Homework 4 is due Thursday Feb 29.

Announcements: Friday, February 23

  • The Cats project is due Tuesday Feb 27.

    • Early submission point for finishing by Monday Feb 26.
  • Homework 4 is due Thursday Feb 29.

Announcements: Friday, February 16

  • The Cats project is due Tuesday Feb 27.

    • Checkpoint (most of the project) is due Thursday Feb 22.
    • Early submission point for finishing by Monday Feb 26.

Announcements: Wednesday, February 14

  • Homework 3 is due Thursday Feb 15.
  • Midterm 1 regrade requests are due Thursday Feb 15.
  • The Cats project is due Tuesday Feb 27.

    • Checkpoint (most of the project) is due Thursday Feb 22.
    • Early submission point for finishing by Monday Feb 26.

Announcements: Monday, February 12

  • Homework 3 due Thursday Feb 15.
  • Midterm 1 regrade requests are due Thursday Feb 15.
  • Monday 2/12 office hours moved to Soda 310, 6pm-8pm.

Announcements: Friday, February 9

  • Homework 3 due Thursday Feb 15.
  • All students will receive participation credit for Discussion 3 (because of campus wi-fi).
  • Midterm 1 regrade requests are due Thursday Feb 15.

Announcements: Wednesday, February 7

  • The Hog project is due Wednesday Feb 7.
  • Midterm 1 regrade requests are due Thursday Feb 15.

Announcements: Friday, February 2

  • Midterm 1 is 8pm-10pm Monday Feb 5.

    • The alteration request form will stay open, but the deadline has passed, and we might not be able to accommodate late requests.
    • The Midterm 1 Study Guide will be provided.
    • You may bring a handwritten sheet of notes (front and back)
    • Seating assignments will be released by Sunday night.
    • No lecture on Monday Feb 5.
    • No lab on Tuesday Feb 6.
  • The Hog project is due Wednesday Feb 7.

    • Early submission bonus for finishing by Tuesday Feb 6.

Announcements: Wednesday, January 31

  • Homework 2 is due Thursday Feb 1.
  • Midterm 1 is 8pm-10pm Monday Feb 5.

    • Fill out the alteration request form for any exam-related requests.
    • The Midterm 1 Study Guide will be provided.
    • You may bring a handwritten sheet of notes (front and back)
    • Seating assignments will be released by Sunday night.
    • No pre-recorded videos for lecture on Friday Feb 2.
    • No lecture on Monday Feb 5.
    • No lab on Tuesday Feb 6.
  • The Hog project is due Wednesday Feb 7.

    • Early submission bonus for finishing by Tuesday Feb 6.

Announcements: Monday, January 29

  • The Hog project is due Wednesday Feb 7.

    • Checkpoint due Tuesday Jan 30.
    • Early submission bonus for finishing by Tuesday Feb 6.
  • Homework 2 is due Thursday Feb 1.
  • If you would like to be introduced as someone willing to help during lab, fill out this form before your lab period.

Announcements: Friday, January 26

  • The Hog project is due Wednesday Feb 7.

    • Checkpoint due Tuesday Jan 30.
    • Early submission bonus for finishing by Tuesday Feb 6.
  • Homework 2 is due Thursday Feb 1.
  • Save the date: Midterm 1 is 8pm-10pm Monday Feb 5!

Announcements: Wednesday, January 24

  • Lab 0 and Lab 1 are due Wednesday Jan 24.
  • Homework 1 is due Thursday Jan 25.
  • The Hog project is due Wednesday Feb 7.

    • Checkpoint due Tuesday Jan 30.
    • Early submission bonus for finishing by Tuesday Feb 6.
  • The extension request form at go.cs61a.org/extensions is now available.

Announcements: Monday, January 22

  • Please try to complete Lab 0 at home before Tuesday's lab.

  • Lab 1 is on Tuesday Jan 23.

    • You should have received an email about your lab time and location if you filled out the preference form before classes started.
    • You should receive a message from our course manager Jenna if you did not fill out the preference form.
    • The lab assignment is due Wednesday, but you will likely finish it during your lab period.
    • If you would like to be introduced as someone willing to help during lab, fill out this form before your lab period.
  • Homework 1 is due 11:59pm Thursday 1/25.

Announcements: Friday, January 19

  • Please try to complete Lab 0 at home before Tuesday.
  • Homework 1 is due 11:59pm Thursday 1/25.
  • Lab 1 is on Tuesday Jan 23.

    • You should have received an email about your lab time and location if you filled out the preference form before classes started.
    • You should receive a message from our course manager Jenna if you did not fill out the preference form.

Announcements: Wednesday, January 17

  • Welcome to CS 61A!
  • Discussion begins this week.
  • If you are not in a discussion group and would like to be, email our course manager Jenna: jiyeonwoo@berkeley.edu
  • Lab begins Tuesday Jan 23.
  • The Fall 2024 site has been archived.

Announcements: Friday, January 12

  • Welcome to CS 61A!
  • Complete the section preference form by 11:59pm Monday Jan 15.
  • Lecture and Discussion begin Wednesday Jan 17.
  • Lab begins Tuesday Jan 23.
  • The Fall 2024 site has been archived.

Announcements: Saturday, January 6

  • Welcome to CS 61A!

Current Assignments

Calendar

Week Date Lecture Textbook Lab & Discussion Links Homework & Project
1 Wed
1/17
Welcome
Disc 00: Getting Started
Fri
1/19
Functions
Lab 00: Getting Started
Due Wed 1/24
HW 01: Functions, Control
Due Thu 1/25
2 Mon
1/22
Control
Lab 01: Functions, Control
Due Wed 1/24
Wed
1/24
Higher-Order Functions
Disc 01: Control, Environment Diagrams Hog
Checkpt Tue 1/30
Due Wed 2/7
Fri
1/26
Environments
HW 02: Higher-Order Functions
Due Thu 2/1
3 Mon
1/29
Functional Abstraction
Lab 02: Higher-Order Functions, Lambda Expressions
Due Wed 1/31
Wed
1/31
Function Examples
Disc 02: Environment Diagrams, Higher-Order Functions
Fri
2/2
Function Demos (Optional)
4 Mon
2/5
Midterm 1 (8pm-10pm)
Wed
2/7
Recursion
Disc 03: Recursion
Fri
2/9
Tree Recursion
HW 03: Recursion, Tree Recursion
Due Thu 2/15
5 Mon
2/12
Sequences
Lab 03: Recursion, Python Lists
Due Wed 2/14
Wed
2/14
Containers
Disc 04: Tree Recursion Cats
Checkpt Thu 2/22
Due Tue 2/27
Fri
2/16
Data Abstraction
6 Mon
2/19
No Lecture: Presidents' Day Lab 04: Tree Recursion, Data Abstraction
Due Wed 2/21
Wed
2/21
Trees
Disc 05: Trees
Fri
2/23
Mutability
HW 04: Sequences, Trees
Due Thu 2/29
7 Mon
2/26
Iterators
Lab 05: Iterators, Mutability
Due Wed 2/28
Wed
2/28
Generators
Disc 06: Iterators, Generators
Fri
3/1
Objects
HW 05: Generators
Due Thu 3/7
8 Mon
3/4
Attributes
Lab 06: Object-Oriented Programming
Due Wed 3/6
Ants
Checkpt 1 Thu 3/7
Checkpt 2 Tue 3/12
Due Tue 3/19
Wed
3/6
Inheritance
Disc 07: OOP
Fri
3/8
Representation
HW 06: Object-Oriented Programming, Linked Lists
Due Thu 3/14
9 Mon
3/11
Composition
Lab 07: Linked Lists, Inheritance
Due Wed 3/13
Wed
3/13
Efficiency
Disc 08: Linked Lists, Efficiency
Fri
3/15
Decomposition
10 Mon
3/18
Data Examples
Lab 08: Mutable Trees
Due Wed 3/20
Wed
3/20
No Lecture: Midterm 2 on Thursday
Thu
3/21
Midterm 2 (8pm-10pm)
Fri
3/22
Large Language Models (Pamela Fox) (Optional)
11 Mon
3/25
No Lecture: Spring Break
Wed
3/27
No Lecture: Spring Break
Fri
3/29
No Lecture: Cesar Chavez Day
12 Mon
4/1
Scheme Lab 09: Scheme
Due Wed 4/3
HW 07: Scheme
Due Thu 4/4
Wed
4/3
Scheme Lists Disc 09: Scheme, Scheme Lists
Fri
4/5
Calculator HW 08: Scheme Lists
Due Thu 4/11
13 Mon
4/8
Interpreters Lab 10: Interpreters
Due Wed 4/10
Scheme
Checkpt 1 Mon 4/15
Checkpt 2 Thu 4/18
Due Tue 4/23
Wed
4/10
Programs as Data
Disc 10: Interpreters
Fri
4/12
Macros
HW 09: Programs as Data, Macros
Due Thu 4/18
14 Mon
4/15
SQL
Lab 11: Programs as Data, Macros
Due Wed 4/17
Wed
4/17
Tables
Disc 11: SQL
Fri
4/19
Aggregation
HW 10: SQL
Due Thu 4/25
15 Mon
4/22
Databases
Lab 12: SQL
Due Wed 4/24
Wed
4/24
Final Examples
Disc 12: Final Review
Fri
4/26
Conclusion
HW 11: Finale
Due Thu 5/2
16 Mon
4/29
No Lecture: RRR Week
Wed
5/1
No Lecture: RRR Week
Fri
5/3
No Lecture: RRR Week
17 Tue
5/7
Final (11:30am-2:30pm)