CS 61A: Structure and Interpretation of Computer Programs

Fall 2018
Instructor: John DeNero
MWF 1-2 in Wheeler Auditorium

Sunday, December 16
Week 15 Class Material
  • Lecture 36: Natural Language
  • Lecture 37: Final Examples
  • Lecture 38: Conclusion
  • CS 61A Textbook:
  • Friday, November 30
    Week 15 Class Material
  • Lecture 36: Natural Language
  • Lecture 37: Final Examples
  • Lecture 38: Conclusion
  • CS 61A Textbook:
  • Wednesday, November 28
    • Homework 11 due Thursday 11/29.
    • 61A Project Fair 2:30-4:30pm Friday 11/30 in Wozniak Lounge (430 Soda).
    • No video version of lecture on Friday 11/30; come to Wheeler Hall @ 1:10pm.

      • A screencast of live lecture will be available the following day.
    Week 15 Class Material
  • Lecture 36: Natural Language
  • Lecture 37: Final Examples
  • Lecture 38: Conclusion
  • CS 61A Textbook:
  • Monday, November 26
    • Optional Scheme Recursive Art Contest due Tuesday 11/27.
    • Homework 11 due Thursday 11/29.
    • 61A Project Fair 2:30-4:30pm Friday 11/30 in Wozniak Lounge (430 Soda).
    • No video version of lecture on Friday 11/30; come to Wheeler Hall @ 1:10pm.

      • A screencast of live lecture will be available the following day.
    Week 15 Class Material
  • Lecture 36: Natural Language
  • Lecture 37: Final Examples
  • Lecture 38: Conclusion
  • CS 61A Textbook:
  • Monday, November 19
    Friday, November 16
    • No lecture, discussion, or office hours Friday 11/16.
    • Ants composition revisions due Sunday, 11/18.
    • Optional Scheme Recursive Art Contest due Tuesday 11/27.
    Wednesday, November 14
    • Scheme project is due Wednesday 11/14.
    • Homework 10 is due Thursday 11/15.
    • Ants composition revisions due Sunday, 11/18.
    • Optional Scheme Recursive Art Contest due Tuesday 11/27.
    Friday, November 9
    • Guerrilla Section this Saturday 11/10, 12-2PM in Soda 271, 273
    • Scheme project is due Wednesday 11/14.

      • Early submission bonus on Tuesday 11/13.
    • Homework 10 is due Thursday 11/15.
    • Ants Composition Revision due Sunday, 11/18.
    • Optional Scheme Recursive Art Contest entries due Tuesday 11/27.
    Wednesday, November 7
    • Scheme project is due Wednesday 11/14.

      • Checkpoint 2 (many questions) is due Thursday 11/8.
      • Early submission bonus on Tuesday 11/13.
    • Homework 9 (1 question) is due Thursday 11/8.
    • Guerrilla Section this Saturday 11/10, 12-2PM in Soda 271, 273
    Monday, November 5
    • Scheme project is due Wednesday 11/14.

      • Checkpoint 1 (2 questions) is due Monday 11/5.
      • Checkpoint 2 (many questions) is due Thursday 11/8.
      • Early submission bonus on Tuesday 11/13.
    • Homework 9 (1 question) is due Thursday 11/8.
    Friday, November 2
    • Submit Maps composition revisions by Friday, 11/2.
    • Homework 9 (very short) is due Thursday 11/8.
    • Scheme project is due Wednesday 11/14.

      • Checkpoint 1 (2 questions) due Monday 11/5.
      • Checkpoint 2 (many questions) due Thursday 11/8.
      • Early submission bonus on Tuesday 11/13.
    Wednesday, October 31
    • Homework 8 is due Thursday 11/1.
    • Workshop on web development 6pm-8pm Thursday 11/1 in 430 Soda (sign up).
    • Submit Maps composition revisions by Friday, 11/2.
    • Scheme project is due Wednesday 11/14.

      • Checkpoint 1 (2 questions) due Monday 11/5.
      • Checkpoint 2 (many questions) due Thursday 11/8.
      • Early submission bonus on Tuesday 11/13.
    • Boo!
    Monday, October 29
    • Homework 8 is due Thursday 11/1.
    • Submit Maps composition revisions by Friday, 11/2.
    • Scheme project is due Wednesday 11/14.

      • Checkpoint 1 (2 questions) due Monday 11/5.
      • Checkpoint 2 (many questions) due Thursday 11/8.
      • Early submission bonus on Tuesday 11/13.
    Wednesday, October 24
    • Maps composition scores have been released. Revisions are due Friday, 11/2.

      • Submit revisions with python ok --revise
    • Guerrilla Section this Saturday 10/27, 12-2pm in Soda 271, 273
    • Homework 7 is due Thursday 10/25 and includes an anonymous mid-semester survey.
    • First ever 61A project fair is happening 11/30! See Piazza for details.
    • Use the online Scheme interpreter or download Homework 7 to use Scheme.
    Friday, October 19
    • Homework 7 due Thursday 10/25

      • Read Section 3.2 or watch lecture on Monday 10/22 first.
    • First ever 61A project fair is happening 11/30! See Piazza for details
    Week 9 Class Material
  • Lecture 23: Data Examples
  • Lecture 24: Users
  • CS 61A Textbook:
  • Monday, October 15
    • Midterm 2 is Wednesday 10/17 8pm-10:10pm.

      • Emphasis on tree recursion, mutable values, objects, and recursive data.
      • Includes lecture through Friday 10/12.
      • Most similar past midterm 2 exams: fa14, sp15, fa15, fa16, fa17, sp18
      • The Midterm 2 study guide will be included with your exam.
      • You may bring 2 two-sided sheets of hand-written notes.
      • Seating assignments will be released Tuesday 10/16.
    • No discussion on Wednesday 10/17 through Friday 10/19.
    • No lecture on Wednesday 10/17.
    • Lecture on Friday 10/19 is a (great) video.
    Week 9 Class Material
  • Lecture 23: Data Examples
  • Lecture 24: Users
  • CS 61A Textbook:
  • Friday, October 12
    • Guerrilla Section this Saturday 10/13, 12-2pm in Soda 271, 273
    • Midterm 2 is Wednesday 10/17 8pm-10:10pm.

      • Emphasis on tree recursion, mutable values, objects, and recursive data.
      • Includes lecture through Friday 10/12.
      • Most similar past midterm 2 exams: fa14, sp15, fa15, fa16, fa17, sp18
      • The Midterm 2 study guide will be included with your exam.
      • You may bring 2 two-sided sheets of hand-written notes.
      • Seating assignments will be released Tuesday 10/16.
      • No discussion on Wednesday 10/17 through Friday 10/19.
      • No lecture on Wednesday 10/17.
      • Lecture on Friday 10/19 is a (great) video.
    Wednesday, October 10
    • Ants project due Thursday 10/11.

      • Earn a bonus point for submitting by Wednesday 10/10.
    • Homework 6 is due Thursday 10/11.

      • It's very short.
    • Guerrilla Section this Saturday 10/13, 12-2pm in Soda 271, 273
    • Midterm 2 is Wednesday 10/17 8pm-10:10pm.

      • Emphasis on tree recursion, mutable values, objects, and recursive data.
      • Includes lecture through Friday 10/12.
      • Most similar past midterm 2 exams: fa14, sp15, fa15, fa16, fa17, sp18
      • The Midterm 2 study guide will be included with your exam.
      • You may bring 2 two-sided sheets of hand-written notes.
      • No lecture on Wednesday 10/17.
      • No discussion on Wednesday 10/17 through Friday 10/19.
      • Seating assignments will be released Tuesday 10/16.
    Monday, October 8
    • Ants project due Thursday 10/11.

      • Checkpoint due Monday 10/8.
      • Project party Monday 10/8 6:30-8pm.
      • Earn a bonus point for submitting by Wednesday 10/10.
    • Homework 6 is due Thursday 10/11.

      • It's very short.
    • Guerrilla Section this Saturday 10/13, 12-2pm in Soda 271, 273
    • Midterm 2 is Wednesday 10/17 8pm-10pm.
    Friday, October 5
    • Ants project due Thursday 10/11.

      • Checkpoint due Monday 10/8.
      • Earn a bonus point for submitting by Wednesday 10/10.
    • Homework 6 is due Thursday 10/11.

      • It's very short
    Wednesday, October 3
    • Homework 5 is due Thursday 10/4.
    • Ants project due Thursday 10/11.

      • Checkpoint due Monday 10/8.
      • Earn a bonus point for submitting by Wednesday 10/10.
    Monday, October 1
    • Homework 5 is due Thursday 10/4.
    • Ants project due Thursday 10/11.

      • Find a partner!
      • Checkpoint due Monday 10/8.
      • Earn a bonus point for submitting by Wednesday 10/10.
    Wednesday, September 26
    • Maps project due Thursday 9/27.

      • Earn an early submission bonus point by submitting on Wednesday 9/26.
    • Homework 5 is due Thursday 10/4.
    • Extra lecture on implementing mutable values using functions on Wednesday 9/26 3pm in 306 Soda.
    • Guerrilla Section this Saturday 9/29 12-2pm in Soda 271, 273

      • Covers Sequences, Data Abstraction, Trees
    Friday, September 21
    • Get an extra Midterm 1 point for transcribing your exam by Friday 9/21.
    • Hog strategy contest winners announced Monday 9/24.
    • Maps project due Thursday 9/27.

      • Project party on Monday 9/24 6:30-8pm at Cory 241.
      • Earn an early submission bonus point by submitting on Wednesday 9/26.
    • Homework 5 is due Thursday 10/4 (not next week).
    Wednesday, September 19
    • Homework 4 is due Thursday 9/20.
    • Get an extra Midterm 1 point for transcribing your exam by Friday 9/21.
    • Hog strategy contest winners announced Monday 9/24.
    • Maps project due Thursday 9/27.

      • Earn an early submission bonus point by submitting on Wednesday 9/26.
      • No homework due next week.
    Monday, September 17
    • Optional Hog strategy contest ends Monday 9/17.
    • Homework 4 is due Thursday 9/20.
    • Get an extra Midterm 1 point for transcribing your exam by Friday 9/21.
    • Maps project due Thursday 9/27.

      • Earn an early submission bonus point by submitting on Wednesday 9/26.
      • No homework due next week.
    Friday, September 14
    • Guerrilla Section on higher-order functions, writing code, and recursion, 12 - 2pm Saturday 9/15 in Soda 271/273.
    • Optional Hog strategy contest ends Monday 9/17.
    • Homework 4 is due Thursday 9/20.
    • How to get full credit on homework: solve most problems and try to solve all problems.
    Wednesday, September 12
    • Midterm 1 exams have been returned by email.
    • Homework 3 is due Thursday 9/13.
    • Optional Hog strategy contest ends Monday 9/17.
    • Guerrilla Section on HOFs code writing + Recursion 12 - 2pm Saturday September 15 Soda 271/273
    Friday, September 7
    • HKN review session: 12-3 PM Saturday September 8 in 306 Soda Hall
    • CSM review session: 3-6 PM Saturday September 8 in Genetics & Plant Biology 100
    • Midterm 1 on Monday 9/10 8pm-10pm in various locations across campus.

      • Emphasis on functions, assignment, iteration, higher-order functions, and environment diagrams.
      • Includes lecture through Wednesday 9/5.
      • Most similar past midterm 1 exams: fa14, sp15, fa15, fa16, fa17, sp18
      • No tree recursion (sum_largest on sp18; kbonacci on fa14)
      • The Midterm 1 study guide will be included with your exam.
      • You may bring 1 two-sided sheet of hand-written notes.
      • No lecture on Monday 9/10.
      • No lab on Monday 9/10, Tuesday 9/11, or Wednesday 9/12.
      • Seating assignments will be released Sunday 9/9. If you would like left-handed desk or have another seat request fill out this form by Friday 9/7 @ 11:59pm
    • Join a Computer Science Mentors (CSM) adjunct section by Sunday 9/9.
    • Optional Hog strategy contest ends Monday 9/17.
    • Homework 3 is due Thursday 9/13.
    Wednesday, September 5
    • Hog is due Thursday 9/6 @ 11:59pm.

      • Submit everything by Wednesday 9/5 for an early submission bonus point.
      • Come to office hours or post on Piazza if you're stuck!
    • Homework 2 is due Thursday 9/6 @ 11:59pm.
    • Join a Computer Science Mentors (CSM) adjunct section by Friday 9/7.
    • Midterm 1 on Monday 9/10 8pm-10pm in various locations across campus.

      • Emphasis on functions, assignment, iteration, higher-order functions, and environment diagrams.
      • Includes lecture through Wednesday 9/5.
      • Most similar past midterm 1 exams: fa14, fa15, fa16, fa17, sp18
      • No tree recursion (sum_largest on sp18; kbonacci on fa14)
      • The Midterm 1 study guide will be included with your exam.
      • You may bring 1 two-sided sheet of hand-written notes.
      • No lecture on Monday 9/10.
      • No lab on Monday 9/10, Tuesday 9/11, or Wednesday 9/12.
      • Seating will be released Sunday 9/9. If you would like left-handed desk or have another seat request fill out this form by Thursday 9/6 @ 11:59pm
    • Extra Lecture 2 continuing Newton's Method is Wednesday 9/5 @ 3pm in 306 Soda

      • Watch the videos from Lecture 1 for context.
      • It is now possible to enroll in CS 98-52 (1 unit P/NP for completing extra homework).
    Monday, September 3
    • Hog is due Thursday 9/6 @ 11:59pm.

      • Solve Phase 1 individually; Work with a partner on Phases 2 & 3.
      • Phase 1 checkpoint due Tuesday 9/4.
      • Submit everything by Wednesday 9/5 for an early submission bonus point.
    • Hog Project party Tuesday 9/4 6:30pm-8pm

      • Phase 1 in Cory 241
      • Phase 2 in Cory 247
      • Phase 3 in Cory 277, Cory 285
    • Homework 2 is due Thursday 9/6 @ 11:59pm.
    • Join a Computer Science Mentors (CSM) adjunct section by Friday 9/7.
    • Learn more & find partners at the 61A mixers hosted by the EECS department

      • Tuesday 9/4 10:45-11:10am and 3:45-4:10pm in Wozniak Lounge, 4th Floor of Soda Hall
    • Midterm 1 on Monday 9/10 8pm-10pm in various locations across campus.

      • Emphasis on functions, assignment, iteration, higher-order functions, and environment diagrams.
      • Includes lecture through Wednesday 9/5.
      • The Midterm 1 study guide will be included with your exam.
      • You may bring 1 two-sided sheet of hand-written notes.
      • No lecture on Monday 9/10.
      • No lab on Monday 9/10, Tuesday 9/11, or Wednesday 9/12.
      • Seating will be released Sunday 9/9. If you would like left-handed desk or have another seat request fill out this form by Thursday 9/6 @ 11:59pm
    Monday, September 3
    • Hog is due Thursday 9/6 @ 11:59pm.

      • Solve Phase 1 individually; Work with a partner on Phases 2 & 3.
      • Phase 1 checkpoint due Tuesday 9/4.
      • Project party Tuesday 9/4 6:30pm-8pm in Cory 241 & Cory 247.
      • Submit everything by Wednesday 9/5 for an early submission bonus point.
    • Homework 2 is due Thursday 9/6 @ 11:59pm.
    • Join a Computer Science Mentors (CSM) adjunct section by Friday 9/7.
    • Learn more & find partners at the 61A mixers hosted by the EECS department

      • Tuesday 9/4 10:45-11:10am and 3:45-4:10pm in Wozniak Lounge, 4th Floor of Soda Hall
    • Midterm 1 on Monday 9/10 8pm-10pm in various locations across campus.

      • Emphasis on functions, assignment, iteration, higher-order functions, and environment diagrams.
      • Includes lecture through Wednesday 9/5.
      • The Midterm 1 study guide will be included with your exam.
      • You may bring 1 two-sided sheet of hand-written notes.
      • No lecture on Monday 9/10.
      • No lab on Monday 9/10, Tuesday 9/11, or Wednesday 9/12.
    Friday, August 31
    • Hog is due Thursday 9/6 @ 11:59pm.

      • Solve Phase 1 individually; Work with a partner on Phases 2 & 3.
      • Phase 1 checkpoint due Tuesday 9/4.
      • Project party Tuesday 9/4 6:30pm-8pm in Cory 241 & Cory 247.
      • Submit everything by Wednesday 9/5 for an early submission bonus point.
    • Homework 2 is due Thursday 9/6 @ 11:59pm.
    • Guerrilla section Saturday 9/1 12pm-2pm in 271 Soda & 273 Soda.
    • Sign up for free one-on-one tutoring!
    • Coming soon: sign up for group mentoring!
    • Learn more & find partners at the 61A mixers hosted by the EECS department

      • Tuesday 9/4 10:45-11:10am and 3:45-4:10pm in Wozniak Lounge, 4th Floor of Soda Hall
    Wednesday, August 29
    • Homework 1 is due Thursday 8/30 @ 11:59pm.
    • Hog is due Thursday 9/6 @ 11:59pm.

      • Solve Phase 1 individually; Work with a partner on Phases 2 & 3.
      • Phase 1 checkpoint due Tuesday 9/4.
      • Project party Tuesday 9/4 6:30pm-8pm in Cory 241 & Cory 247.
      • Submit everything by Wednesday 9/5 for an early submission bonus point.
    • Guerrilla section Saturday 9/1 12pm-2pm in 271 Soda & 273 Soda.
    • No live lecture or lab Monday 9/3.

      • Video-only lecture isn't new material, but may be helpful.
      • Attend lab Tuesday/Wednesday or complete the lab at home.
    • First extra lecture on Newton's method this Wednesday 8/29 3pm-4pm in 306 Soda.
    Monday, August 27
    • Lab 00 is a take-home lab. Try to complete it before your lab this week.
    • Homework 1 is due Thursday 8/30 @ 11:59pm.

      • Homework party Monday 8/27 6:30pm-8pm in Cory 241 (& Cory 247).
    • Drop-in office hours start this week.
    • Hog is due Thursday 9/6 @ 11:59pm.

      • Solve Phase 1 individually; Work with a partner on Phases 2 & 3.
      • Phase 1 checkpoint due Tuesday 9/4.
      • Submit everything by Wednesday 9/5 for an early submission bonus point.
      • Project Party next Tuesday 9/4.
    • First extra lecture on Newton's method this Wednesday 8/29 3pm-4pm in 306 Soda.
    Friday, August 24
    • Lab 00 is a take-home lab. Try to complete it before your lab next week.

      • We are holding special office hours Friday 8/24 4pm-7pm in 611 Soda to help with Lab 00 (and anything else).
    • Homework 01 is due next Thursday 8/30 @ 11:59pm.

      • Homework party Monday 8/27 6:30pm-8pm in Cory 241 & Cory 247.
    • Extra office hours with John DeNero in 781 Soda on Monday 8/27 2:20-5pm.
    • Live lecture is in Zellerbach Hall Friday 8/24, but Wheeler Hall starting Monday 8/27.
    • Join Piazza for announcements and answers to your questions.
    • More section options will appear by Monday 8/27.
    • Mark your calendars for the midterms:

      • Midterm 1 is Monday 9/10 8pm-10pm in various locations across campus.
      • Midterm 2 is Wednesday 10/17 8pm-10pm in various locations across campus.
      • If you have a course conflict, see the exam policy.
    Tuesday, August 14
    • Welcome to CS 61A!
    • Join Piazza for announcements and answers to your questions.
    • Sign up for sections starting Friday 8/17 at 2pm.
    • The first and second lectures will be held in Zellerbach Hall.
    • The Summer 2018 website has moved to http://su18.cs61a.org.
    Week Date Lecture Textbook Handout Homework & Project
    1 Wed
    8/22
    Functions
    Lab 00: Getting Started
    Fri 8/31
    Fri
    8/24
    Names
    Disc 00: Getting Started
    HW 01
    Thu 8/30
    2 Mon
    8/27
    Control
    Lab 01: Variables & Functions, Control
    Fri 8/31
    Hog
    Thu 9/6
    Wed
    8/29
    Higher-Order Functions
    Disc 01: Environment Diagrams, Control
    Fri
    8/31
    Environments
    Guerrilla 01: Variables & Functions, Control, Environment Diagrams
    HW 02
    Thu 9/6
    3 Mon
    9/3
    Iteration
    Lab 02: Higher-Order Functions
    Fri 9/7
    Wed
    9/5
    Recursion
    Disc 02: Higher-Order Functions, Recursion Hog Contest
    Mon 9/17
    Fri
    9/7
    Function Examples
    Exam Prep 01: Environment Diagrams, Higher-Order Functions, Control
    HW 03
    Thu 9/13
    4 Mon
    9/10
    No Lecture
    Midterm 1 (8-10 PM)
    Wed
    9/12
    Tree Recursion
    Disc 03: Recursion, Tree Recursion
    Fri
    9/14
    Data Abstraction
    Exam Prep 02: Recursion, Tree Recursion

    Guerrilla 02: Higher-Order Functions, Recursion, Tree Recursion
    HW 04
    Thu 9/20
    5 Mon
    9/17
    Containers
    Lab 04: Python Lists, Data Abstraction
    Fri 9/21
    Maps
    Thu 9/27
    Wed
    9/19
    Trees
    Disc 04: Python Lists, Trees
    Fri
    9/21
    Mutable Values
    Exam Prep 03: Trees, Python Lists
    HW 05
    Thu 10/4
    6 Mon
    9/24
    Mutable Functions
    Lab 05: Python Lists, Trees
    Fri 9/28
    Wed
    9/26
    Iterators
    Disc 05: Nonlocal, Iterators & Generators
    Fri
    9/28
    Objects
    Exam Prep 04: Nonlocal, Iterators & Generators

    Guerrilla 03: Python Lists, Data Abstraction, Trees
    7 Mon
    10/1
    Inheritance
    Lab 06: Object-Oriented Programming
    Fri 10/5
    Ants
    Thu 10/11
    Wed
    10/3
    Representation
    Disc 06: Object-Oriented Programming
    Fri
    10/5
    Growth
    HW 06
    Thu 10/11
    8 Mon
    10/8
    Composition
    Lab 07: Linked Lists, Trees
    Fri 10/12
    Wed
    10/10
    Ordered Sets
    Disc 07: Orders of Growth, Linked Lists
    Fri
    10/12
    Tree Sets
    Exam Prep 05: Object-Oriented Programming, Orders of Growth, Tree Recursion, Linked Lists
    Guerrilla 04: Nonlocal, Mutable Trees, Iterators & Generators, Linked Lists, Orders of Growth
    9 Mon
    10/15
    Data Examples
    Lab 08: Midterm Review
    Fri 10/19
    Wed
    10/17
    No Lecture
    Midterm 2 (8-10 PM)
    Fri
    10/19
    Users
    HW 07
    Thu 10/25
    10 Mon
    10/22
    Scheme
    Lab 09: Scheme
    Fri 10/26
    Wed
    10/24
    Exceptions
    Disc 08: Scheme
    Fri
    10/26
    Calculator
    Exam Prep 06: Scheme, Scheme Lists, Interpreters

    Guerrilla 05: Scheme
    HW 08
    Thu 11/1
    11 Mon
    10/29
    Interpreters
    Lab 10: Interpreters
    Fri 11/2
    Scheme
    Wed 11/14
    Wed
    10/31
    Tail Calls
    Disc 09: Interpreters, Tail Recursion Scheme Challenge Version
    Wed 11/14
    Fri
    11/2
    Macros
    HW 09
    Thu 11/8
    12 Mon
    11/5
    Streams
    Lab 11: Macros
    Fri 11/9
    Wed
    11/7
    Declarative Programming
    Disc 10: Macros, Streams Scheme Contest
    Mon 11/26
    Fri
    11/9
    Tables
    Exam Prep 07: Tail Recursion

    Exam Prep 08: Macros

    Guerrilla 06: Streams, Tail Recursion, Interpreters, Macros
    HW 10
    Thu 11/15
    13 Mon
    11/12
    No Lecture: Veterans Day Lab 12: SQL
    Fri 11/16
    Wed
    11/14
    Aggregation
    Disc 11: SQL
    Fri
    11/16
    No Lecture: Classes Cancelled HW 11
    Thu 11/29
    14 Mon
    11/19
    Databases
    Wed
    11/21
    No Lecture: Thanksgiving Disc 12: Final Review
    Fri
    11/23
    No Lecture: Thanksgiving
    15 Mon
    11/26
    Natural Language
    Lab 13: Final Review
    Fri 11/30
    Wed
    11/28
    Final Examples
    Fri
    11/30
    Conclusion
    HW 12
    Fri 12/7
    16 Wed
    12/12
    Final (7-10 PM)