CS 61A: Structure and Interpretation of Computer Programs

Fall 2017
Instructors: John DeNero, Paul Hilfinger
MWF 12-1 in Wheeler Auditorium

Sunday, December 17
Monday, December 11
  • Lecture material on the last week of classes won't be tested on the final, but watch it anyway.

    • No videos of the last lecture on Friday 12/1; come to class!
    • There will be a screencast of the last lecture on bcourses.
  • Final Exam is 3-6 pm Wednesday 12/13.

    • The final study guide and exam information are on the final exam info page.
    • Final Exam Review Guerrilla Section 7-9 pm Monday 12/4 in 145/155 Dwinelle and A1 Hearst Annex.
    • CSM Final Exam Review Sessions 12-1 PM on Monday 12/4 and Wednesday 12/6 in 150 Wheeler.
    • HKN Final Exam Review Session 7-9 PM on Tuesday 12/5 in HP Auditorium (306 Soda Hall).
    • Topical Review Sessions in labs and discussions over RRR week, check the weekly schedule Sunday.
  • Congratulations to the winners of the Scheme recursive art contest!

Sunday, December 3
  • Lecture material on the last week of classes won't be tested on the final, but watch it anyway.

    • No videos of the last lecture on Friday 12/1; come to class!
    • There will be a screencast of the last lecture on bcourses.
  • Final Exam is 3-6 pm Wednesday 12/13.

    • The final study guide and exam information are on the final exam info page.
    • Final Exam Review Guerrilla Section 7-9 pm Monday 12/4 in 145/155 Dwinelle and A1 Hearst Annex.
    • CSM Final Exam Review Sessions 12-1 PM on Monday 12/4 and Wednesday 12/6 in 150 Wheeler.
    • HKN Final Exam Review Session 7-9 PM on Tuesday 12/5 in HP Auditorium (306 Soda Hall).
    • Topical Review Sessions in labs and discussions over RRR week, check the weekly schedule Sunday.
  • Please complete 3 final surveys:

Friday, December 1
  • Lecture material this week won't be tested on the final, but watch it anyway.

    • No videos of the last lecture on Friday 12/1; come to class!
    • There will be a screencast of the last lecture on bcourses.
  • Final Exam is 3-6 pm Wednesday 12/13.

    • The final study guide and exam information are on the final exam info page.
    • Final Exam Review Guerrilla Section 7-9 pm Monday 12/4 in 145/155 Dwinelle and A1 Hearst Annex.
    • CSM Final Exam Review Sessions 12-1 on Monday 12/4 and Wednesday 12/6 in 150 Wheeler.
    • Topical Review Sessions in labs and discussions over RRR week, check the weekly schedule Sunday.
  • Please complete 3 final surveys:

Wednesday, November 29
  • Homework 13 due Thursday 11/30 @ 11:59pm.
  • Go to discussion this week; it's your last chance!
  • Lecture material this week won't be tested on the final, but watch it anyway.

    • No videos of the last lecture on Friday 12/1; come to class!
    • There will be a screencast of the last lecture on bcourses.
Monday, November 27
  • The completely optional Scheme Recursive Art Contest due Monday 11/27 @ 11:59pm.
  • Maps composition revisions due Tuesday 11/28 at 11:59pm. See Piazza for more information.
  • Homework 13 due Thursday 11/30 @ 11:59pm.
  • Do all of Lab 13 this week; questions are great final exam prep.
  • Go to discussion this week; it's your last chance!
  • Lecture material this week won't be tested on the final, but watch it anyway.

    • No videos of the last lecture on Friday 12/1; come to class!
    • There will be a screencast of the last lecture on bcourses.
Monday, November 20
Friday, November 17
  • Homework 12 due Tuesday 11/21 @ 11:59pm.
  • Homework 13 due Thursday 11/30 @ 11:59pm.
  • Completely Optional Scheme Recursive Art Contest due Monday 11/27 @ 11:59pm.
  • No lab or discussion this week; have a great Thanksgiving!

Wednesday, November 15
  • Scheme due Thursday 11/16 @ 11:59pm.

    • Submit everything by Wednesday 11/15 @ 11:59pm (one day early) to earn one bonus point.
    • You will not be able to revise your code to regain composition points so make sure it follows the Course Composition Guide.
  • Homework 12 due Tuesday 11/21 @ 11:59pm.
  • Big Game Bonfire Rally Friday 11/17 @ 7pm in the Greek Theatre.
  • No lab section or discussion next week! Have a great break :).
