CS 61A: Structure and Interpretation of Computer Programs

Spring 2023, Instructors: John DeNero, Hany Farid

Friday, April 28

Jump to date
  • Scheme project due Friday, 4/28.
  • Homework 10 Due Tuesday 5/2.
  • Homework 11 Due Thursday 5/4.
  • Final exam Tuesday 5/9 11:30am.

Wednesday, April 26

Jump to date
  • Scheme project due Friday, 4/28.

    • Early submission point for submitting by Thursday, 4/27.
  • Homework 10 Due Tuesday 5/2.
  • Final exam Tuesday 5/9 11:30am.

Monday, April 24

Jump to date
  • Optional Scheme Recursive Art Contest entries due Tuesday 4/25.
  • Scheme project due Friday, 4/28.

    • Checkpoint 2 due Tuesday, 4/25.
    • Early submission point for submitting by Thursday, 4/27.
  • Lecture schedule updated to include Final Examples on Wed 4/26.

Friday, April 21

Jump to date
  • Midterm 2 regrade requests due Friday 4/21.
  • Optional Scheme Recursive Art Contest entries due Tuesday 4/25.
  • Scheme project due Friday, 4/28.

    • Checkpoint 1 due Friday, 4/21.
    • Checkpoint 2 due Tuesday, 4/25.
    • Early submission point for submitting by Thursday, 4/27.

Wednesday, April 19

Jump to date
  • Homework 9 due Thursday 4/20.
  • Midterm 2 regrade requests due Friday 4/21.
  • Optional Scheme Recursive Art Contest entries due Tuesday 4/25.
  • Scheme project due Friday, 4/28.

    • Checkpoint 1 due Friday, 4/21.
    • Checkpoint 2 due Tuesday, 4/25.
    • Early submission point for submitting by Thursday, 4/27.

Monday, April 17

Jump to date
  • Homework 9 due Thursday 4/20.
  • Midterm 2 regrade requests due Friday 4/21.
  • Optional Scheme Recursive Art Contest entries due Tuesday 4/25.
  • Scheme project due Friday, 4/28.

    • Checkpoint 1 due Friday, 4/21.
    • Checkpoint 2 due Tuesday, 4/25.
    • Early submission point for submitting by Thursday, 4/27.

Wednesday, April 5

Jump to date

Monday, April 3

Jump to date

Wednesday, March 22

Jump to date
  • Ants project is due Friday 3/24.

    • Early submission bonus point 3/23.
    • A test was missing from ok --score until 12:32pm Tuesday 3/14! Re-download the project or just replace your proj03.ok.
  • Midterm 2 is Friday 4/7 7pm-9pm

  • Ask us anything during lecture 2pm Friday 3/24 in Wheeler. This session will not be recorded.

Monday, March 20

Jump to date
  • Ants project is due Friday 3/24.

    • Early submission bonus point 3/23.
    • A test was missing from ok --score until 12:32pm Tuesday 3/14! Re-download the project or just replace your proj03.ok.

Friday, March 17

Jump to date
  • Ants project is due Friday 3/24.

    • Checkpoint 1 due Friday 3/17.
    • Checkpoint 2 due Tuesday 3/21.
    • Early submission bonus point 3/23.
    • A test was missing from ok --score until 12:32pm Tuesday 3/14! Re-download the project or just replace your proj03.ok.

Wednesday, March 15

Jump to date
  • Homework 6 is due Thursday 3/16.
  • Ants project is due Friday 3/24.

    • Checkpoint 1 due Friday 3/17.
    • Checkpoint 2 due Tuesday 3/21.
    • Early submission bonus point 3/23.
    • A test was missing from ok --score until 12:32pm Tuesday 3/14! Re-download the project or just replace your proj03.ok.

Monday, March 13

Jump to date
  • All office hours are online only Monday 3/13 and Tuesday 3/14.
  • Homework 6 is due Thursday 3/16.
  • Ants project is due Friday 3/24.

    • Checkpoint 1 due Friday 3/17.
    • Checkpoint 2 due Tuesday 3/21.
    • Early submission bonus point 3/23.

Wednesday, March 8

Jump to date
  • Homework 5 is due Thursday 3/9.
  • No live lecture on Wednesday 3/8

Monday, March 6

Jump to date
  • Homework 5 is due Thursday 3/9.
  • No live lecture on Wednesday 3/8; videos will be posted to cs61a.org.

Friday, February 3

