CS 61A: Structure and Interpretation of Computer Programs
Spring 2018
Instructor:
John DeNero
MWF 23 in Wheeler Auditorium
 Completely optional Scheme recursive art contest due Monday 4/23.
 Homework 12 due Thursday 4/26.
 No lecture videos on Friday 4/27. Come to live lecture.
 Completely optional Scheme recursive art contest due Monday 4/23.
 Homework 12 due Thursday 4/26.
 Homework 11 due Thursday 4/19.
 Completely optional Scheme recursive art contest due Monday 4/23.
Scheme project due Tuesday 4/17.
 Earn an early submission bonus point by finishing Monday 4/16.
 Homework 11 due Thursday 4/19.
 Completely optional Scheme recursive art contest due Monday 4/23.
Scheme project due Tuesday 4/17.
 Earn an early submission bonus point by finishing Monday 4/16.
 Homework 11 due Thursday 4/19.
 Completely optional Scheme recursive art contest due Monday 4/23.
Scheme project due Tuesday 4/17.
 Checkpoint 2 (Part 2) due Thursday 4/12.
 Earn an early submission bonus point by finishing Monday 4/16.
 Homework 10 due Thursday 4/12.
 Ants composition revisions due Friday 4/13. (See Piazza.)
Scheme project due Tuesday 4/17.
 Checkpoint 2 (Part 2) due Thursday 4/12.
 Earn an early submission bonus point by finishing Monday 4/16.
 Homework 10 due Thursday 4/12.
 Ants composition revisions due Friday 4/13. (See Piazza.)
Scheme project due Tuesday 4/17.
 Checkpoint 1 (Part 1) due Friday 4/6.
 Checkpoint 2 (Part 2) due Thursday 4/12.
 Earn an early submission bonus point by finishing Monday 4/16.
 Homework 10 due Thursday 4/12.
Ants composition scores have been released!
 Revisions due Friday 4/13. See Piazza for more details.
 Homework 9 due Thursday 4/5.
Scheme project due Tuesday 4/17.
 Checkpoint 1 (Part 1) due Friday 4/6.
 Checkpoint 2 (Part 2) due Thursday 4/12.
 Earn an early submission bonus point by finishing Monday 4/16.
 When we released Scheme, the order of Problems 4 & 5 were switched, and one of the Scheme tests was in the wrong place. If you downloaded the project before Wednesday 4/4 @ 1:15 AM, you will have to redownload the entire project. Copy and paste and code you wrote into the new folder and copy any questions you unlocked from the tests folder over except for 04.py and 05.py. If you wrote custom tests in tests.scm, copy ONLY those tests over (do not copy and paste the entire file). Sorry for the trouble.
Ants composition scores have been released!
 Revisions due Friday 4/13. See Piazza for more details.
 3D graphics in the extra lecture series this week, 4pm Wednesday 4/4 in 60 Evans.
 Maps composition revisions and Midterm 2 regrade requests due Tuesday 4/3.
 Homework 9 due Thursday 4/5.
Scheme project due Tuesday 4/17.
 Checkpoint 1 (Part 1) due Friday 4/6.
 Checkpoint 2 (Part 2) due Thursday 4/12.
 Earn an early submission bonus point by finishing Monday 4/16.
 Maps composition revisions and Midterm 2 regrade requests due Tuesday 4/3.
 Homework 9 due Thursday 4/5.
 Homework 8 due Thursday 3/22.
 Maps composition revisions and Midterm 2 regrade requests due Tuesday 4/3.
 Homework 8 due Thursday 3/22.
Maps composition scores have been released!
 Revisions due Tuesday 4/3. See Piazza for more details.
Midterm 2, solutions, and walkthrough videos are posted.
 Regrade requests using Gradescope due Tuesday 4/3.
 Homework 8 due Thursday 3/22.
Maps composition scores have been released!
 Revisions due Tuesday 4/03. See Piazza for more details.
Homework 7 due Tuesday 3/13.
 Homework party Monday 3/12 6:308pm in 241 Cory.
Midterm 2 Thursday 3/15 7pm9pm.
 No lecture Wednesday 3/14.
 Lecture Friday 3/16 is a (great) video.
 No discussion or lab checkoff this week, but there is still a lab assignment due Friday.
 Find study buddies using this Piazza thread.
Exam Prep Sections
 Exam Prep sections are optional events that discuss examlevel questions.
 This week's topic is Orders of Growth.
 Due to limited space, signups are posted on Piazza every Monday at 5:00pm
 Homework 7 due Tuesday 3/13.