Monday, November 13
  • Homework 11 due Tuesday 11/14 @ 11:59pm.
  • Scheme due Thursday 11/16 @ 11:59pm.

    • Submit part II by Tuesday 11/14 @ 11:59pm (worth 1 pt).
    • Submit everything by Wednesday 11/15 @ 11:59pm (one day early) to earn one bonus point.
Wednesday, November 8
  • Homework 11 due Tuesday 11/14 @ 11:59pm.
  • Scheme due Thursday 11/16 @ 11:59pm.

    • Submit part I by Thursday 11/9 @ 11:59pm (worth 1 pt).
    • Submit part II by Tuesday 11/14 @ 11:59pm (worth 1 pt).
    • Submit everything by Wednesday 11/15 @ 11:59pm (one day early) to earn one bonus point.
  • No lecture or discussion section Friday 11/10 due to Veteran's Day.

    • Feel free to attend any other section. See weekly section for section times and staff for the TA.
    • The discussion quiz this week still counts for participation points.
Monday, November 6
  • Scheme due Thursday 11/16 @ 11:59pm.

    • Submit part I by Thursday 11/9 @ 11:59pm (worth 1 pt).
    • Submit part II by Tuesday 11/14 @ 11:59pm (worth 1 pt).
    • Submit everything by Wednesday 11/15 @ 11:59pm (one day early) to earn one bonus point.
  • No lecture or discussion section Friday 11/10 due to Veteran's Day.

    • Feel free to attend any other section. See weekly section for section times and staff for the TA.
  • Midterm 2 walkthrough video
Friday, November 3
  • Scheme due Thursday 11/16 @ 11:59pm.

    • Submit part I by Thursday 11/9 @ 11:59pm (worth 1 pt).
    • Submit part II by Tuesday 11/14 @ 11:59pm (worth 1 pt).
    • Submit everything by Wednesday 11/15 @ 11:59pm (one day early) to earn one bonus point.
  • No lecture or discussion section Friday 11/10 due to Veteran's Day.

    • Feel free to attend any other section. See weekly section for section times and staff for the TA.
  • Midterm 2 walkthrough video
Wednesday, November 1
  • Homework 10 due Friday 11/3 @ 11:59pm.
  • Scheme due Thursday 11/16 @ 11:59pm.

    • Submit part 1 by Thursday 11/9
    • Submit part 2 by Tuesday 11/14
    • It's long, and there are two extra credit questions, so start early!
Monday, October 30
  • Homework 9 due Tuesday 10/31 @ 11:59pm.
  • Homework 10 due Friday 11/3 @ 11:59pm.
  • Scheme due Thursday 11/16 @ 11:59pm.
Wednesday, October 25
  • Midterm 2 grades are now on Gradescope.

    • The exam and solutions are posted.
    • Midterm 2 regrade requests are due Sunday 10/29 @ 11:59pm.
    • You can talk to your TA, but submit through Gradescope.
  • Homework 9 due Tuesday 10/31 @ 11:59pm.
  • Homework 10 due Friday 11/3 @ 11:59pm.
Monday, October 23
  • Midterm 2 grades are now on Gradescope.

    • Exam and Solutions.
    • Midterm 2 regrade requests are due Sunday 10/29 @ 11:59pm.
    • You can talk to your TA, but submit through Gradescope.
  • Homework 9 due Tuesday 10/31 @ 11:59pm.
