CS 61A: Structure and Interpretation of Computer Programs

Fall 2021, Instructors: John DeNero, Pamela Fox

Wednesday, December 22
Jump to date
  • All grades were posted to CalCentral. Congratulations on finishing CS61A!
  • Enjoy your holidays! A cat on holiday
  • (Illustration by TA Jamie Hong)
Friday, December 3
Jump to date
  • Homework 11 due Friday 12/10.
  • The completely optional A+ program form is due Friday 12/10 @ 11:59pm.
  • The 61A Project Showcase is 1pm-3pm (shortened to 2 hours to avoid lunch) on Tuesday 12/7 in Wozniak lounge (430 Soda Hall). Different groups will present 1-2 and 2-3, so come for both halves!
  • The final exam (Thursday 12/16) will include lecture material through Monday 11/22.

    • 50 out of 75 points will cover only midterm 1 & midterm 2 material.
    • You should be able to draw an environment diagram.
    • Complete the final request form by Thursday 12/9 if you have an exam conflict, need a remote exam, or need special seating.
    • See the RRR Week Topical Review Calendar for topical review sessions.
    • The final study guide will be provided, along with the study guides from midterm 1 and midterm 2.
    • You may bring up to 3 sheets of notes.
Wednesday, December 1
Jump to date
  • Homework 10 due Thursday 12/2.
  • Completely optional ...

  • The final exam (Thursday 12/16) will include lecture material through Monday 11/22.
  • All students are invited to the 61A Project Showcase 12pm-3pm on Tuesday 12/7.
  • Congratulations to the CATS contest winners!
Monday, November 29
Jump to date
  • Homework 10 due Thursday 12/2.
  • Completely optional ...

  • The final exam (Thursday 12/16) will include lecture material through Monday 11/22.
  • All students are invited to the 61A Project Showcase 12pm-3pm on Tuesday 12/7.
  • Lecture on Monday 11/29 will not have a playlist. (Join the Zoom or watch the Zoom recording).
Monday, November 22
Jump to date
  • Scheme project due Tuesday 11/23.

    • Early submission bonus point for finishing by Monday 11/22.
  • Lab 13 due Tuesday 11/22 @ 11:59pm.

  • Extra office hours this week:

  • Homework 10 due Thursday 12/2.
  • Completely optional ...

  • The final exam (Thursday 12/16) will include lecture material through Monday 11/22.
  • John DeNero's online office hours Monday 11/22 are cancelled.
Friday, November 19
Jump to date
  • Scheme project due Tuesday 11/23.

    • Checkpoint 2 due Friday 11/19.
    • Early submission bonus point for finishing by Monday 11/22.
  • Lab 13 on SQL:

    • Help us create a dataset for lab: go.cs61a.org/lab13-survey
    • Some labs next week (11/22-11/24) will be moved online or converted to office hours.
  • Completely optional ...

    • Scheme Recursive Art Contest due Monday 11/29 @ 11:59pm.
    • Participation form for the 61A Project Showcase 12pm-3pm 12/7 due Wednesday 12/1 @ 11:59pm (extended).
    • A+ program form due Friday 12/10 @ 11:59pm.
Wednesday, November 17
Jump to date
  • Homework 9 due Thursday 11/18 @ 11:59pm.
  • Scheme project due Tuesday 11/23.

    • Checkpoint 2 due Friday 11/19.
  • Pamela will lecture on Zoom today, Wed 11/17. (The strike was called off!)
  • John's office hours this Thursday 11/18 are cancelled.
  • Lab 13 on SQL:

    • Help us create a dataset for lab: go.cs61a.org/lab13-survey
    • Some labs next week (11/22-11/24) will be moved online or converted to office hours.