Midterm 2 Thursday 3/15 7pm9pm.
 Covers material through Friday 3/9.
 Exam review information is posted on Piazza.
 No lecture Wednesday 3/14.
 No discussion next week.
Ants due Thursday 3/8.
 Earn an early submission bonus point by turning it in on Wednesday 3/7.
 Homework 6 due Thursday 3/8.
Midterm 2 Thursday 3/15 7pm9pm.
 Covers material through Friday 3/9.
 More details coming soon.
 No lecture Wednesday 3/14.
 No discussion next week.
Ants due Thursday 3/8.
 The project checkpoint is due Monday 3/5 @ 11:59pm.
 Earn an early submission bonus point by turning it in on Wednesday 3/7.
 Homework 6 due Thursday 3/8.
Ants due Thursday 3/8.
 The project checkpoint is due Monday 3/5 @ 11:59pm.
 Earn an early submission bonus point by turning it in on Wednesday 3/7.
 Homework 6 due Thursday 3/8.
 Watch/attend lecture on Monday before you go to lab next week.
 Homework 5 due Thursday 3/1.
Ants due Thursday 3/8.
 It's best to work with a partner from your section.
 The project checkpoint is due Monday 3/5 @ 11:59pm.
Homework 5 due Thursday 3/1. It's worth 3 points because it's very long!
 Homework party Tuesday 2/27 6:308pm in 247 Cory Hall.
Ants due Thursday 3/8.
 It's best to work with a partner from your section.
 The project checkpoint is due Monday 3/5 @ 11:59pm.
 Homework 5 due Thursday 3/1.
 Hog composition revisions are due Friday 2/23.
Maps project is due Thursday 2/22 @ 11:59pm.
 Submit by Wednesday 2/21 for an early submission bonus point.
Homework 5 due Thursday 3/1.
 It's a twoweek homework, worth 3 points instead of 2!
 The required part is challenging.
 The optional part is useful practice.
 Hog composition revisions are due Friday 2/23 @ 11:59pm.
Maps project is due Thursday 2/22 @ 11:59pm.
 Submit by Wednesday 2/21 for an early submission bonus point.
Homework 5 due Thursday 3/1.
 It's a twoweek homework, worth 3 points instead of 2!
 The required part is challenging.
 The optional part is useful practice.
Homework 4 due Thursday 2/15.
 It's long! Get to work.
Maps project is due Thursday 2/22 @ 11:59pm.
 Submit by Wednesday 2/21 for an early submission bonus point.
 Hog contest due Monday 2/12 and is completely optional.
Homework 4 due Thursday 2/15.
 Homework party Monday 2/12 6:308pm in 247 Cory Hall.
Maps project is due Thursday 2/22 @ 11:59pm.
 Complete this project alone. (The next two will be partner projects.)
 There is no checkpoint submission required.
 It's the shortest project, but it's still a big project, so start early!
The Midterm 1 exam and solutions are posted.
 The staff created a walkthrough video of Midterm 1
 Midterm 1 is only 40 out of 300 points, and you can recover points if you scored below 20.
 Hog contest is due Monday 2/12 and is completely optional.
Homework 4 due Thursday 2/15.
 Homework party Monday 2/12 6:308pm in 247 Cory Hall.
The Midterm 1 exam and solutions are posted.
 The staff created a walkthrough video of Midterm 1
 Midterm 1 is only 40 out of 300 points.
CS Mentors signups open at 3pm Friday 2/9.
 Smallgroup weekly mentoring sessions that help prepare students for exams.
 An experienced student who will help you make progress.
 Step 1. Sign up for the scheduler
 Step 2. Read about mentors
 Step 3. Enter your preferences by Noon on Sunday 2/11.
 If you sign up in time, you can get a unit of credit for attending the mentoring sessions.
 See the CS Mentors for 61A Piazza for more information.
 Hog contest is due Monday 2/12 and is completely optional.
Homework 4 due Thursday 2/15.
 Homework party Monday 2/12 6:308pm in 247 Cory Hall.
Your midterm might be graded by Monday.
 Midterm 1 is only 40 out of 300 points.
CS Mentors signups open at 3pm Friday 2/9.
 Smallgroup weekly mentoring sessions that help prepare students for exams.
 An experienced student who will help you make progress.
 Step 1. Sign up for the scheduler
 Step 2. Read about mentors
 Step 3. Enter your preferences by Noon on Sunday 2/11.
 If you sign up in time, you can get a unit of credit for attending the mentoring sessions.
 See the CS Mentors for 61A Piazza for more information.