Thursday, October 19
  • Midterm 2 is 8pm-10pm Thursday 10/19.

    • You will receive a seat assignment by email on Wednesday 10/18.
    • No lecture on Wednesday 10/18.
    • No discussion section on Wednesday 10/18, Thursday 10/19, or Friday 10/20.
    • Lecture on Friday 10/20 is a video. (It's really good.)
Monday, October 16
  • Homework 8, the Midterm Survey, is due Tuesday 10/17 @ 11:59 pm.

    • Remember to submit the passphrase at the end to receive credit!
  • Midterm 2 is 8pm-10pm Thursday 10/19.

    • You will receive a seat assignment by email on Wednesday 10/18.
    • No lecture on Wednesday 10/18.
    • No discussion section on Wednesday 10/18, Thursday 10/19, or Friday 10/20.
    • Lecture on Friday 10/20 is a video. (It's really good.)
Friday, October 13
Thursday, October 12
  • The Ants project is due Thursday 10/12 @ 11:59pm.

    • Make sure to designate your partner on okpy.org.
  • Composition revisions due Sunday 10/15 @ 11:59pm.
  • Homework 8, the Midterm Survey, is due Tuesday 10/17 @ 11:59 pm.

    • Remember to submit the passphrase at the end to receive credit!
  • Midterm 2 is 8pm-10pm Thursday 10/19.

Wednesday, October 11
  • The Ants project is due Thursday 10/12 @ 11:59pm.

    • Make sure to designate your partner on okpy.org.
    • Earn an early submission bonus point for submitting by Wednesday 10/11.
  • Midterm 2 is 8pm-10pm Thursday 10/19.

    • No lecture on Wednesday 10/18.
    • No discussion section on Wednesday 10/18, Thursday 10/19, or Friday 10/20.
Monday, October 9
  • Homework 7 due Tuesday 10/10 @ 11:59pm.
  • The Ants project is due Thursday 10/12 @ 11:59pm.

    • You can work with a partner and submit only one solution for both of you (recommended).
    • Make sure to designate your partner on okpy.org.
    • Earn an early submission bonus point for submitting by Wednesday 10/11.
  • Midterm 2 is 8pm-10pm Thursday 10/19.
Friday, October 6
  • Homework 7 due Tuesday 10/10 @ 11:59pm.
  • The Ants project is due Thursday 10/12 @ 11:59pm.

    • You can work with a partner and submit only one solution for both of you (recommended).
    • Find a partner in your section! Then you can ask questions of the same TA.
    • Make sure to designate your partner on okpy.org. You can do it now!
    • Don't just divide up the problems among you. Solve them together.
    • Earn an early submission bonus point for submitting by Wednesday 10/11.
    • You can collaborate with your partner over video chat using OK.
  • Midterm 2 is 8pm-10pm Thursday 10/19.

    • If you have a course conflict, fill out this form by Friday 10/6.
Wednesday, October 4
  • Homework 6 due Thursday 10/05 @ 11:59pm.
  • Homework 7 due Tuesday 10/10 @ 11:59pm.
  • The Ants project is due Thursday 10/12 @ 11:59pm.

    • You can work with a partner and submit only one solution for both of you (recommended).
    • Find a partner in your section! Then you can ask questions of the same TA.
    • Make sure to designate your partner on okpy.org. You can do it now!
    • Don't just divide up the problems among you. Solve them together.
    • Earn an early submission bonus point for submitting by Wednesday 10/11.
  • Midterm 2 is 8pm-10pm Thursday 10/19.

    • If you have a course conflict, fill out this form by Friday 10/6.
Monday, October 2
  • Homework 6 due Thursday 10/05 @ 11:59pm.
  • The Ants project is due Thursday 10/12 @ 11:59pm.

    • You can work with a partner and submit only one solution for both of you (recommended).
    • Find a partner in your section! Then you can ask questions of the same TA.
    • Make sure to designate your partner on okpy.org. You can do it now!
    • Don't just divide up the problems among you. Solve them together.
    • Earn an early submission bonus point for submitting by Wednesday 10/11.
  • Midterm 2 is 8pm-10pm Thursday 10/19.

    • If you have a course conflict, fill out this form by Friday 10/6.
  • If you have a course conflict with the final, email cs61a@berkeley.edu ASAP.
  • Midterm 1 walkthrough video
Friday, September 29
  • Homework 6 due Thursday 10/05 @ 11:59pm.
  • If you have a conflict with Midterm 2 please fill out this form by Friday, October 6.
  • If you have a conflict with the final, email cs61a@berkeley.edu ASAP.
  • Midterm 1 walkthrough video
Wednesday, September 27
  • Homework 5 extended! Due Wednesday 9/27 @ 11:59pm.
  • Project 2 on Maps due Thursday 9/28 @ 11:59pm.

    • Earn an early submission bonus point for submitting by Wednesday 9/27.
Monday, September 25
  • Homework 5 due Wednesday 9/27 @ 11:59pm.

    • Homework party Monday 9/25 6:30-8:00pm in 247 Cory.
    • Remember that homework is graded on effort; no need to copy someone's solution to move_stack to get full credit.
    • Historically, students have found some parts of Homework 5 very challenging.
  • Project 2 on Maps due Thursday 9/28 @ 11:59pm.

    • Earn an early submission bonus point for submitting by Wednesday 9/27.
Friday, September 22
  • Homework 5 due Tuesday 9/26 @ 11:59pm.

    • Homework party Monday 9/25 6:30-8:00pm in 247 Cory.
    • Remember that homework is graded on effort; no need to copy someone's solution to move_stack to get full credit.
    • Historically, students have found some parts of Homework 5 very challenging.
  • Project 2 on Maps due Thursday 9/28 @ 11:59pm.

    • Earn an early submission bonus point for submitting by Wednesday 9/27.
  • Midterm 1 regrade requests due Sunday 9/24.
Wednesday, September 20
  • Homework 4 due Thursday 9/21 @ 11:59pm.
  • Project 2 on Maps due Thursday 9/28 @ 11:59pm.

    • Earn an early submission bonus point for submitting by Wednesday 9/27.
  • CSM adjunct section sign-ups are still open, but space is filling fast.
  • Midterm 1 regrade requests due Sunday 9/24.
Monday, September 18
  • The completely optional Hog Strategy Contest due Monday 9/18 @ 11:59pm.
  • Homework 4 due Thursday 9/21 @ 11:59pm.

    • Homework party Monday 9/18 6:30pm-8pm in 247 Cory.
  • Project 2 on Maps due Thursday 9/28 @ 11:59pm.

    • Earn an early submission bonus point for submitting by Wednesday 9/27.
  • CSM adjunct section sign-ups are still open, but space is filling fast.
  • Midterm 1 regrade requests due Sunday 9/24.
  • Earn recovery points by coming to lab and completing a midterm check-off. Just talk to a staff member about how you feel post-exam, reflect on your progress, and you'll get check-off credit. See Course Policies for more information.
Friday, September 15
  • Lab 03 due Friday 9/15 @ 11:59pm, although we recommend working on it earlier to help prepare for the midterm.
  • The completely optional Hog Strategy Contest due Monday 9/18 @ 11:59pm.
  • Homework 4 due Thursday 9/21 @ 11:59pm.
  • CSM adjunct section sign-ups open Friday 9/15 @ 4pm. Come study with us!
Monday, September 11
  • Draw environment diagrams automatically with tutor.cs61a.org.
  • Homework 03 due Tuesday 9/12 @ 11:59pm.
  • Midterm 1 on Thursday 9/14 8-10pm in various locations around campus.

    • Seat assignments will be emailed to you on Wednesday 9/13.
    • Fill out the seating request form by Tuesday 9/12 to request special seating, such as a left-handed desk.
    • Covers lecture content through Friday 9/8; Chapter 1 of composingprograms.com except sections 1.6.5 & 1.6.9.
  • Lab 03 due Friday 9/15 @ 11:59pm, although we recommend working on it earlier to help prepare for the midterm.
  • No discussion this week, although some TAs may host optional review sessions during their regularly-scheduled section times.
  • The completely optional Hog Strategy Contest due Monday 9/18 @ 11:59pm.
  • If you are on the waitlist and need card key access, fill out this form with your information.
Saturday, September 9
Friday, September 8
Wednesday, September 6
  • Hog due Thursday 9/7 @ 11:59pm.

    • Earn an early submission bonus point for finishing by Wednesday 9/6 @ 11:59pm.
    • Project party 6:30-8:30pm Wednesday 9/6 in 247 Cory.
    • Want to see dice? Replace your hog_gui.py file with this updated one: http://cs61a.org/proj/hog/hog_gui.py.
    • Want to see correct win rates in Hog Q12? Replace your calc.py file with this updated one: http://cs61a.org/proj/hog/calc.py.
  • Draw environment diagrams automatically with tutor.cs61a.org.
  • Midterm 1 on Thursday 9/14 8pm-10pm in various locations around campus.

  • Quiz 1 (Solutions) feedback on Gradescope.

    • Looking for more practice and tips? See the Study Guide.
  • Homework 03 due Tuesday 9/12 @ 11:59pm.
Saturday, September 2
  • Homework 02 (very short) due Tuesday 9/5 @ 11:59pm.

    • Homework/Project party 6:30pm-8pm Monday 9/4 in 271, 273, 275, & 277 Soda.
  • Hog due Thursday 9/7 @ 11:59pm.

    • Earn an early submission bonus point for finishing by Wednesday 9/6 @ 11:59pm.
    • Project party 6:30-8:30pm Wednesday 9/6 in 247 Cory.
  • No lab or lecture on Labor Day (Monday) but we will still have a lab assignment due Friday and lab sections Tuesday and Wednesday.

    • There will be no lab check off this week, so feel free to complete lab at home. We will still have staff in lab to help you if you have any questions.
    • See piazza for more details.
  • Draw environment diagrams automatically with tutor.cs61a.org.
  • Want to see dice? Replace your hog_gui.py file with this updated one: http://cs61a.org/proj/hog/hog_gui.py.
Friday, September 1
  • Homework 02 (very short) due Tuesday 9/5 @ 11:59pm.
  • Hog due Thursday 9/7 @ 11:59pm.

    • Earn an early submission bonus point for finishing by Wednesday 9/6 @ 11:59pm.
    • Homework/Project party 6:30pm-8pm Monday 9/4 in 271, 273, 275, & 277 Soda.
  • Info session about CS 47A 1:30pm-2pm Friday 9/1 in 306 Soda (recorded).

    • 47A is a self-paced 1-unit alternative to 61A for students who know most of the material already.
  • Draw environment diagrams automatically with tutor.cs61a.org.
  • Want to see dice? Replace your hog_gui.py file with this updated one: http://cs61a.org/proj/hog/hog_gui.py.
Wednesday, August 30
  • Homework 00 and Homework 01 due Thursday 8/31 @ 11:59pm.
  • Homework 02 (very short) due Tuesday 9/5 @ 11:59pm.
  • Hog due Thursday 9/7 @ 11:59pm.
  • Post on Piazza under the pinned homework post or come to office hours if you want help.
Monday, August 28
  • Waitlisted and concurrent enrollment students: please watch videos instead of attending lecture until you are enrolled.
  • Lab section starts this week.

    • You should attend the lab that matches your discussion number.
    • You do not need to change your CalCentral enrollment in order to attend the lab that matches your discussion.
    • You can also attend the lab in which you are enrolled on CalCentral.
  • 61A mixers:

    • Monday 8/28 2:30-4pm or Tuesday 8/29 3:30-5pm in 430 Soda.
    • Refreshments provided by the undergrad advisors for the EECS & CS majors.
  • Suggested schedule for this week:

    • Monday: Complete Lab 00 and read Homework 01.

      • Want to get started early? Come to the homework party hosted by the course staff on Monday 8/28 6:30-8:00pm in 521 Cory.
    • Monday/Tuesday/Wednesday: Attend lab section and complete Lab 01 during section.
    • Wednesday/Thursday: Complete and submit Homework 00 and Homework 01.

    • Thursday/Friday: Attend discussion section and start on the Hog project.
Friday, August 25
  • Lab 0 is a take-home exercise that you should complete before coming to lab next week.
  • Homework 0 (a survey) and Homework 1 (not a survey) are due Thursday 8/31.

    • Come to the homework party hosted by the course staff on Monday 8/28 6:30-8:30pm in 521 Cory.
    • Post on Piazza under the pinned homework post or come to office hours if you want help.
    • (Most students will want help. Homework is supposed to be challenging.)
  • Lab section starts next week.

    • You should attend the lab that matches your discussion number.
    • You do not need to change your CalCentral enrollment in order to attend the lab that matches your discussion.
    • You can also attend the lab in which you are enrolled on CalCentral.
    • Lab exercises, check-offs, and discussion quizzes are worth points.
  • Online discussion and lab sections are available, starting next week.
  • 61A mixers hosted by the EECS department next week.

    • Monday 8/28 2:30-4pm or Tuesday 8/29 3:30-5pm in 430 Soda.
    • Hear about resources to help you succeed.
    • Find a study group or project partner.
    • Refreshments provided by the undergrad advisors for the EECS & CS majors.
Wednesday, August 23
  • Welcome to CS 61A!
  • Discussion sections begin this week! Please attend the section you signed up for on Cal Central.

    • You will be given instructions about lab next week.
    • Enrolled students have seating priority over waitlisted students in discussion and lab.
  • Lab 0 is posted. It's a take-home lab that you should complete before coming to lab next week.

    • If you run into trouble, you might have time at the end of discussion this week to get help. Otherwise, get help in lab next week.
  • Videos for Lecture 1 are available now! You don't even need to come to live lecture.
  • There are no lab sections or office hours this week.
  • Sign up for Piazza, the course forum.
  • If you have any further questions please post on Piazza.
Sunday, August 20
  • Welcome to CS 61A!
  • Discussion sections begin this week! Please attend the section you signed up for on Cal Central.
  • There are no lab sections or office hours this week.
  • Sign up for Piazza, the course forum.
  • If you have any further questions please post on Piazza.
Aug
23

Composing Programs

Introduction

Control & Environments

Environment Diagrams & Recursion

    Mon, Sep 04
  • Lab 2
    Fri 9/8
Sep
15

Composing Programs

Trees & Sequences

Growth & Nonlocals

Sep
29

Composing Programs

Object-Oriented Programming

Linked Lists & Midterm Review

Object-Oriented Programming

Trees