CS 61A: Structure and Interpretation of Computer Programs

Spring 2021, Instructors: Pamela Fox, Paul Hilfinger
Jump to calendar

Wednesday, February 24
  • We have a lecture today (Wednesday) at our usual time and Zoom. You can find the HTML slides or PDF slides from the "html" and "full" links below.
  • You can now watch pre-recorded videos of the discussion orientations. See Piazza thread @1394. This is an option for those of you who have a hard time making live orientations for scheduling reasons. Please make sure you watch or attend a discussion orientation somehow before attending tutorial section.
  • We have released the midterm grades. If you have regrade requests, please submit by Friday night! See Piazza thread @1322.
  • We've also published the midterm solutions PDF and a walkthrough of the problems.
  • The Cats project is due Friday, 2/26. Submit a day early for one point EC. ๐Ÿ˜บ Please ask questions in the Piazza thread for each problem. Take a break by sharing your favorite cat pic in Piazza thread @1385. ๐Ÿˆโ€โฌ›
  • Hog composition scores are released. Revisions are due Friday at 11:59PM PST. To revise, go to okpy.org and read the comments left on the submission that has a "composition" tag. Fix the relevant problems and run python3 ok --revise (NOT --submit). If you did not receive a composition grade, submit a regrade request using this form.
  • Congrats to the Hog contest winners: 1) okonoko, 2) ๐Ÿง๐Ÿง๐Ÿง, and 3) ๐ŸชCookEs-ultimate1(Version 1) github@ToiletCommander.
Week 6 Class Material
Week 6 Resources
Monday, February 22
  • We have a lecture today (Monday) at our usual time and Zoom. You can find the HTML slides or PDF slides from the "html" and "full" links below.
  • We are still grading the midterms. We'll let you know when grades are available.
  • The Cats project is due Friday, 2/26. Submit a day early for one point EC. ๐Ÿ˜บ See project description
  • Lab 5 is released. You can ask questions in the relevant Piazza thread
  • Computer Science Mentors (CSM) still has open slots for students. See Piazza thread
  • The optional Hog challenges end tomorrow; you can design your own dice or enter the strategy contest.
Week 6 Class Material
Week 6 Resources
Friday, February 19
  • We have a lecture today (Friday) at our usual time and Zoom.
  • We are still grading the midterms. We'll let you know when grades are available.
  • The Cats project is released! ๐Ÿ˜บ See project description
  • Next week, we will start releasing pre-recorded discussion orientations on Tuesday. We hope that's a resource for those of you who've found it difficult to attend the live discussion orientations.
Wednesday, February 17
  • There are no lecture, discussion orientations, or tutorials today.
  • Our first midterm is tonight (Wednesday) from 5-7pm! Please read through the Midterm 1 Logistics post and ask any questions now before the exam begins. If you're experiencing an outage due to the Winter storm, please let us know.
  • The Cats project will be released tonight. ๐Ÿ˜บ All students who filled out the Cats partnering form should have gotten their partnerโ€™s contact info at this point, please email cs61a@berkeley.edu if there are any issues. ๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ’ป๐Ÿ‘จ๐Ÿฟโ€๐Ÿ’ป
Monday, February 15
  • Today is a holiday, so there is no lecture. There will also be no lab orientations, discussion orientations, or tutorials this week.
  • Our first midterm is coming up this Wednesday 5-7pm! Please read through the Midterm 1 Logistics post and ask any questions now before the exam begins.
  • We added study guides to the website, covering topics like HOFs, recursion, and reverse environment diagrams. See Piazza @808
  • The AYM organization is holding a review session tonight. See Piazza thread @953.
  • The Cats project will be released this week. ๐Ÿ˜บ Let us know if you're looking for a partner by filling out the partnering form by Tuesday night. ๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ’ป๐Ÿ‘จ๐Ÿฟโ€๐Ÿ’ป See Piazza thread @962
Friday, February 12
  • Our first midterm is coming up this Wednesday 5-7pm!
  • We've added study guides to the website, covering topics like HOFs, recursion, and reverse environment diagrams. See Piazza @808
  • The LOST sections today will focus extensively on reverse environment diagrams and recursion, intended for midterm review. Join either 12-2PM or 4-6PM from this Zoom link: links.cs61a.org/lost
  • There's also an Exam Prep section today from 3-4:30PM. See Piazza @805
  • Two organizations are holding review sessions this Saturday: CSM from 11-12:30pm and HKN from 2:30-5:30pm.