Homework 03 is due Tuesday 2/6 @ 11:59pm.
 Homework party Monday 2/5 @ 6:30pm  8pm in 247 Cory Hall.
 Hog contest is due Monday 2/12 and is completely optional.
Midterm 1 is Thursday 2/8 @ 8pm10pm in various locations around campus.
 Please arrive by 8pm; we will distribute exams/materials and the exam will start promptly at 8:10pm.
 No lecture on Wednesday 2/7.
 There is a lab assignment, but there will be no discussion or lab checkoffs.
Homework 03 is due Tuesday 2/6 @ 11:59pm.
 Homework party Monday 2/5 @ 6:30pm  8pm in 247 Cory Hall.
 Hog contest is due Monday 2/12 and is completely optional. The top three winners will receive extra credit.
Midterm 1 is Thursday 2/8 @ 8pm10pm in various locations around campus.
 Please arrive by 8pm; we will distribute exams/materials and the exam will start promptly at 8:10pm.
 If you have a special seating request (lefthanded desk, etc.), fill out this form by Sunday @ 11:59 PM.
 HKN Midterm 1 Review Session on Saturday 2/3 from 710pm in HP Auditorium
 CSM Midterm 1 Review Session on Saturday 2/3 from 57pm in A1 Hearst Field Annex
 No lecture on Wednesday 2/7.
 Next week there will be a lab assignment, but there will be no discussion or lab checkoffs.
 Hog project is due Thursday 2/1 @ 11:59pm.
 Submit the entire project by Wednesday 1/31 @ 11:59pm for an early submission bonus point.
 Homework 02 is due Thursday 2/1 @ 11:59pm.
Homework 03 is due Tuesday 2/6 @ 11:59pm.
 Homework party Monday 2/5 @ 6:30pm  8pm in 247 Cory Hall.
Midterm 1 is Thursday 2/8 @ 8pm10pm in various locations around campus.
 Please arrive by 8pm; we will distribute exams/materials and the exam will start promptly at 8:10pm.
 Hog project is due Thursday 2/1 @ 11:59pm.
 Submit the entire project by Wednesday 1/31 @ 11:59pm for an early submission bonus point.
 Homework 02 is due Thursday 2/1 @ 11:59pm.
 Homework 03 is due Tuesday 2/6 @ 11:59pm.
Midterm 1 is Thursday 2/8 @ 8pm10pm in various locations around campus.
 Please arrive by 8pm; we will distribute exams/materials and the exam will start promptly at 8:10pm.
 Extra Lecture 2 on Decisions on Wednesday 1/31 4pm5pm in 60 Evans.
 Hog project is due Thursday 2/1 @ 11:59pm.
 Complete Checkpoint 1 individually by Monday 1/29 @ 11:59pm.
 Hog Project party on Monday 1/29 6:308:00pm in 247 Cory Hall
 Once you have submitted Checkpoint 1, you can work with a partner on the rest.
 Submit the entire project by Wednesday 1/31 for an early submission bonus point.
Homework 02 is due Thursday 2/1 @ 11:59pm.
 It only has two questions!
 Finish Hog on Wednesday, then finish Homework 02 on Thursday.
 Extra staff will be available in dropin office hours this week!
Exam Prep Sections are starting this week.
 These are not a replacement for discussion section. Exam Prep sections are an additional resource to go over examlevel questions.
 Due to limited space, signups for Exam Prep sections will be posted on Piazza on Monday 1/29 at 5:00pm
 Hog project is due Thursday 2/1 @ 11:59pm.
 Complete Checkpoint 1 individually by Monday 1/29 @ 11:59pm.
 Once you have submitted Checkpoint 1, you can work with a partner on the rest.
 Submit the entire project by Wednesday 1/31 for an early submission bonus point.
Homework 02 is due Thursday 2/1 @ 11:59pm.
 It only has two questions!
 Finish Hog on Wednesday, then finish Homework 02 on Thursday.
More lab/discussion section slots opened today.
 Want to swap sections? See this Piazza thread.
 Homework 01 is due Thursday 1/25 @ 11:59pm.
 Hog project is due Thursday 2/1 @ 11:59pm.
 Complete Checkpoint 1 individually by Monday 1/29 @ 11:59pm.
 Once you have submitted Checkpoint 1, you can work with a partner on the rest.
 Submit the entire project by Wednesday 1/31 for an early submission bonus point.
 The EECS department is holding a 61A social mixers Wednesday 1/24 45pm in Wozniak Lounge (430 Soda).