Jump to date
  • Midterm 1 is 7pm-9pm on Monday 2/6.

    • You will receive a seat assignment on Sunday or Monday.
    • You may bring one two-sided sheet of handwritten notes that you create yourself.
    • We will provide the Midterm 1 Study Guide and scratch paper.
    • The Friday 2/3 videos playlist covers different example problems than live lecture.
    • No lecture on Monday 2/6.
    • The midterm 1 exam alteration request form is still open (but no guarantee we can accommodate requests at this point).
  • Project 1: Hog is due Friday 2/10.

    • Checkpoint (Phase 1) due Tuesday 2/7.
    • Project party Tuesday 5pm-7pm in 101B Warren Hall.
    • Earn an early submission bonus point for submitting by Thursday 2/9.

Wednesday, February 1

Jump to date
  • Homework 2 is due Thursday 2/2 @ 11:59pm.
  • Midterm 1 is 7pm-9pm on Monday 2/6 in various locations across campus.

    • Complete the midterm 1 exam alteration request form by Thursday 2/2 @ 11:59pm for DSP accommodations, left-handed desks, alternate times, mask-required rooms, and any other exam-related requests.
    • You may bring one two-sided sheet of handwritten notes that you create yourself.
    • We will provide the Midterm 1 Study Guide and scratch paper.
    • Friday 2/3 lecture will be used for review and practice.
    • Friday 2/3 review playlist (posted already) will be different from what we cover in live lecture.
    • No lecture on Monday 2/6.
    • Exam scores should be released by Wednesday 2/8.
  • Project 1: Hog is due Friday 2/10.

    • Earn an early submission bonus point for submitting by Thursday 2/9.
    • Checkpoint (Phase 1) due Tuesday 2/7.
    • Great practice for the midterm!
  • Optional lecture video: how to use higher-order functions to generate sound.

Monday, January 30

Jump to date
  • Homework 2 is due Thursday 2/2 @ 11:59pm.
  • Please submit all lab assignments, but your Gradescope autograder score on the lab assignment doesn't matter for grading unless you are in mega lab.

    • New self-checkoff form in Lab should save everybody time.
    • Lab assignments are published early in case you want to get started in advance.
  • Midterm 1 is 7pm-9pm on Monday 2/6 in various locations across campus.

    • Complete the midterm 1 exam alteration request form by Thursday 2/2 @ 11:59pm for DSP accommodations, left-handed desks, alternate times, mask-required rooms, and any other exam-related requests.
    • You may bring one two-sided sheet of handwritten notes that you create yourself.
    • We will provide the Midterm 1 Study Guide and scratch paper.
    • Friday 2/3 lecture will be used for review and practice.
    • No lecture on Monday 2/6.
    • Exam scores should be released by Wednesday 2/8.
  • Project 1: Hog is due Friday 2/10.

    • Earn an early submission bonus point for submitting by Thursday 2/9.
    • Checkpoint (Phase 1) due Tuesday 2/7.
    • Great practice for the midterm!

Friday, January 27

Jump to date
  • Homework 2 is due Thursday 2/2 @ 11:59pm.
  • Please submit all lab assignments, but your Gradescope autograder score on the lab assignment doesn't matter for grading unless you are in mega lab.
  • Midterm 1 is 7pm-9pm on Monday 2/6 in various locations across campus.

    • Complete the midterm 1 exam alteration request form by Thursday 2/2 @ 11:59pm for DSP accommodations, left-handed desks, alternate times, mask-required rooms, and any other exam-related requests.
    • You will be assigned a seat, probably on Sunday 2/5.
    • 40 points, and you can recover up to 90% (up to 36 out of 40) by doing well on the final.

Monday, January 23

Jump to date

Friday, January 20

Jump to date
  • Lab 0 is a take-home lab to get you set up. Try it this week!

    • Come to lab section next week if you get stuck.
  • Homework 1 is due Thursday 1/26 @ 11:59pm.

    • Questions 1 & 2 are based on today's lecture.
    • Questions 3 & 4 are based on Monday's lecture.
    • Lab 1 next week is designed to prepare you to complete this homework.
  • Sign up for a lab/discussion section on sections.cs61a.org.

    • More spaces will open up tonight in case you don't have a section or need to switch.
  • Switching courses:

    • You can request to enroll in Data 8 until Sunday 1/22 @ 11:59pm by filling out this form.
    • CS 10 strongly recommends new students join before Friday 1/27 and follow along on cs10.org. Join the waitlist (CalCentral) and fill out the CS 10 enrollment survey. Space is limited.
    • Join the Data C88C waitlist if you wish to enroll; there is a good chance that the waitlist will clear.
  • Here is the archived Fall 2022 website.

Wednesday, January 18

Jump to date
  • Welcome to CS 61A!
  • Ed contains timely course announcements.
  • Discussion section begins this week! Find your section (and make changes) on sections.cs61a.org.
  • Lab 0 is a take-home lab to get you set up. Try it this week!

  • In-person lab section does not begin until Monday 1/23.
  • Here is the archived Fall 2022 website.

