CS 61A: Structure and Interpretation of Computer Programs

Spring 2018
Instructor: John DeNero
MWF 2-3 in Wheeler Auditorium

Friday, February 23
  • Homework 5 due Thursday 3/1.
  • Hog composition revisions are due Friday 2/23.
Wednesday, February 21
  • 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 two-week 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.
Friday, February 16
  • 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 two-week homework, worth 3 points instead of 2!
    • The required part is challenging.
    • The optional part is useful practice.
Wednesday, February 14
  • 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.
Monday, February 12
  • Hog contest due Monday 2/12 and is completely optional.
  • Homework 4 due Thursday 2/15.

    • Homework party Monday 2/12 6:30-8pm 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.

Saturday, February 10
Friday, February 9
  • Hog contest is due Monday 2/12 and is completely optional.
  • Homework 4 due Thursday 2/15.

    • Homework party Monday 2/12 6:30-8pm in 247 Cory Hall.
  • Your midterm might be graded by Monday.

    • Midterm 1 is only 40 out of 300 points.
  • CS Mentors sign-ups open at 3pm Friday 2/9.

Monday, February 5
  • 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 @ 8pm-10pm 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 check-offs.
Friday, February 2
  • 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 @ 8pm-10pm 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 (left-handed desk, etc.), fill out this form by Sunday @ 11:59 PM.
    • HKN Midterm 1 Review Session on Saturday 2/3 from 7-10pm in HP Auditorium
    • CSM Midterm 1 Review Session on Saturday 2/3 from 5-7pm 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 check-offs.
Thursday, February 1
  • 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 @ 8pm-10pm in various locations around campus.

    • Please arrive by 8pm; we will distribute exams/materials and the exam will start promptly at 8:10pm.
Wednesday, January 31
  • 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 @ 8pm-10pm 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 4pm-5pm in 60 Evans.
Monday, January 29
  • 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:30-8: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 drop-in 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 exam-level questions.
    • Due to limited space, sign-ups for Exam Prep sections will be posted on Piazza on Monday 1/29 at 5:00pm
Friday, January 26
  • 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.
Wednesday, January 24
  • More lab/discussion section slots opened today.

  • 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 4-5pm in Wozniak Lounge (430 Soda).
  • Extra Lecture 1 on Newton's Method is Wednesday 1/24 4-5pm 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.
Monday, January 22
  • 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.)
    • Sign-up 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:30-8: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:30-2:30pm in Wozniak Lounge (430 Soda), or
    • Wednesday 1/24 4-5pm 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!
Friday, January 19
  • Every student should have signed up for a discussion and lab section.

  • Lab 00 is a take-home lab, due next Friday 1/26.
  • Homework 01 is due next Thursday 1/25.

    • Homework party on Monday 1/21 6:30-8:00pm in 247 Cory.
  • Read the course policies.
  • Mark your calendars for the midterms:

    • Midterm 1 is Thursday 2/8 8pm-10pm in various locations across campus.
    • Midterm 2 is Thursday 3/15 7pm-9pm in various locations across campus.
    • If you have a course conflict, see the exam policy.
Wednesday, January 17
  • 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 take-home lab, due next Friday 1/26.

    • Come to staff drop-in 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 8pm-10pm in various locations across campus.
    • Midterm 2 is Thursday 3/15 7pm-9pm in various locations across campus.
    • If you have a course conflict, see the exam policy.
Tuesday, January 9
  • Welcome to CS 61A!
  • The course forum called Piazza is now available.
  • Every student will sign up for a discussion and lab section.

    • Online sign-ups 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 8pm-10pm in various locations across campus.
    • Midterm 2 is Thursday 3/15 7pm-9pm 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
Higher-Order Functions
Disc 01: Control & Environments HW 02
Thu 2/1
Fri 1/26
Environments
3 Mon 1/29
Iteration
Lab 02: Higher-Order Functions & Lambdas
Fri 2/2
Wed 1/31
Recursion
Disc 02: Environment Diagrams & Recursion
Exam Prep 01: Higher-Order 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
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 Ants
Thu 3/8
Wed 2/28 Representation
Fri 3/2 Growth HW 06
Thu 3/8
8 Mon 3/5 Hierarchy
Wed 3/7 Ordered Sets
Fri 3/9 Tree Sets
9 Mon 3/12 Data Examples
Wed 3/14 No Lecture: Midterm 2 is the next day
Thu 3/15 Midterm 2
Fri 3/16 Users
HW 07
Thu 3/22
10 Mon 3/19 Scheme
Wed 3/21 Exceptions
Fri 3/23 Calculator HW 08
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 09
Thu 4/12
13 Mon 4/9 Iterators
Wed 4/11 Streams
Fri 4/13 Declarative Programming HW 10
Thu 4/19
14 Mon 4/16 Tables
Wed 4/18 Aggregation
Fri 4/20 Databases HW 11
Thu 4/26
15 Mon 4/23 Distributed Data
Wed 4/25 Natural Language
Fri 4/27 Conclusion
HW 12
Thu 5/3
16 Tue 5/8 Final