Monday, November 15
Jump to date
  • Homework 9 due Thursday 11/18 @ 11:59pm.
  • Scheme project due Tuesday 11/23.

    • Checkpoint 1 due Tuesday 11/16; Checkpoint 2 due Friday 11/19.
  • Pamela's in-person office hours will be on Zoom today. 🤧
  • Due to a likely lecturer strike scheduled for Wednesday and Thursday, Pamela will not be teaching a Zoom session. John's pre-recorded lecture playlist will be available instead.
  • Lecture 33 playlist will be posted late (probably Tuesday 11/16).
Friday, November 12
Jump to date
  • Homework 8 due Friday 11/12 @ 11:59pm.
  • No in-person discussion sections this week (because Thursday 11/11 is a holiday):

    • All students will receive attendance credit for this week's discussion section.
  • Scheme project due Tuesday 11/23.

    • Checkpoint 1 due Tuesday 11/16; Checkpoint 2 due Friday 11/19.
  • Completely optional 61A project showcase 12-3pm Tuesday 12/7 (RRR week).
  • Lecture 32 playlist will be posted Sunday 11/14 instead of Friday 11/12.
Wednesday, November 10
Jump to date
  • Homework 8 due Friday 11/12 @ 11:59pm.
  • No in-person discussion sections this week (because Thursday 11/11 is a holiday):

    • Zoom sections Wednesday 11/10 3:30-5, 5-6:30, and 6:30-8.
    • A video walkthrough of the discussion worksheet will be posted.
    • All students will receive attendance credit for this week's discussion section.
  • Scheme project due Tuesday 11/23.

    • Checkpoint 1 due Tuesday 11/16; Checkpoint 2 due Friday 11/19.
  • Completely optional 61A project showcase 12-3pm Tuesday 12/7 (RRR week).

    • There is no course credit for participating (and no extra credit).
    • There will be awards for great independent projects related to CS 61A.
    • Requests to participate are due Monday 11/29.
  • Information on A+ grades is posted.

    • You must have at least 300 points to be eligible for an A+.
    • Write a small but interesting piece of code related to CS 61A.
    • Submit it by 11:59pm Friday 12/10 (RRR week)
    • Submission form, rubric, and examples are coming soon.
  • Lecture 32 playlist will be posted Sunday 11/14 instead of Friday 11/12.
Monday, November 8
Jump to date
  • Midterm 2 regrade requests due Monday 11/8 @ 11:59pm.
  • Homework 8 due Friday 11/12 @ 11:59pm.
  • No in-person discussion sections this week (because Thursday 11/11 is a holiday):

    • Zoom sections Wednesday 11/11 3:30-5, 5-6:30, and 6:30-8.
    • A video walkthrough of the discussion worksheet will be posted.
    • All students will receive attendance credit for this week's discussion section.
  • Project 4 (Scheme) release date and due date have been extended by a day:

    • Planned release on Tuesday 11/9 (probably very close to 11:59pm).
    • Due Tuesday 11/23 @ 11:59pm.
    • Updated to be less confusing (we think).
Monday, October 25
Jump to date
  • Midterm 2 is 7pm-9pm Wednesday 10/27.
  • Lab is optional this week; everyone will get credit.
  • No discussion section this week: Wednesday 10/27 through Friday 10/29.
  • No office hours after 5pm Wednesday or on Thursday & Friday (except for advising office hours).
  • Today's lecture is a video of Alan Kay lecturing about user interfaces.
  • No lecture Wednesday 10/27.
  • No lecture Friday 10/29, but instructors will hold an unrecorded AMA on Zoom 2:10-3pm Friday 10/29.
Week 10 Class Material
  • Lecture 25: Users (Video)
  • Lecture 26: Instructor AMA (Zoom)
  • Week 10 Readings:
Friday, October 22
Jump to date
  • The Ants project is due Friday 10/22 @ 11:59pm.
  • The (completely optional) CATS contest is due Friday 10/22 @ 11:59pm
  • Cats Composition Revisions deadline extended to Friday 10/29 @ 11:59pm.
  • Midterm 2 is 7pm-9pm Wednesday 10/27.

    • Please read this Piazza post regarding logistics.
    • To request a left-handed seat, remote exam, or alternate exam, fill out this form by Friday 10/22 @ 11:59pm.