Wednesday, February 10
  • Live lectures will continue M/W/F, you can always follow the "Lecture" link from the calendar below.
  • The drop deadline is today, Wednesday, February 10th. There are still seats open in CS10. See Piazza @329.
  • Please check Piazza @318 to make sure you can attend the exam times and fill out the exam conflict form by Thursday if you cannot.
  • Please remember to either attend or watch a discussion orientation before attending a tutorial section. The tutorials are designed to build upon what you've gone over in the discussion orientation. You can find the links in the calendar below or in the Piazza index thread. Please do this, we do not want to have to start taking attendance. ๐Ÿฅบ ๐Ÿฅบ
  • It is now possible to run doctests in code.cs61a.org, by clicking the red test tube button. Watch video demo here. Remember that you can use code.cs61a.org during the exam, but you cannot use your own IDE, so it is beneficial to get familiar with the interface now.
  • Homework 3 is due this Thursday, February 11th.
  • There are lots of mentoring spots still available for CSM (Computer Science Mentors). If you want the unit for CSM, youโ€™ll need to get it before the add deadline. See Piazza @580
Monday, February 8
  • The ninth lecture will be live Monday @ 2:10 over Zoom (links.cs61a.org/lecture). Post questions in Piazza (links.cs61a.org/lecture9-qa).
  • The drop deadline is coming up this Wednesday, February 10th. There are still seats open in CS10. See Piazza @329.
  • TAs are holding advising office hours this week; please sign up for an appointment if you're interested. See Piazza @706
  • We're holding a practice midterm on Tuesday from 5-7PM, which will give you practice with the format, content, and proctoring setup. See Piazza @736
  • Please check Piazza @318 to make sure you can attend the exam times and fill out the exam conflict form if you cannot.
  • There are lots of mentoring spots still available for CSM (Computer Science Mentors). If you want the unit for CSM, youโ€™ll need to get it before the add deadline. See Piazza @580
Friday, February 5
  • The eighth lecture will be live Friday @ 2:10 over Zoom (links.cs61a.org/lecture). Post questions in Piazza (links.cs61a.org/lecture8-qa).
  • The first set of grades has been released on howamidoing.cs61a.org. Regrade requests can be submitted on links.cs61a.org/okpy-regrades. Howamidoing will be updated with new scores once or twice a week, usually on Fridays.
  • Hog project is due Friday night. Since office hours queues have been quite long, we encourage you to first post questions on Piazza and link your office hours request to the Piazza post. If posting privately with code, please follow the private post template and link to your code backup on OKPy instead of screenshotting it.
  • When you are working on the Hog project (and future projects), we recommend using the skills we've covered so far in the class. If you use other features (such as lists, dicts, or string methods), you may lose composition points for that assignment.
  • Please fill out our Week 3 survey by Friday night! Your feedback helps us improve the course.
Wednesday, February 3
  • The seventh lecture will be live Wednesday @ 2:10 over Zoom (links.cs61a.org/lecture). Post questions in Piazza (links.cs61a.org/lecture7-qa).
  • Please remember to either attend or watch a discussion orientation before going to your tutorial section, since the tutorials assume you've seen the orientation content.
  • Hog project is due Friday night. Submitting the entire project by Thursday night earns 1 extra credit point. You can ask questions on Piazza in each problem's thread or come to office hours for help.
  • Homework 2 is due Thursday night.
  • Two optional extensions to the Hog project were just released: Hog Strategy Contest and Hog Dice Design Showcase.
  • When you are working on the Hog project (and future projects), we recommend using the skills we've covered so far in the class. If you use other features (such as lists, dicts, or string methods), you may lose composition points for that assignment.
  • Please fill out our Week 3 survey to help us improve the course!
Monday, February 1
  • The sixth lecture will be live Monday @ 2:10 over Zoom (links.cs61a.org/lecture). Post questions in Piazza (links.cs61a.org/lecture6-qa).
  • Phase 1 of the Hog project is due Tuesday night. Submitting the entire project by Thursday night earns 1 extra credit point. You can ask questions on Piazza in each problem's thread or come to office hours for help.
  • Lab 2 is due Tuesday night.
  • Homework 2 is due Thursday night.
  • There will be a lab party on Monday from 4-5:30pm and a project party on Tuesday from 7-8:30pm. See Piazza thread 430.