Friday, January 13

Jump to date
  • Welcome to CS 61A!
  • Ed contains timely course announcements.
  • Complete the section preference form by 11:59pm Sunday 1/15.
  • CS 61A does not use bCourses.
  • Discussion section begins Wednesday 1/18.
  • Lab section does not begin until Monday 1/23.
  • Here is the archived Fall 2022 website.

Current Assignments

Calendar

Week Date Lecture Textbook Lab & Discussion Links Homework & Project
1 Wed
1/18
Disc 00: Getting Started
Lab 00: Getting Started
Due Wed 1/25
Fri
1/20
HW 01: Functions, Control
Due Thu 1/26
2 Mon
1/23
Lab 01: Functions, Control
Due Wed 1/25
Wed
1/25
Disc 01: Control, Environment Diagrams
Fri
1/27
HW 02: Higher-Order Functions, Lambda Expressions
Due Thu 2/2
3 Mon
1/30
Lab 02: Higher-Order Functions, Lambda Expressions
Due Wed 2/1
Hog
Checkpt Tue 2/7
Due Fri 2/10
Wed
2/1
Disc 02: Environment Diagrams, Higher-Order Functions
Fri
2/3
Lab 03: Midterm Review (Optional)
Due Mon 2/6
4 Mon
2/6
No lecture: Midterm 1 (7pm-9pm)
Wed
2/8
Disc 03: Recursion
Fri
2/10
HW 03: Recursion, Tree Recursion
Due Fri 2/17
5 Mon
2/13
Lab 04: Recursion, Tree Recursion, Python Lists
Due Wed 2/15
Wed
2/15
Disc 04: Tree Recursion, Python Lists Cats
Checkpt Tue 2/21
Due Fri 2/24
Fri
2/17
6 Mon
2/20
No Lecture: President's Day Lab 05: Data Abstraction, Sequences
Due Wed 2/22
Wed
2/22
Disc 05: Trees
Fri
2/24
HW 04: Trees, Data Abstraction
Due Thu 3/2
7 Mon
2/27
Lab 06: Mutability, Iterators
Due Wed 3/1
Wed
3/1
Disc 06: Mutability, Iterators, Generators
Fri
3/3
HW 05: Generators
Due Thu 3/9
8 Mon
3/6
Lab 07: Object-Oriented Programming
Due Wed 3/8
Wed
3/8
Disc 07: Object-Oriented Programming
Fri
3/10
HW 06: Object-Oriented Programming
Due Thu 3/16
9 Mon
3/13
Lab 08: OOP, Inheritance
Due Wed 3/15
Ants
Checkpt 1 Fri 3/17
Checkpt 2 Tue 3/21
Due Fri 3/24
Wed
3/15
Disc 08: OOP, Inheritance, String Representation
Fri
3/17
10 Mon
3/20
Lab 09: Mutable Trees, Efficiency
Due Wed 3/22
Wed
3/22
Disc 09: Linked Lists, Efficiency, Mutable Trees
Fri
3/24
Ask Us Anything (Optional)
HW 07: Linked Lists, Mutable Trees
Due Thu 4/6
11 Mon
3/27
No Lecture: Spring Break
Wed
3/29
No Lecture: Spring Break
Fri
3/31
No Lecture: Spring Break
12 Mon
4/3
Lab 10: Midterm Review (Optional)
Due Wed 4/5
Wed
4/5
Fri
4/7
No lecture: Midterm 2 (7pm-9pm)
13 Mon
4/10
Lab 11: Scheme
Due Wed 4/12
HW 08: Scheme
Due Thu 4/13
Wed
4/12
Disc 11: Scheme, Scheme Lists
Fri
4/14
HW 09: Scheme Lists
Due Thu 4/20

(Optional) Scheme Contest
Due Tue 4/25
14 Mon
4/17
Lab 12: Scheme Lists, Interpreters
Due Wed 4/19
Scheme
Checkpt 1 Fri 4/21
Checkpt 2 Tue 4/25
Due Fri 4/28
Wed
4/19
SQL
Disc 12: Interpreters, SQL
Fri
4/21
15 Mon
4/24
Lab 13: SQL
Due Wed 4/26
HW 10: SQL
Due Tue 5/2
Wed
4/26
Disc 13: Final Review
Fri
4/28
HW 11: Finale
Due Thu 5/4

Scheme Gallery
Due Thu 5/4
16 Mon
5/1
No Lecture: RRR Week
Wed
5/3
No Lecture: RRR Week
Fri
5/5
No Lecture: RRR Week
17 Tue
5/9
Final (11:30am-2:30pm)