Wednesday, October 20
Jump to date
  • The Ants project is due Friday 10/22 @ 11:59pm.

    • Early submission bonus point: submit everything by Thursday 10/21.
  • Homework 6 is due Thursday 10/21 @ 11:59pm.
  • The (completely optional) CATS contest is due Friday 10/22 @ 11:59pm
  • Cats Composition Revisions due Friday 10/29 @ 11:59pm.
  • Midterm 2 is 7pm-9pm Wednesday 10/27.

    • Please read this Piazza post regarding logistics.
    • To request a left-handed seat, remote exam, or alternate exam, fill out this form by Friday 10/22 @ 11:59pm.
Monday, October 18
Jump to date
  • The Ants project is due Friday 10/22 @ 11:59pm.

    • Complete Phases 2 & 3 by Tuesday 10/19.
    • Early submission bonus point: submit everything by Thursday 10/21.
  • Homework 6 is due Thursday 10/21 @ 11:59pm.
  • The (completely optional) CATS contest is due Friday 10/22 @ 11:59pm
  • Midterm 2 is 7pm-9pm Wednesday 10/27.

    • Please read this Piazza post regarding logistics.
    • To request a left-handed seat, remote exam, or alternate exam, fill out this form by Friday 10/22 @ 11:59pm.
    • The exam covers material through today's lecture (Lecture 22).
  • Pamela's in-person office hours are canceled on Monday, Oct. 18.
Friday, October 15
Jump to date
  • The Ants project is due Friday 10/22 @ 11:59pm.

    • Complete Phase 1 by Friday 10/15.
    • Complete Phases 2 & 3 by Tuesday 10/19.
    • Early submission bonus point: submit everything by Thursday 10/21.
  • Homework 6 is due Thursday 10/21 @ 11:59pm.
  • Midterm 2 is 7pm-9pm Wednesday 10/27.

    • Covers material through Lecture 22 on Monday 10/18.
  • The (completely optional) CATS contest is due Friday 10/22 @ 11:59pm
Wednesday, October 13
Jump to date
  • Homework 5 due Thursday 10/14 @ 11:59pm.
  • The Ants project is due Friday 10/22 @ 11:59pm.

    • Complete Phase 1 by Friday 10/15.
    • Complete Phases 2 & 3 by Tuesday 10/19.
    • Early submission bonus point: submit everything by Thursday 10/21.
  • The (completely optional) CATS contest is due Friday 10/22 @ 11:59pm
  • Extra Lecture 6 (Thursday 10/14 9:10am-10am) will be online only: go.cs61a.org/extra-lecture
  • John DeNero's in-person office hours are cancelled on Thursday 10/14.
  • Some TAs are offering advising appointments to chat about 61A, CS, Data Science, Berkeley, or anything at all.

    • Feel free to book an appointment with anyone you think would be able to answer your questions.
    • Don't know what to talk about? You're welcome to just book a slot and think of things on the spot!
Monday, October 11
Jump to date
  • Homework 5 due Thursday 10/14 @ 11:59pm.
  • The Ants project is due Friday 10/22 @ 11:59pm.

    • Complete Phase 1 by Friday 10/15.
    • Complete Phases 2 & 3 by Tuesday 10/19.
    • Early submission bonus point: submit everything by Thursday 10/21.
    • To earn extra credit (EC) and the early bonus point, finish the EC problem by 10/21 too.
  • The (completely optional) CATS contest is due Friday 10/22 @ 11:59pm.
Wednesday, September 29
Jump to date
  • Cats project due Friday 10/1 @ 11:59pm.

    • Complete and submit the whole project by Thursday 9/30 @ 11:59pm to earn an early submission bonus point.
    • Project party Wednesday 9/29 6:30pm-7:30pm in Cory 247.
  • Hog Composition Revisions due Friday 10/1 @ 11:59pm.
