CS 61A: Structure and Interpretation of Computer Programs
Spring 2018
Instructor:
John DeNero
MWF 23 in Wheeler Auditorium
 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


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


Wed 3/21  Exceptions  
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 
Scheme
Thu 4/12


Wed 4/4  Tail Calls  
Fri 4/6  Macros 

HW 10
Thu 4/12


13  Mon 4/9  Iterators  
Wed 4/11  Streams  
Fri 4/13  Declarative Programming 
HW 11
Thu 4/19


14  Mon 4/16  Tables  
Wed 4/18  Aggregation  
Fri 4/20  Databases 
HW 12
Thu 4/26


15  Mon 4/23  Distributed Data  
Wed 4/25  Natural Language 


Fri 4/27  Conclusion 

HW 13
Thu 5/3


16  Tue 5/8  Final 