Extra Lecture 1 on Newton's Method is Wednesday 1/24 45pm in 60 Evans.
 You can get 1 unit of P/NP credit for coming regularly to extra lectures.
 Come to the extra lecture for details, which will also be posted to the extra lecture schedule.
More lab/discussion section slots will open on Wednesday 1/24 (once we count open seats)
 If you can go to the lab for which you're signed up, do that.
 If not, go to some lab, but give seating priority to signed up students. (I recommend evenings.)
 Signup instructions.
 Want to swap sections? See this Piazza thread.
 Complete Lab 00 and Lab 01 by Friday 1/26 @ 11:59pm. You can finish both by coming to lab.
Homework 01 is due Thursday 1/25 @ 11:59pm.
 Homework party on Monday 1/22 6:308:00pm in 247 Cory Hall.
 Hog project is due Thursday 2/1 @ 11:59pm.
 Get started this week!
 Use the subset of Python that you've learned so far in this class. (You'll thank me later.)
 Complete Checkpoint 1 individually by Monday 1/29 @ 11:59pm. (Earlier is much better.)
 Once you have submitted Checkpoint 1, you can work with a partner on the rest. (Find a partner now.)
 Your submission to Checkpoint 1 should not be copied from someone else. (Even your future partner.)
 Once you partner up, compare code for the first few questions. (You might learn something.)
 Only your final submission will be graded for composition.
 Submit the entire project by Wednesday 1/31 for an early submission bonus point.
 Recommended schedule: Finish Homework 1 on Tuesday; Finish Hog Checkpoint 1 on Thursday.
The EECS department is holding two 61A social mixers this week.
 Tuesday 1/23 1:302:30pm in Wozniak Lounge (430 Soda), or
 Wednesday 1/24 45pm in Wozniak Lounge (430 Soda)
 Learn about resources to help you succeed.
 Hear advice from students who have been successful in past semesters.
 Form a study group.
 Free Food!
Every student should have signed up for a discussion and lab section.
 Lab starts Monday 1/22 (next week).
 Want to swap sections? See this Piazza thread.
 Lab 00 is a takehome lab, due next Friday 1/26.
Homework 01 is due next Thursday 1/25.
 Homework party on Monday 1/21 6:308:00pm in 247 Cory.
 Read the course policies.
Mark your calendars for the midterms:
 Midterm 1 is Thursday 2/8 8pm10pm in various locations across campus.
 Midterm 2 is Thursday 3/15 7pm9pm in various locations across campus.
 If you have a course conflict, see the exam policy.
 Welcome to CS 61A!
 The course forum called Piazza is now available.
Every student should have signed up for a discussion and lab section.
 Discussion starts Wednesday 1/17 (this week).
 Lab starts Monday 1/22 (next week).
 Want to swap sections? See this Piazza thread.
Lab 00 is a takehome lab, due next Friday 1/26.
 Come to staff dropin office hours this Thursday & Friday to get help with lab 00 or talk about the course.
Mark your calendars for the midterms:
 Midterm 1 is Thursday 2/8 8pm10pm in various locations across campus.
 Midterm 2 is Thursday 3/15 7pm9pm in various locations across campus.
 If you have a course conflict, see the exam policy.
 Welcome to CS 61A!
 The course forum called Piazza is now available.
Every student will sign up for a discussion and lab section.
 Online signups for section times and locations will be available on Thursday 1/11 @ 5pm.
 Discussion will be held Wednesday afternoon, Thursday, and Friday morning, starting Wednesday 1/17 (week 1).
 Lab will be held Monday afternoon, Tuesday, and Wednesday morning, starting Monday 1/22 (week 2).
 We will be special holding office hours to help students with lab setup and any other course related concerns.
Mark your calendars for the midterms:
 Midterm 1 is Thursday 2/8 8pm10pm in various locations across campus.
 Midterm 2 is Thursday 3/15 7pm9pm in various locations across campus.
 If you have a course conflict, you will have a chance to tell us about it soon. Stay tuned.
 If you're interested in finding another student to swap your section with, comment in this thread on Piazza. This is in order to reduce clutter. When both students confirm the swap in the thread, we'll swap you. No need to email cs61a@berkeley.edu as stated previously.
Week  Date  Lecture  Reading  Handout  Homework & Project 

1  Mon 1/15  No Lecture: Holiday (MLK)  
Wed 1/17 
Functions

Lab 00: Introduction & Workflow
Fri 1/26


Fri 1/19 
Names

Disc 00: Lost on the Moon 
HW 01
Thu 1/25


2  Mon 1/22 
Control

Lab 01: Expressions & Control
Fri 1/26

