CS 61A: Structure and Interpretation of Computer Programs

Spring 2022, Instructor: Pamela Fox

Wednesday, May 18

Jump to date
  • All grades were posted to CalCentral. Congratulations on finishing CS61A!
  • Enjoy your summer! Two cats on a sunny day
  • (Illustration by TA Jamie Hong)

Thursday, April 28

Jump to date
  • We will release Homework 9 on Friday before lecture.
  • Homework 8 is due Thursday 4/28 @ 11:59pm.
  • We will send a Piazza post on Friday about final exam logistics, which will include an exam alterations form (as usual).

Week 15 Class Material

Wednesday, April 27

Jump to date
  • We will send a Piazza post on Wednesday or Thursday about final exam logistics, which will include an exam alterations form (as usual).
  • Homework 8 is due Thursday 4/28 @ 11:59pm.
  • The optional Scheme art contest is due Wednesday 4/27 @ 11:59pm.

Week 15 Class Material

Monday, April 25

Jump to date
  • We will send a Piazza post on Wednesday or Thursday about final exam logistics, which will include an exam alterations form (as usual).
  • Homework 8 is due Thursday 4/28 @ 11:59pm.
  • Scheme project is due Tuesday 4/26 @ 11:59pm. You get 1 EC point for submitting by Monday instead. There is also a 2 pt EC question available; submit that by Monday to maximize your points.
  • The optional Scheme art contest is due Wednesday 4/27 @ 11:59pm.

Week 15 Class Material

Friday, April 22

Jump to date
  • As announced on Piazza, we made some adjustments due to the disruption on campus on Thursday:

    • The deadline for Homework 7 is extended until Friday 4/22 @ 11:59pm.
    • All students will receive credit for this week's discussion. If you weren't able to make a section, we still recommend going through the worksheet and/or watching the recorded remote section, since this discussion provides guided practice with BNF.
  • Homework 8 is released and due Thursday 4/28 @ 11:59pm.
  • Scheme project is due Tuesday 4/26 @ 11:59pm. You get 1 EC point for submitting by Monday instead. There is also a 2 pt EC question available; submit that by Monday to maximize your points.
  • The optional Scheme art contest is due Wednesday 4/27 @ 11:59pm.

Week 14 Class Material

Thursday, April 21

Jump to date
  • As announced on Piazza, we've made some adjustments due to the disruption on campus on Thursday:

    • The deadline for Homework 7 is extended until Friday 4/22 @ 11:59pm.
    • All students will receive credit for this week's discussion. We still strongly encourage live attendance or watching the recorded remote session, since this discussion gives you guided practice with BNF.
  • Scheme project is due Tuesday 4/26 @ 11:59pm. You get 1 EC point for submitting by Monday instead. There is also a 2 pt EC question available; submit that by Monday to maximize your points.
  • The optional Scheme art contest is due Wednesday 4/27 @ 11:59pm.

Week 14 Class Material

Wednesday, April 20

Jump to date
  • Lab 13 is due Wednesday 4/20 @ 11:59pm.
  • Homework 7 is due Thursday 4/21 @ 11:59pm.
  • Scheme project is due Tuesday 4/26 @ 11:59pm. You get 1 EC point for submitting by Monday instead. There is also a 2 pt EC question available; submit that by Monday to maximize your points.
  • The optional Scheme art contest is due Wednesday 4/27 @ 11:59pm.

Week 14 Class Material

Monday, April 18

Jump to date
  • The optional Scheme art contest is released and due Wednesday 4/27 @ 11:59pm.
  • The departmental course evaluation form is open. For the GSI form, please only evaluate the GSIs you've worked with, and don't mark anything for the GSIs you haven't.
  • Homework 7 is due Thursday 4/21 @ 11:59pm.
  • Scheme project parts 2 & 3 are due Tuesday 4/19 @ 11:59pm.

Week 14 Class Material

Friday, April 8

