CS 61A: Structure and Interpretation of Computer Programs

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

Monday, April 23
  • 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.
Week 15 Class Material
  • Lecture 36: Distributed Data
  • Lecture 37: Natural Language
  • Lecture 38: Conclusion
  • Readings:
  • Disc 11: Final Review
  • Friday, April 20
    • Completely optional Scheme recursive art contest due Monday 4/23.
    • Homework 12 due Thursday 4/26.
    Wednesday, April 18
    • Homework 11 due Thursday 4/19.
    • Completely optional Scheme recursive art contest due Monday 4/23.
    Monday, April 16
    • 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.
    Friday, April 13
    • 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.
    Wednesday, April 11
    • 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.)
    Monday, April 9
    • 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.)
    Friday, April 6
    • 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.
    Wednesday, April 4
    • 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 re-download 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.
    • 3-D graphics in the extra lecture series this week, 4pm Wednesday 4/4 in 60 Evans.
    Monday, April 2
    • 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.
    Friday, March 23
    • Maps composition revisions and Midterm 2 regrade requests due Tuesday 4/3.
    • Homework 9 due Thursday 4/5.
    Wednesday, March 21
    • Homework 8 due Thursday 3/22.
    • Maps composition revisions and Midterm 2 regrade requests due Tuesday 4/3.
    Monday, March 19
    • 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.
    Friday, March 16
    • Homework 8 due Thursday 3/22.
    • Maps composition scores have been released!

      • Revisions due Tuesday 4/03. See Piazza for more details.
    Monday, March 12
    • Homework 7 due Tuesday 3/13.

      • Homework party Monday 3/12 6:30-8pm in 241 Cory.
    • Midterm 2 Thursday 3/15 7pm-9pm.

      • No lecture Wednesday 3/14.
      • Lecture Friday 3/16 is a (great) video.
      • No discussion or lab check-off 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 exam-level questions.
      • This week's topic is Orders of Growth.
      • Due to limited space, sign-ups are posted on Piazza every Monday at 5:00pm
    Friday, March 9
    • Homework 7 due Tuesday 3/13.
    • Midterm 2 Thursday 3/15 7pm-9pm.

      • Covers material through Friday 3/9.
      • Exam review information is posted on Piazza.
      • No lecture Wednesday 3/14.
      • No discussion next week.
    Wednesday, March 7
    • 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 7pm-9pm.

      • Covers material through Friday 3/9.
      • More details coming soon.
      • No lecture Wednesday 3/14.
      • No discussion next week.
    Monday, March 5
    • 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.
    Friday, March 2
    • 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.
    Wednesday, February 28
    • 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.
    Monday, February 26
    • Homework 5 due Thursday 3/1. It's worth 3 points because it's very long!

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

    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 Object-Oriented 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: Object-Oriented 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)