Hog
Thu 2/1


Wed 1/24 
HigherOrder Functions

Disc 01: Control & Environments 
HW 02
Thu 2/1


Fri 1/26 
Environments


3  Mon 1/29 
Iteration


Lab 02: HigherOrder Functions & Lambdas
Fri 2/2


Wed 1/31 
Recursion

Disc 02: Environment Diagrams & Recursion
Exam Prep 01: HigherOrder Functions & Environment Diagrams 
HW 03
Tue 2/6


Fri 2/2 
Tree Recursion

Hog Contest
Mon 2/12


4  Mon 2/5 
Function Examples


Lab 03: Recursion and Midterm Review
Fri 2/9


Wed 2/7  No Lecture: Midterm 1 is the next day  CSM 00: Midterm 1 Review
Exam Prep 02: Recursion & Lambda Functions 

Thu 2/8  Midterm 1  
Fri 2/9 
Data Abstraction

HW 04
Thu 2/15


5  Mon 2/12 
Containers

Lab 04: Data Abstraction and Lists
Fri 2/16
CSM 01: Tree Recursion and Data Abstraction 
Maps
Thu 2/22


Wed 2/14 
Trees

Disc 03: Trees & Sequences  
Fri 2/16 
Mutable Values

HW 05
Thu 3/1


6  Mon 2/19  No Lecture: Holiday (President's Day) 
Lab 05: Mutable Sequences and Trees
Fri 2/23
CSM 02: Lists and Trees 

Wed 2/21 
Mutable Functions

Disc 04: Nonlocals & Mutation
Exam Prep 03: Lists, Trees, & Tree Recursion 

Fri 2/23 
Objects


7  Mon 2/26 
Inheritance

Lab 06: Object Oriented Programming
Fri 3/2
CSM 03: Mutation and Nonlocal 
Ants
Thu 3/8


Wed 2/28 
Representation

Disc 05: Object Oriented Programming
Exam Prep 04: List Mutation, Dictionaries, & More Trees 

Fri 3/2 
Growth

HW 06
Thu 3/8


8  Mon 3/5 
Composition

Lab 07: Recursive Objects
Fri 3/9
CSM 04: OOP and OOG 

Wed 3/7 
Ordered Sets

Disc 06: Growth & Linked Lists
Exam Prep 05: Nonlocal and ObjectOriented Programming 

Fri 3/9 
Tree Sets

HW 07
Tue 3/13


9  Mon 3/12 
Data Examples


Lab 08: Midterm Review
Fri 3/16
CSM 05: Linked Lists and Midterm Review 

Wed 3/14  No Lecture: Midterm 2 is the next day  Exam Prep 06: Orders of Growth and Linked Lists  
Thu 3/15  Midterm 2  
Fri 3/16 
Users


HW 08
Thu 3/22


10  Mon 3/19 
Scheme

Lab 09: Scheme
Fri 3/23
CSM 06: Introduction to Scheme 

Wed 3/21 
Exceptions

Disc 07: Scheme  
Fri 3/23 
Calculator

HW 09
Thu 4/5


11  Mon 3/26  No Lecture: Spring Break  
Wed 3/28  No Lecture: Spring Break  
Fri 3/30  No Lecture: Spring Break  
12  Mon 4/2 
Interpreters

Lab 10: Interpreters
Fri 4/6

Scheme
Tue 4/17


Wed 4/4 
Tail Calls

Disc 08: Interpreters & Tail Calls
Exam Prep 07: ObjectOriented Programming Trees and Linked Lists 

Fri 4/6 
Macros


HW 10
Thu 4/12


13  Mon 4/9 
Iterators

Lab 11: Iterators and Generators
Fri 4/13


Wed 4/11 
Streams

Disc 09: Macros & Streams
Exam Prep 08: Scheme and Tail Recursion 

Fri 4/13 
Declarative Programming

HW 11
Thu 4/19
Scheme Art
Mon 4/23


14  Mon 4/16 
Tables

Lab 12: SQL and Aggregation
Fri 4/20


Wed 4/18 
Aggregation

Disc 10: SQL
Exam Prep 09: More Scheme, Interpreters, Streams, and Macros 

Fri 4/20 
Databases

HW 12
Thu 4/26


15  Mon 4/23 
Distributed Data

Lab 13: Final Review
Fri 4/27


Wed 4/25  Natural Language 

Disc 11: Final Review  
Fri 4/27  Conclusion 

HW 13
Thu 5/3


16  Tue 5/8  Final (11:30 am  2:30 pm) 