Monday, September 27
Jump to date
  • Cats project due Friday 10/1 @ 11:59pm.

    • Submit Phase 1 by Tuesday 9/28.
    • Complete and submit the whole project by Thursday 9/30 @ 11:59pm to earn an early submission bonus point.
    • Project party Wednesday 9/29 6:30pm-7:30pm in Cory 247.
  • Hog Composition Revisions due Friday 10/1 @ 11:59pm.

  • Congratulations to the winners of the completely optional Hog contests!
Friday, September 17
Jump to date
  • Two completely optional contests due Monday 9/20 @ 11:59pm:

  • Midterm 1 regrade requests due Wednesday 9/22 @ 11:59pm.
  • Homework 3 due Thursday 9/23 @ 11:59pm.
  • All non-advising OH are cancelled this Thursday and Friday. Today's OH (11am-2pm on Zoom, 4pm-6pm in Cory 293) will be geared towards post-midterm advising.

  • If you lost an item during the midterm, we may have found and handed it over to the Soda Front Desk. You can pick it up there anytime M-F 8a-12p, 1p-4p.
Wednesday, September 15
Jump to date
  • Two completely optional contests due Monday 9/20 @ 11:59pm:

  • Midterm 1 regrade requests due Wednesday 9/22 @ 11:59pm.
  • Join a CS Mentoring section if you want extra weekly practice.
  • All non-advising OH are cancelled this Thursday and Friday. Today's OH (11am-2pm on Zoom, 4pm-6pm in Cory 293) will be geared towards post-midterm advising.

  • If you lost an item during the midterm, we may have found and handed it over to the Soda Front Desk. You can pick it up there anytime M-F 8a-12p, 1p-4p.
Friday, September 10
Jump to date
  • Project 1: Hog is due Friday 9/10 @ 11:59pm.
  • Midterm 1 is 8pm-10pm Monday 9/13.

    • See the logistics post on Piazza.
    • Seats will be assigned on Sunday 9/12 (probably in the evening).
    • Fill out this form by Friday 9/10 @ 11:59pm (but preferably earlier) to request a special seat, remote exam, or alternate time.
  • No lecture on Monday 9/13.
  • No lab next week (Monday 9/13 through Wednesday 9/15).
  • No assignments due next week.
  • Two completely optional contests related to the Hog project:

Wednesday, September 8
Jump to date
  • Project 1: Hog is due Friday 9/10 @ 11:59pm.

    • Complete and submit the whole project by Thursday 9/9 @ 11:59pm to earn an early submission bonus point.
    • Only one partner submits, then marks the other on okpy.org.
  • Homework 2 is due Thursday 9/9 @ 11:59pm.
  • Midterm 1 is 8pm-10pm Monday 9/13.

    • Seats will be assigned on Sunday 9/12 (probably in the evening).
    • Fill out this form by Friday 9/10 @ 11:59pm (but preferably earlier) to request a special seat, remote exam, or alternate time.
    • Covers content through Friday 9/3.
    • We will provide scratch paper and the Midterm 1 Study Guide.
    • You may bring 1 2-sided sheet of notes.
