CS 61A: Structure and Interpretation of Computer Programs

Spring 2025: Mon, Wed, Fri 2pm in 150 Wheeler

Announcements: Wednesday, February 19

  • Homework 3 is due Thursday 2/20.
  • An extra video was added to the Lecture 11 playlist at 1:10pm on Wed 2/19. Watch it before discussion.
  • Midterm 2 is scheduled for Tuesday 4/1 8pm-10pm.

    • Homework 6 deadline extended to Thursday 4/3.
    • Lab on Monday 3/31 and Tuesday 4/1 is optional (no need to submit it & attendance is optional).
    • Lecture on Monday 3/31 will be Zoom-only.

Announcements: Friday, February 14

  • Homework 3 is due Thursday 2/20.
  • For Lab 3 next week, since Monday is a holiday:

    • All students still need to submit the lab.
    • Students in Monday labs will automatically get attendance credit.
    • Students in Monday labs are welcome to come to any Tuesday lab or office hours.

Announcements: Wednesday, February 12

  • Project 1: Hog is due Thursday 2/13.

    • Bonus point for completing the project by Wed 2/12.

Announcements: Friday, February 7

  • Project 1: Hog is due Thursday 2/13.

    • Bonus point for completing the project by Wed 2/12.
  • Midterm 1 is Tuesday 2/11 7pm-9pm in various locations.

    • Please read the Midterm 1 Ed post that you received via email.
    • Request alterations for left-handed desks, alternate times and more by Sunday 2/9.
    • Seat assignments will be sent out Monday 2/10.
    • No lecture on Monday 2/10.
    • No lab on Monday 2/10 or Tuesday 2/11.

Announcements: Wednesday, February 5

  • Homework 2 is due Thursday 2/6.
  • Project 1: Hog is due Thursday 2/13.

    • Bonus point for completing the project by Wed 2/12.
  • Midterm 1 is Tuesday 2/11 7pm-9pm in various locations.

    • The study guide will be provided with your exam.
    • You may bring 1 2-sided handwritten sheet of notes that you create yourself.
    • Request alterations for left-handed desks, alternate times and more by Sunday 2/9.
    • Seat assignments will be sent out Monday 2/10.
    • No lecture on Monday 2/10.
    • No lab on Monday 2/10 or Tuesday 2/11.
  • New discussion format option: lecture-style review of discussion questions on Fridays 11-12:30 in Soda 306.

    • You can switch to it on sections.cs61a.org.
    • You can also show up after attending your regular discussion.

Announcements: Monday, February 3

  • Homework 2 is due Thursday 2/6.
  • Project 1: Hog is due Thursday 2/13.

    • Checkpoint due Tuesday 2/4.
    • Bonus point for completing the project by Wed 2/12.
    • Try to finish this week.
    • Don't use copilot or ChatGPT.
  • Midterm 1 is Tuesday 2/11 7pm-9pm in various locations.

  • New discussion format option: lecture-style review of discussion questions on Fridays 11-12:30 in Soda 306.

    • You can switch to it on sections.cs61a.org.
    • You can also show up after attending your regular discussion.

Announcements: Friday, January 31

  • Homework 2 is due Thursday 2/6.
  • Project 1: Hog is due Thursday 2/13.

    • Checkpoint due Tuesday 2/4.
    • Bonus point for completing the project by Wed 2/12.
    • It's a good idea to try to finish next week.
    • Lots of office hours are available next week!
  • Midterm 1 is Tuesday 2/11 7pm-9pm in various locations.

Announcements: Wednesday, January 29

  • Lab 0 & Lab 1 are due Wednesday 1/29 (today)!
  • Homework 1 is due Thursday 1/30 (tomorrow).
  • Project 1: Hog is due Thursday 2/13.

    • Checkpoint due Tuesday 2/4.
    • Bonus point for completing the project by Wed 2/12.
  • You can switch lab & discussion sections until Wed 2/12 on sections.cs61a.org

    • Attendance is required if you stay in regular lab & discussion (recommended!)

Announcements: Monday, January 27

  • Try to complete Lab 0 before coming to lab this week.

    • If you don't finish beforehand, you can finish during your lab period before starting on Lab 1.
  • Attendance for lab is very similar to discussion:

    • Get an arrival number & fill out the form shortly after you arrive.
    • Get a departure number & fill out the form again just before you leave.
    • If you finish early, let your TA know and they will give you a departure number.
  • Homework 1 is due Thursday 1/30 @ 11:59pm.

    • It's best to complete Lab 1 first, including the optional questions.
    • Homework (and only homework) includes the 61a-bot, which helps you find problems with your code.

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
Newton (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
HW 06: Object-Oriented Programming, Linked Lists
Due Thu 4/3
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
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 (Zoom Only)
Lab 08: Mutable Trees
Due Wed 4/2
Tue
4/1
Midterm 2 (8pm-10pm)
Wed
4/2
No Lecture
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)