Friday, January 29
  • The fifth lecture will be live Friday @ 2:10 over Zoom (links.cs61a.org/lecture). Post questions in Piazza (links.cs61a.org/lecture5-qa).
  • It is important that you either attend or watch a discussion orientation before going to tutorial, because the work in tutorial builds on the topics discussed in discussion orientation. You can find the links and times in the calendar below.
  • We've announced the midterm dates and times. Please check Piazza thread 318 to make sure you can attend the times and fill out the conflict form if you cannot.
  • LOST sections start today, 12-2 and 4-6! Read Piazza thread 239 for more information.
  • Exam prep continues this week. We encourage you to try the questions in the worksheet before coming, if possible. See Piazza thread 220.
Wednesday, January 27
  • The fourth lecture will be live this Wednesday @ 2:10 over Zoom (links.cs61a.org/lecture). Post questions in Piazza (links.cs61a.org/lecture4-qa).
  • Homework 1 is due Thursday, Jan 28 @ 11:59 PST.
  • Project 1: Hog will be released Wednesday and is due Friday, Feb 5 @ 11:59 PST.
  • Lost sections start this week, with one session Friday 12-2 and another from 4-6. See this Piazza thread
  • 9 new tutorial sections just got added, mostly at very popular times. Check tutorials.cs61a.org
Monday, January 25
  • The third lecture will be live this Monday @ 2:10 over Zoom (links.cs61a.org/lecture). Post questions in Piazza (links.cs61a.org/lecture3-qa).
  • Due this week:

    • Lab0 is due Tuesday, Jan 26 @ 11:59 PST.
    • Lab1 will be released Monday and is also due Tuesday @ 11:59 PST.
    • Homework 1 is due Thursday, Jan 28 @ 11:59 PST.
  • Lots of ways to get help are starting this week:

    • Orientations! Lab orientatations are on Mondays and discussion orientations are on Wednesdays. Find links to Zooms in the Piazza index thread or calendar below. Orientations will be recorded.
    • Office hours! There are various flavors of office hours. You can sign up for regular office hours for debugging/assignment help or drop by conceptual office hours to explore topics. See office hours schedule.
    • Parties! There will be a lab party on Monday and a homework party on Tuesday. More information in this Piazza thread.
    • Lost sections! There'll be two offerings on Friday and one will be recorded. Stay tuned for more info.
  • Course staff can help you find a partner for pair programming on the Hog project. See this Piazza thread.
  • A few additional tutorial sections will be opening up, as we've just hired new tutors. Check tutorials.cs61a.org
Friday, January 22
  • Homework 1 will be released Friday and is due Thursday, Jan 28.
  • Course staff are holding a Tech Support office hours this week to help with Lab 0 installation. See office hours schedule
  • The first Exam Prep session is this 3-4:30pm on Friday and will discuss exam format, studying advice, and tips for succeeding in the course. Join Zoom at links.cs61a.org/examprep
  • Check the Piazza index thread for orientation Zoom links and other resources.
  • DSP students, please submit your accomodation letters ASAP. Thank you!
  • Important links for this week:

Wednesday, January 20
Monday, January 18
  • Welcome to CS 61A!
  • Join Piazza for announcements and answers to your questions.
  • The first lecture will be 2:10pm-3pm Wednesday 1/20 on Zoom (@berkeley.edu login required). Please attend, but it will be recorded and posted to this site if you miss it.
  • We will hold an optional session 1:10pm-2pm Thursday where you can meet the instructors and ask us anything. Link will be posted here.
  • The Fall 2020 website has moved to fa20.cs61a.org.
  • All events below are listed in Pacific Time
  • Important links for this week:

Week Date Lecture Textbook Orientation Links Lab, Discussion, & Exam Prep Links Homework & Project
1 Wed
1/20
Introduction
Lab 00: Getting Started
Due Tue 1/26
Fri
1/22
Functions
HW 01: Variables & Functions, Control
Due Thu 1/28
2 Mon
1/25
Control
Lab 01: Variables & Functions, Control
Due Tue 1/26
Wed
1/27
Higher-Order Functions
Disc 01: Environment Diagrams, Control Hog
Due Fri 2/5
Fri
1/29
Environments
(Optional) Exam Prep 01: Control, Higher-Order Functions
(Optional) Lost 01: Control, Environment Diagrams
HW 02: Higher-Order Functions
Due Thu 2/4
3 Mon
2/1
Recursion
Lab 02: Higher-Order Functions, Lambda Expressions
Due Tue 2/2
Wed
2/3
Tree Recursion
Disc 02: Higher-Order Functions, Self Reference, Lambda Expressions (Optional) Hog Dice Design
Due Tue 2/23

(Optional) Hog Contest
Due Tue 2/23
Fri
2/5
Design + Exceptions
(Optional) Exam Prep 02: Higher-Order Functions, Self Reference
(Optional) Lost 02: Higher-Order Functions, Self Reference, Environment Diagrams
HW 03: Recursion
Due Thu 2/11
4 Mon
2/8
Function Examples
Lab 03: Recursion, Tree Recursion
Due Tue 2/9
Wed
2/10
Containers
Disc 03: Recursion, Tree Recursion
Fri
2/12
Data Abstraction
(Optional) Exam Prep 03: Recursion, Tree Recursion
Lab 04: Midterm Review
Due Tue 2/16

(Optional) Lost 03: Higher-Order Functions, Self Reference, Environment Diagrams
5 Mon
2/15
No Lecture: Presidents' Day
Wed
2/17
Midterm 1 Cats
Due Fri 2/26
Fri
2/19
Trees
6 Mon
2/22
Mutable Values
Lab 05: Python Lists, Data Abstraction, Trees
Due Tue 2/23
Wed
2/24
List mutation + Identity + Nonlocal
Disc 05: Python Lists, Trees, Mutability
Fri
2/26
Iterators
(Optional) Exam Prep 04: Trees

(Optional) Lost 04: Higher-Order Functions, Self Reference, Environment Diagrams
HW 04: Trees, Data Abstraction
Due Thu 3/4
7 Mon
3/1
Objects
Lab 06: Nonlocal, Mutability, Iterators
Due Tue 3/2
Wed
3/3
Inheritance
Ants
Due Mon 3/15
Fri
3/5
Representation
HW 05: Object-Oriented Programming, Linked Lists, Iterators
Due Thu 3/18
8 Mon
3/8
Composition
Lab 07: Object-Oriented Programming, Linked Lists, Mutable Trees
Due Tue 3/9
Wed
3/10
Efficiency
Fri
3/12
Decomposition
9 Mon
3/15
Data Examples
Lab 08: Midterm Review
Due Tue 3/16
Wed
3/17
TBD
Fri
3/19
Midterm 2
10 Mon
3/22
No Lecture: Spring Recess
Wed
3/24
No Lecture: Spring Recess
Fri
3/26
No Lecture: Spring Recess HW 06: Scheme
Due Thu 4/1
11 Mon
3/29
Scheme
Lab 10: Scheme
Due Wed 3/31
Wed
3/31
TBD
Fri
4/2
Calculator
HW 07: Scheme, Scheme Lists
Due Thu 4/8
12 Mon
4/5
Intepreters
Lab 11: Interpreters
Due Tue 4/6
Wed
4/7
Undecidability (optional)
Scheme
Due Mon 4/19

Scheme Challenge Version
Due Mon 4/19
Fri
4/9
Tail Calls
HW 08: Tail Recursion, Interpreters
Due Thu 4/15
13 Mon
4/12
Macros (optional)
Lab 12: Tail Recursion
Due Tue 4/13
Wed
4/14
Declarative Programming
(Optional) Scheme Contest
Due Wed 4/28
Fri
4/16
Tables
HW 09: SQL
Due Thu 4/22
14 Mon
4/19
Aggregation
Lab 13: SQL
Due Tue 4/20
Wed
4/21
Databases
Fri
4/23
Final Examples
HW 10: Finale
Due Thu 4/29
15 Mon
4/26
Conclusion
Lab 14: Final Review
Due Tue 4/27
Wed
4/28
TBD
Fri
4/30
TBD
16 Tue
5/11
Final (11:30-2:30 PM)