Friday, September 3
Jump to date
  • Project 1: Hog is due Friday 9/10 @ 11:59pm.

    • Complete and submit Phase 1 by Tuesday 9/7 @ 11:59pm to receive the checkpoint.
    • Complete and submit the whole project by Thursday 9/9 @ 11:59pm to earn an early submission bonus point.
    • You may work with a partner.
    • Only one partner submits, then marks the other on okpy.org.
  • Homework 2 is due Thursday 9/9 @ 11:59pm.

    • It's quite short; just long enough to help you prepare for Midterm 1.
  • Midterm 1 is 8pm-10pm Monday 9/13.

    • Covers content through Chapter 1.6 (today's lecture).
    • Exam logistics will be posted before lecture on Wednesday 9/8.
Wednesday, September 1
Jump to date
  • Homework 1 is due Thursday 9/2 @ 11:59pm.

    • Come to office hours (drop-in help sessions) if you're stuck.
    • Homework party Wednesday 9/1 6:30pm-8pm in 247 Cory.
  • Project 1: Hog is due Friday 9/10 @ 11:59pm.

    • Complete and submit Phase 1 by Tuesday 9/7 @ 11:59pm to receive the checkpoint.
    • Complete and submit the whole project by Thursday 9/9 @ 11:59pm to earn an early submission bonus point.
    • You may work with a partner.
    • Only one partner submits, then marks the other on okpy.org.
  • Extra lectures are on Thursdays 9am-10am in 20 Social Science.

    • You can receive credit for a 1-unit P/NP course (CS 194-175). Attend for details.
    • You can also join via Zoom.
Monday, August 30
Jump to date
  • Lab 0 and Lab 1 are due Wednesday 9/1 @ 11:59pm.

    • Many students will complete them both during lab section.
  • Homework 1 is due Thursday 9/2 @ 11:59pm.
  • Lots of office hours (drop-in help sessions) are available this week.

    • Homework party Wednesday 9/1 6:30pm-8pm in 247 Cory.
  • Extra lectures are on Thursdays 9am-10am, location TBD (but probably in-person only).

    • These extra lectures won't help you do well in 61A; they're just extra topics for fun.
    • We'll occasionally discuss "just for fun" homework problems there.
    • You can receive credit for a 1-unit P/NP course (CS 198). Attend the extra lecture for details.
Friday, August 27
Jump to date
  • Lab 0 is released and is due next Wednesday, 9/1. It is optional (and doesn't count for points), but is highly recommended.
  • Lab 1 will be posted Monday 8/30 and is due Wednesday 9/1 @ 11:59pm.

    • Go to lab section and try to finish the lab there.
    • You can work with other students on the lab assignment, but make sure you understand the solutions.
  • Homework 1 is due Thursday 9/2 @ 11:59pm. Questions 4-6 depend on lecture 3.
  • Live Zoom lectures by Pamela (2:10pm MWF) and video lectures by John (posted around noon MWF) contain the same content but different examples.
Wednesday, August 25
Jump to date
  • Welcome to CS 61A!
  • The first lecture will be today, Wednesday, at 2pm. All live lectures will be held over Zoom.
  • Lab 00 is released and is due next Wednesday, 9/1. It is optional (and doesn't count for points), but is highly recommended.
  • Discussion 00 will take place this week! Attendance may be taken, but attendance this week will not count toward course participation credit. You will still need to attend at least 5 discussions after this week to earn full participation points.
  • Sign up for a discussion and check your section time and location on sections.cs61a.org.
  • Technical Office Hours will be held this week on Zoom only. During the following times, feel free to join the OH Queue for help with Lab 00: Thursday (10am-6pm, 7pm-9pm) or Friday (10am-2pm, 3pm-4pm)
Friday, August 20
Jump to date
  • Welcome to CS 61A!
  • Join Piazza for announcements and answers to your questions.
  • The lecture and assignment schedule will appear below when it's ready.
  • The first lecture will be 2:10pm-3pm Wednesday 8/25 on Zoom (@berkeley.edu login required). Please attend, but it will be recorded and posted to this site if you miss it.
  • The Summer 2021 website has moved to su21.cs61a.org.
Week Date Lecture Textbook Lab & Discussion Links Homework & Project
1 Wed
8/25
Disc 00: Getting Started

Lab 00: Getting Started (Optional)
Due Wed 9/1
Fri
8/27
HW 01: Control
Due Thu 9/2
2 Mon
8/30
Lab 01: Variables & Functions, Control
Due Wed 9/1
Wed
9/1
Disc 01: Control, Environment Diagrams
Hog
Checkpt Tue 9/7
Due Fri 9/10
Fri
9/3
HW 02: Higher-Order Functions
Due Thu 9/9
3 Mon
9/6
No Lecture: Labor Day Lab 02: Higher-Order Functions, Lambda Expressions
Due Wed 9/8
Wed
9/8
Disc 02: Higher-Order Functions, Self Reference
(Optional) Hog Strategy Contest
Due Mon 9/20

(Optional) Hog Dice Design Contest
Due Mon 9/20
Fri
9/10
Lab 03: Midterm Review (Optional)
Due Mon 9/13
4 Mon
9/13
Midterm 1 (8pm-10pm)
Wed
9/15
Disc 03: Recursion
Fri
9/17
HW 03: Recursion, Tree Recursion
Due Thu 9/23
5 Mon
9/20
Lab 04: Recursion, Tree Recursion, Python Lists
Due Wed 9/22
Wed
9/22
Disc 04: Tree Recursion, Python Lists
Cats
Checkpt Tue 9/28
Due Fri 10/1
Fri
9/24
6 Mon
9/27
Lab 05: Python Lists, Trees
Due Wed 9/29
Wed
9/29
Disc 05: Trees, Data Abstraction, Sequences
Fri
10/1
HW 04: Data Abstraction, Trees
Due Thu 10/7
7 Mon
10/4
Lab 06: Mutability, Iterators
Due Wed 10/6
Wed
10/6
Disc 06: Mutability, Iterators and Generators
Fri
10/8
HW 05: Iterators and Generators
Due Thu 10/14

(Optional) Cats Contest
Due Mon 10/25
8 Mon
10/11
Lab 07: Object-Oriented Programming
Due Wed 10/13
Ants
Checkpt 1 Fri 10/15
Checkpt 2 Tue 10/19
Due Fri 10/22
Wed
10/13
Disc 07: Object-Oriented Programming, String Representation
Fri
10/15
HW 06: Object-Oriented Programming, Linked Lists
Due Thu 10/21
9 Mon
10/18
Lab 08: Linked Lists, Mutable Trees
Due Wed 10/20
Wed
10/20
Disc 08: Linked Lists, Trees
Fri
10/22
10 Mon
10/25
Lab 09: Midterm Review (Optional)
Due Wed 10/27
Wed
10/27
Midterm 2 (7pm-9pm)
Fri
10/29
11 Mon
11/1
Lab 10: Scheme
Due Wed 11/3
HW 07: Scheme
Due Thu 11/4
Wed
11/3
Disc 10: Scheme, Scheme Lists
Fri
11/5
HW 08: Scheme Lists
Due Fri 11/12
12 Mon
11/8
Lab 11: Interpreters
Due Wed 11/10
Wed
11/10
Disc 11: Interpreters
Scheme
Checkpt 1 Tue 11/16
Checkpt 2 Fri 11/19
Due Tue 11/23
Fri
11/12
HW 09: Regular Expressions
Due Thu 11/18

Scheme Challenge
Checkpt Fri 11/19
Due Tue 11/23
13 Mon
11/15
Lab 12: Regular Expressions, BNF
Due Wed 11/17
Wed
11/17
SQL
Disc 12: Regular Expressions, BNF, SQL
(Optional) Scheme Contest
Due Mon 11/29
Fri
11/19
HW 10: BNF, SQL
Due Thu 12/2
14 Mon
11/22
Lab 13: SQL
Due Tue 11/23
Wed
11/24
No Lecture: Thanksgiving
Fri
11/26
No Lecture: Thanksgiving
15 Mon
11/29
Lab 14: Final Review
Due Wed 12/1
Wed
12/1
Disc 14: Final Review
Fri
12/3
HW 11: Finale
Due Fri 12/10

Scheme Gallery
Due Fri 12/10
16 Mon
12/6
No Lecture: RRR Week
Wed
12/8
No Lecture: RRR Week
Fri
12/10
No Lecture: RRR Week
17 Thu
12/16
Final (3pm-6pm)