Jump to date
  • Scheme project is released.

    • Part 1 are due Tuesday 4/12 @ 11:59pm.
    • Parts 2 & 3 are due Tuesday 4/19 @ 11:59pm.
    • All parts are due Tuesday 4/26 @ 11:59pm. EC for submitting Monday 4/25.
    • The project includes one 2-pt EC problem (discussed in today's lecture).

Wednesday, April 6

Jump to date
  • Scheme project is released.

    • Part 1 are due Tuesday 4/12 @ 11:59pm.
    • Parts 2 & 3 are due Tuesday 4/19 @ 11:59pm.
    • All parts are due Tuesday 4/26 @ 11:59pm. EC for submitting Monday 4/25.
    • The project includes one 2-pt EC problem (discussed in today's lecture).
  • For those students who want an additional challenge, Scheme challenge can be attempted instead, for the same amount of points. However, you should not expect much assistance from staff if you choose to complete this version of the project. You can always switch to the standard version if you get stuck.
  • There is now a written walkthrough guide and walkthrough videos available for MT2. Make sure you understand everything you missed before our final exam.
  • Lab 11 is released and due Wednesday 4/6 @ 11:59pm.
  • Homework 6 is released and due Thursday 4/7 @ 11:59pm.

Friday, March 18

Jump to date
  • Midterm 2 grades will hopefully be released later tonight.
  • Keep an eye out for Magic: The Lambda-ing, a mini-project that you can complete over break for extra credit if you'd like.

Wednesday, March 16

Jump to date
  • Lab 8 is due Wednesday 3/16 @ 11:59 PT. The solutions are already released, so you can look at them after finishing the problems to help you understand our approach to the solutions.
  • There will not be any discussions this week, and there will be no office hours on Thursday and Friday. If you have questions while studying past exams, please bring them to earlier office hours or post on Piazza.
  • Midterm 2 will be held in-person on Thursday 3/17 8pm-10pm.

Monday, March 14

Jump to date
  • There will be Lab this week. There will not be any discussions this week, and there will be no office hours on Thursday and Friday. If you have questions while studying past exams, please bring them to earlier office hours or post on Piazza.
  • Midterm 2 will be held in-person on Thursday 3/17 8pm-10pm.

  • Homework 5 is due Tuesday 3/15 @ 11:59 PT. The homework also contains a midsemester survey (that you can start sooner). Please fill this out to get the point for Q1 as well as to help us make short-term changes to improve your experience in 61A.

Friday, March 11

Jump to date
  • Today's lecture is the last new topic that's in scope for the exam. The lectures next Monday and Wednesday will review previous topics that are in scope for the exam, and the lecture (after the midterm) on Friday will be an optional topic that shows a useful application of concepts you've learned so far.
  • Midterm 2 will be held in-person on Thursday 3/17 8pm-10pm.

    • Read this Piazza post for exam logistics, scope, and how to prepare.
    • To request a left-handed/aisle seat, remote exam, or alternate exam, fill out the alterations form by Sunday 3/13 11:59pm PT (Daylight Time).
  • Homework 5 is due Tuesday 3/15 @ 11:59 PT. The homework also contains a midsemester survey (that you can start sooner). Please fill this out to get the point for Q1 as well as to help us make short-term changes to improve your experience in 61A.

Wednesday, March 9

Jump to date
  • Midterm 2 will be held in-person on Thursday 3/17 8pm-10pm.

    • Read this Piazza post for exam logistics, scope, and how to prepare.
    • To request a left-handed/aisle seat, remote exam, or alternate exam, fill out the alterations form by Sunday 3/13 11:59pm PT (Daylight Time).
    • New! The exam will also include a debugging section, which hasn’t appeared on many exams in the past. We compiled some practice problems for you to help you prepare for this. Here are just the problems, and here are the problems with solutions.
  • Lab 7 is released and due Wednesday 3/9 @ 11:59 PT.
  • Homework 5 is due Tuesday 3/15 @ 11:59 PT. We recommend completing Lab 7 before starting the homework. The homework also contains a midsemester survey (that you can start sooner). Please fill this out to get the point for Q1 as well as to help us make short-term changes to improve your experience in 61A.
  • Ants is due Thursday 3/10. Submit by 3/9 for 1 EC point.

Monday, March 7

Jump to date
  • Midterm 2 will be held in-person on Thursday 3/17 8pm-10pm.

    • Read this Piazza post for exam logistics, scope, and how to prepare.
    • To request a left-handed/aisle seat, remote exam, or alternate exam, fill out the alterations form by Sunday 3/13 11:59pm PT (Daylight Time).
  • Lab 7 is released and due Wednesday 3/9 @ 11:59 PT.
  • Homework 5 is due Tuesday 3/15 @ 11:59 PT. We recommend completing Lab 7 before starting the homework. The homework also contains a midsemester survey (that you can start sooner). Please fill this out to get the point for Q1 as well as to help us make short-term changes to improve your experience in 61A.
  • Ants phase 2 is due Tuesday 3/8, and all phases are due Thursday 3/10. Submit by 3/9 for 1 EC point.

Friday, March 4

Jump to date
  • Homework 5 is released and due Tuesday 3/15 @ 11:59 PT. We recommend completing Lab 7 before starting the homework. The homework also contains a midsemester survey (that you can start sooner). Please fill this out to get the point for Q1 as well as to help us make short-term changes to improve your experience in 61A.
  • Ants phase 2 is due Tuesday 3/8, and all phases are due Thursday 3/10. Submit by 3/9 for 1 EC point.

Wednesday, March 2

Jump to date
  • Be on the lookout for an email/Piazza-blast containing Midterm 2 logistics this weekend. This will include a form to request a special seating arrangement or an online exam.
  • Homework 4 is due Thursday 3/3 @ 11:59 PT.

    • ⚠️ If you downloaded it before noon PT on Saturday, please follow the instructions in Piazza @1423 to make sure all your tests passed.
  • Lab 6 is due Wednesday 3/2 @ 11:59 PT.
  • Ants phase 1 is due Thursday 3/3, phase 2 is due Tuesday 3/8, and all phases are due Thursday 3/10. Submit by 3/9 for 1 EC point.

Monday, February 28

Jump to date
  • Homework 4 is due Thursday 3/3 @ 11:59 PT.

    • ⚠️ If you downloaded it before noon PT on Saturday, please follow the instructions in Piazza @1423 to make sure all your tests passed.
  • Lab 6 is due Wednesday 3/2 @ 11:59 PT.
  • Ants is released! 🐜 🐜 🐜 Phase 1 is due Thursday 3/3, phase 2 is due Tuesday 3/8, and all phases are due Thursday 3/10. Submit by 3/9 for 1 EC point.
  • Please keep up to date with the lecture content. We offer the live lecture both in Wheeler and over Zoom, recordings of the live lecture (uploaded ~6pm), and John DeNero's previously recorded videos. The lab/discussion often builds off the most recent lecture's topic, so you should have already seen that lecture before showing up to your section.

Friday, February 25

Jump to date
  • Please fill out this group matching form if you'd like to find group mates for labs, discussions, and projects. More info on Piazza.
  • Homework 4 is released and due Thursday 3/3 @ 11:59 PT.
  • Reminder: If you need an extension for an assignment due to extenuating circumstances, please fill out the extension form linked from our contact page. Extensions are not given for extra credit.
  • We made a few adjustments to the calendar for the rest of the semester to time assignments better. We removed the Homework 6 that was before the midterm, and instead added an additional later homework on Scheme.

Monday, February 14

Jump to date
  • Cats is released. Checkpoint 1 is due Thursday 2/17 @ 11:59 PT and the whole project is due Thursday 2/24 @ 11:59 PT.
  • Lab 4 is released and due Wednesday 2/16 @ 11:59pm.
  • Homework 3 is released and due Thursday 2/17 @ 11:59 PT.

    • If you downloaded it before today, please follow the instructions on top to copy over a new hw03.ok file.
  • Exam regrade requests are due 2/16 @ 11:59 PT.

Friday, February 11

Jump to date
  • When you sign up for an OH appointment, please show up! If you realize you no longer need the help, cancel your appointment to make room for other students that need help. 🙏🏼
  • Homework 2 Recovery session is today (Friday 2/11) @ 6pm PT. Details on the Piazza post.
  • Homework 3 is released and due Thursday 2/17 @ 11:59 PT.
  • Exam regrade requests are due 2/16 @ 11:59 PT.

Wednesday, February 9

Jump to date
  • There is a lecture today and discussion sections this week (starting today).
  • We've released the midterm grades. Please read the email from Gradescope (or the Piazza post). Regrade requests are due 2/16 @ 11:59 PT.
  • For room scheduling reasons, Midterm 2 on March 17th will now take place 8pm-10pm (instead of 7pm-9pm). Please adjust your calendars accordingly.
  • Hog project is released and all phases are due Thursday 2/10 @ 11:59 PT. Submit by Wednesday 2/9 for 1 point EC.

Monday, February 7

Jump to date
  • There is no lecture today or lab this week. Lecture and discussion resume Wednesday.
  • Midterm 1 is today, Monday 2/7, from 8pm-10pm. Please read the announcements post thoroughly. You should have received an email containing your exam time and proctoring information by now.

Friday, February 4

Jump to date
  • Many more in-person office hour slots will be available next week! 🎉 Check out the OH calendar next week.
  • There are lots more spots available in CSM sections. Read the student information and expectations and sign up here!
  • Hog project is released and all phases are due Thursday 2/10.
  • Reminder: Midterm 1 is on Monday, 2/7, from 8pm-10pm. Please read this post in its entirety to familiarize yourself with exam logistics. If you're taking the exam remotely, please also read this post.

    • Seating and exam assignments have been released via email -- if you didn't get yours, please reach out to cs61a@berkeley.edu ASAP.

Wednesday, February 2

Jump to date
  • We have temporarily lost some of our office hours rooms. For now, we'll offer "OH parties" from Tuesdays-Fridays, 9am-11am, and 1:1 OH Zoom appointments in the afternoons/evenings. Learn more on the office hours page.
  • Lab 2 is released and due Wednesday 2/2 @ 11:59pm.
  • Homework 2 is released and due Thursday 2/3 @ 11:59pm.
  • Hog project is released and due Thursday 2/10. However, checkpoint 1 is due Thursday 2/3, so pace yourself accordingly so you can complete both HW2 and Hog Checkpoint 1 in time.
  • Reminder: Midterm 1 is on Monday, 2/7, from 8pm-10pm. Please read this post in its entirety to familiarize yourself with exam logistics.

    • If you need to request a special seat (including desks for left-handed writers), or to take the remote or alternate exam, fill out this form by Thursday, 2/3, 11:59pm.

Monday, January 31

Jump to date
  • We are back on campus this week!

    • Lectures will be in Wheeler 150, with recordings made available a few hours after. We will also attempt to Zoom (from link in calendar below) but it's possible that will not work.
    • For lab discussion/sections: only the "remote" section will remain on Zoom, all other sections are in-person. Find your room on sections.cs61a.org.
    • UPDATED: For office hours, we'll offer "OH parties" from Tuesdays-Fridays, 9am-11am, and 1:1 OH Zoom appointments in the afternoons/evenings. Learn more on the office hours page.
  • Lab 2 is released and due Wednesday 2/2 @ 11:59pm.
  • Homework 2 is released and due Thursday 2/3 @ 11:59pm.
  • Hog project is released and due Thursday 2/10. However, checkpoint 1 is also due Thursday 2/3, so pace yourself accordingly so you can complete both HW2 and Hog Checkpoint 1 in time.
  • Please only email your TA for things that directly pertain to them. Instead, use Piazza for general help or email cs61a@berkeley.edu for logistical questions. Thank you!
  • Reminder: Midterm 1 is on Monday, 2/7, from 8pm-10pm. Please read this post in its entirety to familiarize yourself with exam logistics.

    • If you need to request a special seat (including desks for left-handed writers), or to take the remote or alternate exam, fill out this form by Thursday, 2/3, 11:59pm.

Friday, January 28

Jump to date
  • To request an assignment extension, please use go.cs61a.org/extensions (linked from the contact page). If you email your TA asking for an extension, they will direct you to this form.

    • Please be conscious about emailing your TAs late at night asking for help on assignments, as it puts pressure on them to respond quickly—we ask that you use Piazza for technical and content questions, and recommend starting on assignments early as it makes it far easier to access resources such as Piazza and OH when issues arise.
    • From now on, extensions that are requested after the assignment deadline has already passed will not be granted (unless your circumstances prevented you from being able to access the form before the deadline).
    • Keep in mind that we automatically drop your two lowest lab scores and one lowest homework score.
  • Midterm 1 is on Monday, 2/7, from 8pm-10pm. Please read this post in its entirety to familiarize yourself with exam logistics.

    • If you need to request a special seat (including desks for left-handed writers), or to take the remote or alternate exam, fill out this form by Thursday, 2/3, 11:59pm.
  • A number of slots have opened up for most section times on sections.cs61a.org. If you were looking to switch to a more convenient section time, feel free to do so!
  • CSM is offering one-time trial tutoring sections this coming week. Read this post for more information and the sign up link.
  • Reminder: We return to on-campus instruction on Monday, 1/31.

Wednesday, January 26

Jump to date
  • All components of the class are on Zoom this week, including the lecture. Follow the Zoom link from the calendar below.
  • As announced by campus, we return to on-campus instruction on Monday of next week.

    • Only the "remote" designated section will remain on Zoom, all other sections return to in-person.
    • We will begin offering in-person office hours during the weekdays, and Zoom OH will be only in the evenings.
    • Lectures will be in Wheeler 150, with recordings made available a few hours after.
  • Lab 1 is due Wednesday 1/26 @ 11:59pm. If you're having trouble finishing it after section, post on Piazza or schedule an OH appointment.
  • Homework 1 is due Thursday 1/27 @ 11:59pm.
  • Whenever you're posting on Piazza with assignment code, please make a private post using this template.
  • 61a is hosting two staff panels this and next week!

    • The first one is 5-6pm tomorrow and will be aimed at addressing the experiences of students from backgrounds underrepresented in EE/CS and STEM
    • The second one will be 1-2PM this upcoming Monday and will be aimed at anyone who wants tips or advice on how to approach the class
    • See Piazza post for more details.

Monday, January 24

Jump to date
  • Lecture 3 is 2:10pm-3pm Monday, 1/24 on Zoom. Lecture recording will be posting Monday night and linked below.

    • To watch John DeNero's videos from previous semesters, click the lecture title in the calendar below. Those videos do not include announcements, and they may differ slightly in content.
  • Lab 0 is optional, but we recommend doing it anyway, especially if you haven't programmed with Python on your computer before.
  • Lab 1 is due Wednesday 1/26 @ 11:59pm. You will work on this in your lab section this week, and hopefully finish it in the section.
  • Homework 1 is due Thursday 1/27 @ 11:59pm. We'll cover the topics in the Monday lecture.
  • Lots of office hours are available this week, for help with the homework or questions that you didn't get to during lab.
  • Please fill out this group matching form if you'd like to find partners for labs, discussions, and projects.

Friday, January 21

Jump to date
  • Lecture 2 is 2:10pm-3pm Friday, 1/21 on Zoom. Please attend, but it will be recorded and posted online in case you miss it. Lecture recordings will be linked from the calendar below.
  • Discussion 0 does not count towards discussion participation points. See syllabus for more details.
  • Homework 1 is released tonight and is due next Thursday 1/27. However, some of the questions rely on Monday's lecture topics.

Monday, January 10

Jump to date
  • Welcome to CS 61A!
  • Join Piazza for announcements and answers to your questions.
  • The first lecture will be 2:10pm-3pm Wednesday, 1/19 on Zoom. Please attend, but it will be recorded and posted online in case you miss it.

    • Subsequent lectures through 1/28 will be held online, and will resume in-person starting 1/31.
  • You will be able to sign up for lab/discussion section pairs using the sections tool starting at 5pm on Monday, 1/17.

    • Sections and their associated TAs will be visible on the sections tool starting on Monday, 1/10.
    • There will be no lab session the first week. There will, however, be a discussion session.
    • All sections will be held online for the first two weeks (through 1/28). Use the Zoom links on the sections tool to join the right Zoom call at the start of your section. In-person sections will go back to in-person starting the week of 1/31.
  • The Fall 2021 website has moved to fa21.cs61a.org.

Current Assignments

Calendar

Week Date Lecture Textbook Lab & Discussion Links Homework & Project
1 Wed
1/19
Disc 00: Getting Started

Lab 00: Getting Started (Optional)
Due Thu 1/27
Fri
1/21
HW 01: Variables & Functions, Control
Due Thu 1/27
2 Mon
1/24
Lab 01: Variables & Functions, Control
Due Wed 1/26
Wed
1/26
Disc 01: Control, Environment Diagrams
Fri
1/28
Exam Prep 01: Variables & Functions, Control HW 02: Control, Higher-Order Functions
Due Thu 2/3
3 Mon
1/31
Lab 02: Higher-Order Functions, Lambda Expressions
Due Wed 2/2
Hog
Checkpt Thu 2/3
Due Thu 2/10
Wed
2/2
Disc 02: Environment Diagrams, Higher-Order Functions
Fri
2/4
Exam Prep 02: Higher-Order Functions, Environment Diagrams
4 Mon
2/7
Midterm 1 (8pm-10pm)
Wed
2/9
Disc 03: Recursion
Fri
2/11
Exam Prep 03: Recursion HW 03: Recursion, Tree Recursion
Due Thu 2/17
5 Mon
2/14
Lab 04: Recursion, Tree Recursion
Due Wed 2/16
Cats
Checkpt Thu 2/17
Due Thu 2/24
Wed
2/16
Disc 04: Tree Recursion, Python Lists
Fri
2/18
Exam Prep 04: Tree Recursion, Python Lists
6 Mon
2/21
No Lecture: Presidents' Day Lab 05: Python Lists, Mutability
Due Wed 2/23
Wed
2/23
Disc 05: Sequences, Mutability, Object-Oriented Programming
Fri
2/25
Exam Prep 05: Mutability, Object-Oriented Programming HW 04: Python Lists, Object-Oriented Programming
Due Thu 3/3
7 Mon
2/28
Lab 06: Object-Oriented Programming, String Representation
Due Wed 3/2
Ants
Checkpt 1 Thu 3/3
Checkpt 2 Tue 3/8
Due Thu 3/10
Wed
3/2
Disc 06: String Representation, Trees
Fri
3/4
Exam Prep 06: Object-Oriented Programming, Trees HW 05: Trees, Linked Lists
Due Tue 3/15
8 Mon
3/7
Lab 07: Mutable Trees, Linked Lists
Due Wed 3/9
Wed
3/9
Disc 07: Linked Lists, Iterators, Generators
Fri
3/11
Exam Prep 07: Linked Lists, Iterators, Generators
9 Mon
3/14
Lab 08: Midterm Review
Due Wed 3/16
Wed
3/16
Thu
3/17
Midterm 2 (8pm-10pm)
Fri
3/18
(Extra Credit) Magic: the Lambda-ing
Due Fri 4/1
10 Mon
3/21
No Lecture: Spring Break
Wed
3/23
No Lecture: Spring Break
Fri
3/25
No Lecture: Spring Break, Cesar Chavez Day
11 Mon
3/28
Lab 10: Scheme
Due Wed 3/30
Wed
3/30
Disc 10: Scheme, Scheme Lists
Fri
4/1
Exam Prep 10: Scheme, Scheme Lists HW 06: Scheme Lists
Due Thu 4/7
12 Mon
4/4
Lab 11: Interpreters
Due Wed 4/6
Wed
4/6
Disc 11: Interpreters, Tail Calls
Scheme
Checkpt 1 Tue 4/12
Checkpt 2 Tue 4/19
Due Tue 4/26

Scheme Challenge
Checkpt Tue 4/19
Due Tue 4/26
Fri
4/8
Exam Prep 11: Scheme Lists, Tail Calls
13 Mon
4/11
Lab 12: Scheme Data Abstraction
Due Wed 4/13
Wed
4/13
Disc 12: Programs as Data
Fri
4/15
Exam Prep 12: Interpreters, Tail Calls HW 07: Scheme Data Abstraction, Programs as Data
Due Fri 4/22

(Optional) Scheme Contest
Due Wed 4/27
14 Mon
4/18
Lab 13: Regular Expressions
Due Wed 4/20
Wed
4/20
Disc 13: Regular Expressions, BNF
Fri
4/22
Exam Prep 13: Regular Expressions, BNF HW 08: Regular Expressions, BNF
Due Thu 4/28
15 Mon
4/25
Lab 14: Final Review
Due Wed 4/27
Wed
4/27
Disc 14: Final Review
Fri
4/29
Exam Prep 14: Final Review HW 09: Finale
Due Thu 5/5

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