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
-
Lecture 13: Mutable Values
-
Lecture 14: List mutation + Identity + Nonlocal
-
Lecture 15: Iterators
- Week 6 Readings:
-
Disc 05: Python Lists, Trees, Mutability
-
(Optional) Exam Prep 04: Trees
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
-
Lecture 13: Mutable Values
-
Lecture 14: List mutation + Identity + Nonlocal
-
Lecture 15: Iterators
- Week 6 Readings:
-
Disc 05: Python Lists, Trees, Mutability
-
(Optional) Exam Prep 04: Trees
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.
Week 4 Class Material
-
Lecture 9: Function Examples
-
Lecture 10: Containers
-
Lecture 11: Data Abstraction
- Week 4 Readings:
- Disc 03: Recursion, Tree Recursion
- (Optional) Exam Prep 03: Recursion, Tree Recursion
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
Week 4 Class Material
-
Lecture 9: Function Examples
-
Lecture 10: Containers
-
Lecture 11: Data Abstraction
- Week 4 Readings:
- Disc 03: Recursion, Tree Recursion
- (Optional) Exam Prep 03: Recursion, Tree Recursion
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
Week 4 Class Material
-
Lecture 9: Function Examples
-
Lecture 10: Containers
-
Lecture 11: Data Abstraction
- Week 4 Readings:
- Disc 03: Recursion, Tree Recursion
- (Optional) Exam Prep 03: Recursion, Tree Recursion
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.
Week 3 Class Material
-
Lecture 6: Recursion
-
Lecture 7: Tree Recursion
-
Lecture 8: Design + Exceptions
- Week 3 Readings:
- Disc 02: Higher-Order Functions, Self Reference, Lambda Expressions
- (Optional) Exam Prep 02: Higher-Order Functions, Self Reference
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!
Week 3 Class Material
-
Lecture 6: Recursion
-
Lecture 7: Tree Recursion
-
Lecture 8: Design + Exceptions
- Week 3 Readings:
- Disc 02: Higher-Order Functions, Self Reference, Lambda Expressions
- (Optional) Exam Prep 02: Higher-Order Functions, Self Reference
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.
Week 3 Class Material
-
Lecture 6: Recursion
-
Lecture 7: Tree Recursion
-
Lecture 8: Design + Exceptions
- Week 3 Readings:
- Disc 02: Higher-Order Functions, Self Reference, Lambda Expressions
- (Optional) Exam Prep 02: Higher-Order Functions, Self Reference
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.
Week 2 Class Material
-
Lecture 3: Control
-
Lecture 4: Higher-Order Functions
-
Lecture 5: Environments
- Week 2 Readings:
- Disc 01: Environment Diagrams, Control
- (Optional) Exam Prep 01: Control, Higher-Order Functions
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
Week 2 Class Material
-
Lecture 3: Control
-
Lecture 4: Higher-Order Functions
-
Lecture 5: Environments
- Week 2 Readings:
- Disc 01: Environment Diagrams, Control
- (Optional) Exam Prep 01: Control, Higher-Order Functions
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
Week 2 Class Material
-
Lecture 3: Control
-
Lecture 4: Higher-Order Functions
-
Lecture 5: Environments
- Week 2 Readings:
- Disc 01: Environment Diagrams, Control
- (Optional) Exam Prep 01: Control, Higher-Order Functions
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:
- Zoom for second lecture Friday @ 2:10pm: links.cs61a.org/lecture
- Piazza thread for second lecture Q&A: links.cs61a.org/lecture2-qa
- Tutorials listing and sign-up: tutorials.cs61a.org
Week 1 Class Material
Wednesday, January 20
- 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. Ask questions at links.cs61a.org/ama1-qa and join Zoom at links.cs61a.org/ama1
- 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. Join Zoom at links.cs61a.org/examprep
- If you don't see yourself enrolled for 61A on okpy.org, please fill out this form
- If you change your Berkeley email at any time during the semester, please fill out this other form
Important links for this week:
- Zoom for first lecture Wednesday @ 2:10pm: links.cs61a.org/lecture
- Piazza thread for first lecture Q&A: links.cs61a.org/lecture1-qa
- Tutorials listing and sign-up: tutorials.cs61a.org (Three new times just got added!)
Week 1 Class Material
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:
- Zoom for first lecture Wednesday @ 2:10pm: links.cs61a.org/lecture
- Piazza thread for first lecture Q&A: links.cs61a.org/lecture1-qa
- Coming soon: Link to check your tutorial time.
Week 1 Class Material
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) |