CS 61A: Structure and Interpretation of Computer Programs

Fall 2019
Instructor: John DeNero
MW 2:10-3:00 in 1 Pimentel; F 2:10-3 in 105 Stanley

Monday, November 18
  • Scheme project is due Wednesday 11/20.

    • Project party 6:30pm Monday 11/18 in 241 Cory.
    • Complete the project by Tuesday 11/19 for an early submission bonus point.
  • Homework 9 is due Thurday 11/21.
  • No live lab or office hours during Thanksgiving week: 11/25 and 11/26.
  • Video-only lecture Monday 11/25.
  • Optional Scheme Recursive Art Contest entries are due Monday 12/2.
  • Only 2 days left to order your CS 61A shirt! See Piazza for details.
Week 13 Class Material
  • Lecture 33: Tables
  • Lecture 34: Aggregation
  • Lecture 35: Databases
  • CS 61A Textbook:
  • Disc 12: SQL
  • Friday, November 15
    • Scheme project is due Wednesday 11/20.

      • Complete the project by Tuesday 11/19 for an early submission bonus point.
    • Guerrilla section on interpreters, tail recursion, and macros 12pm-2pm Saturday 11/16 in Soda 271, 273, and 275.
    • Homework 9 is due Thurday 11/21.
    • Optional Scheme Recursive Art Contest entries are due Monday 12/2.
    • Only 5 days left to order your CS 61A shirt! See Piazza for details.
    Wednesday, November 13
    • Homework 8 is due Thurday 11/14 (very short).
    • Scheme project is due Wednesday 11/20.

      • Checkpoint is due Thursday 11/14.
      • Complete the project by Tuesday 11/19 for an early submission bonus point.
    • Guerrilla section on interpreters, tail recursion, and macros 12pm-2pm Saturday 11/16 in Soda 271, 273, and 275.
    • Optional Scheme Recursive Art Contest entries are due Monday 12/2.
    • Order your CS 61A T-shirt today! See Piazza for details.
    Wednesday, November 6
    • Homework 7 is due Thursday 11/7.
    • Cats composition revisions are due Tuesday 11/12.
    • Scheme project is due Wednesday 11/20.

      • Complete the project by Tuesday 11/19 for an early submission bonus point.
      • Checkpoint is due Thursday 11/14.
      • The optional challenge version is posted.
    • Optional Project Fair 12:30-3:30 on Sunday 12/15.

      • Register by Monday 11/16.
    Monday, November 4
    • Homework 6 and Lab 9 were extended to Monday 11/4.
    • Please submit Midterm 2 regrade requests by Monday 11/4 (exam and solutions).
    • Homework 7 is due Thursday 11/7.
    • Cats composition revisions are due Tuesday 11/12.
    • Scheme project is due Wednesday 11/20.

      • Complete the project by Tuesday 11/19 for an early submission bonus point.
      • Checkpoint is due Thursday 11/14.
    • Optional Project Fair 12:30-3:30 on Sunday 12/15.

      • Register by Monday 11/16.
    Friday, November 1
    • Homework 6 extended to Monday 11/4.
    • Lab 9 extended to Monday 11/4.
    • Homework 7 is due Thursday 11/7.
    • Guerrilla section on Scheme this Saturday 11/2, 12pm-2pm in Soda 271, 273, 275.
    • Please submit Midterm 2 regrade requests by Monday 11/4 (exam and solutions).
    Wednesday, October 30
    • Homework 6 extended to Friday 11/1.
    • Please submit Midterm 2 regrade requests by Monday 11/4 (exam and solutions).
    • Guerrilla section on Scheme this Saturday 11/2, 12pm-2pm in Soda 271, 273, 275.
    Monday, October 28
    • Video-only lecture Monday 10/28.
    • Homework 6 extended to Friday 11/1.
    • Students who missed lab on Monday are welcome to attend any lab on Tuesday or Wednesday.
    • Midterm 2 exam and solutions are posted.

      • If you took the exam, you should have received an email from Gradescope with your graded exam.
      • Please submit regrade requests by Monday 11/4.
    Friday, October 25
    • Video-only lecture Friday 10/25.
    Week 9 Class Material
  • Lecture 23: Data Examples
  • Lecture 24: Users
  • CS 61A Textbook:
  • Week 9 Resources
    Monday, October 21
    • Homework 5 is due Tuesday 10/22.

      • Homework party Monday 10/21 6:30pm-8pm in 241 Cory.
    • Midterm 2 is 8pm-10pm Thursday 10/24.

      • Covers lecture content through Wednesday 10/16.
      • You can bring two 2-sided sheets of handwritten notes.
      • We will provide:

      • Seats assigned Wednesday 10/23.
    • No lecture next Wednesday 10/23.
    • No discussion section Wed 10/23 through Fri 10/25.
    • Video-only lecture Friday 10/25.
    Week 9 Class Material
  • Lecture 23: Data Examples
  • Lecture 24: Users
  • CS 61A Textbook:
  • Week 9 Resources
    Friday, October 18
    • The Ants Project deadline is extended to Friday 10/18.

      • Extra office hours Friday 10/18 4pm-8pm in 430 Soda (Wozniak Lounge).
    • Guerrilla Section 12-2pm Saturday 10/19 in Soda 271, 273, 275.

      • Topics covered: lists, mutation, trees, non-local assignment, linked lists, iterators, and generators.
    • Homework 5 is due Tuesday 10/22.
    • Midterm 2 is 8pm-10pm Thursday 10/24.

      • Covers lecture content through Wednesday 10/16.
      • You can bring two 2-sided sheets of handwritten notes.
      • Different treatment of orders of growth this semester.
      • No BTree class covered in lecture this semester.
      • Seats assigned Wednesday 10/23.
      • No lecture next Wednesday 10/23.
      • No discussion section Wed 10/23 through Fri 10/25.
    Wednesday, October 16
    • Guest additional topics lecture 5-6pm Wed 10/16 in 3106 Etcheverry.

      • Rahul Arya describes how to build the GUI from the Cats project.
    • The Ants Project deadline is extended to Friday 10/18.

      • Early submission bonus point deadline is extended to Thursday 10/17.
    • Guerrilla Section 12-2pm Saturday 10/19 in Soda 271, 273, 275.

      • Topics covered: lists, mutation, trees, non-local assignment, linked lists, iterators, and generators.
    • Homework 5 is due Tuesday 10/22.
    • Midterm 2 is 8pm-10pm Thursday 10/24.

      • Covers lecture content through Wednesday 10/16.
      • You can bring two 2-sided sheets of handwritten notes.
      • Different treatment of orders of growth this semester.
      • No BTree class covered in lecture this semester.
      • Seats assigned Wednesday 10/23.
      • No lecture next Wednesday 10/23.
      • No discussion section Wed 10/23 through Fri 10/25.
    Monday, October 14
    • Extra office hours Monday 10/14 3:30-6:30 in Soda 275.
    • Homework/Project party Monday 10/14 6:30-8pm in Cory 241.

      • We will be prioritizing questions for Homework 4 and Phase 1&2 of Ants
    • Homework 4 deadline is extended to Monday 10/14 @ 11:59pm due to class cancellations.
    • Hog Composition Revision deadline is extended to Monday 10/14.
    • Lab 6 deadline is extended to Monday 10/14.
    • The Ants Project deadline is extended to Friday 10/18.

      • Checkpoint deadline is extended to Tuesday 10/15.
      • Early submission bonus point deadline is extended to Thursday 10/17.
    • Homework 5 is due Tuesday 10/22.
    • Midterm 2 is 8pm-10pm Thursday 10/24.
    Friday, October 11
    • Lecture 19 (Friday 10/11) is an online-only lecture.
    • Online office hours Friday 10/11 1pm-3pm.
    • Extra office hours Monday 10/14 3:30-6:30 in Soda 275.
    • Homework/Project party Monday 10/14 6:30-8pm in Cory 241.
    • Extra office hours Friday 10/18, time and location TBD.
    • Homework 4 deadline is extended to Monday 10/14 @ 11:59pm due to class cancellations.
    • Hog Composition Revision deadline is extended to Monday 10/14.
    • Lab 6 deadline is extended to Monday 10/14.
    • All students will receive discussion attendance credit this week.
    • The Ants Project deadline is extended to Friday 10/18.

      • Checkpoint deadline is extended to Tuesday 10/15.
      • Early submission bonus point deadline is extended to Thursday 10/17.
    • Online discussion section Friday 10/11 5pm-6:30pm.
    Week 7 Class Material
  • Lecture 17: Objects
  • Lecture 18: Inheritance
  • Lecture 19: Representation
  • CS 61A Textbook:
  • Disc 06: Mutability, Object-Oriented Programming
  • Wednesday, October 9
    • Lecture 18 (Wednesday 10/09) is an online-only lecture.
    • Homework 4 deadline is extended to Monday 10/14 @ 11:59pm due to class cancellations.
    • Hog Composition Revision deadline is extended to Monday 10/14.
    • Lab 6 deadline is extended to Monday 10/14.
    • All students will receive discussion attendance credit this week.
    • The Ants Project deadline is extended to Friday 10/18.

      • Checkpoint deadline is extended to Tuesday 10/15.
      • Early submission bonus point deadline is extended to Thursday 10/17.
    Week 7 Class Material
  • Lecture 17: Objects
  • Lecture 18: Inheritance
  • Lecture 19: Representation
  • CS 61A Textbook:
  • Disc 06: Mutability, Object-Oriented Programming
  • Monday, October 7
    • Guest lectures next Monday 10/7 (Catherine Cang) and Wednesday 10/9 (Kavi Gupta).
    • Additional topics guest lecture next Wednesday 10/9 @ 5pm (Rahul Arya).
    • Homework 4, due Thursday 10/10, is long and worth 4 points.
    • Hog Composition Revisions are due Thursday 10/10.
    • The Ants Project is due Thursday 10/17.

      • Checkpoint due Monday 10/14.
      • Early submission bonus point for submitting by Wednesday 10/16.
    Week 7 Class Material
  • Lecture 17: Objects
  • Lecture 18: Inheritance
  • Lecture 19: Representation
  • CS 61A Textbook:
  • Disc 06: Mutability, Object-Oriented Programming
  • Friday, October 4
    • Guest lectures next Monday 10/7 (Catherine Cang) and Wednesday 10/9 (Kavi Gupta).
    • Additional topics guest lecture next Wednesday 10/9 @ 5pm (Rahul Arya).
    • Homework 4, due Thursday 10/10 (not this week), is long and worth 4 points.
    • Hog Composition Revisions are due Thursday 10/10.
    Wednesday, October 2
    • The Cats project is due Thursday 10/3 @ 11:59pm.

      • Early submission bonus point for submitting by Wednesday 10/2.
      • Some tips for implementing each function are posted to Piazza.
    • Homework 4, due Thursday 10/10 (not this week), is long and worth 4 points.
    • Hog Composition Revisions are due Thursday 10/10.
    Monday, September 30
    • The Cats project is due Thursday 10/3 @ 11:59pm.

      • Project party on Monday 9/30 @ 6:30-8:00pm in Cory 241
      • Phase 1 checkpoint due Monday 9/30.
      • Early submission bonus point for submitting by Wednesday 10/2.
      • Some tips for implementing each function are posted to Piazza.
    • Homework 4, due Thursday 10/10 (not this week), is long and worth 4 points.
    • Hog Composition Revisions due Thursday 10/10; see details on Piazza
    Friday, September 27
    • The Cats project is due Thursday 10/3 @ 11:59pm.

      • Early submission bonus point for submitting by Wednesday 10/2.
      • Phase 1 checkpoint due Monday 9/30.
      • You may work with a partner on the whole project.
      • Some tips for implementing each function are posted to Piazza.
    • Guerrilla Section on Saturday 9/28 12-2pm in Soda 271, 273, 275

      • Topics: Recursion, Tree Recursion
    • Homework 4, due Thursday 10/10 (not next week), is worth 4 points.
    Wednesday, September 25
    • Homework 3 is due Thursday 9/26 @ 11:59pm.
    • Overflow lecture 13 on Thursday 9/26 @ 8:10pm in 306 Soda.
    • Hog Contest awards will be presented Friday 9/28 in lecture.
    • The Cats project is due Thursday 10/3 @ 11:59pm.

      • Phase 1 checkpoint due Monday 9/30.
      • Early submission bonus point for submitting by Wednesday 10/2.
      • You may work with a partner on the whole project.
    • No additional topics lecture today.
    • Guerrilla Section on Saturday 9/28 12-2pm in Soda 271, 273, 275

      • Topics: Recursion, Tree Recursion
    Monday, September 23
    • Midterm 1 regrade requests are due Monday 9/23 @ 11:59pm.
    • The completely optional Hog Strategy Contest ends 11:59pm on Monday 9/23.

    • The Cats project is due Thursday 10/3 @ 11:59pm.

      • Phase 1 checkpoint due Monday 9/30.
      • Early submission bonus point for submitting by Wednesday 10/2.
      • You may work with a partner on the whole project.
    Friday, September 20
    • Midterm 1 regrade requests are due Monday 9/23 @ 11:59pm.
    • The completely optional Hog Strategy Contest ends 11:59pm on Monday 9/23.

    • Homework 3 is due Thursday 9/26 @ 11:59pm.
    Wednesday, September 18
    • The Midterm 1 exam and solution are posted.

      • You should have received an email from Gradescope with your scored exam.
      • Regrade requests are due Monday 9/23 @ 11:59pm.
    • The completely optional Hog Strategy Contest ends 11:59pm on Monday 9/23.

    • Additional Topics Lecture 3 is 5-6pm Wednesday 9/18 in 3106 Etcheverry.
    • Discussion sections do meet this week.
    Friday, September 13
    • Guerrilla Section on Saturday 9/14 12-2pm in Soda 271, 273, 275

      • Topics: Control, Environment Diagrams, Higher-Order Functions
      • See Piazza Post for more details.
    • CS Mentors sign-ups open 12:30pm Friday 9/13.
    • Midterm 1 is 7pm-9pm Monday 9/16. (No lecture that day.)

      • Seat assignments will be sent Sunday 9/15.
      • If you are left handed or need a special seat, let us know your seating preference by Sat 9/14.
      • Let us know by Sat 9/14 if you have a time conflict using this form (even if you emailed us already).
      • You may bring 1 sheet of notes. We will provide scratch paper and the Midterm 1 Study Guide.
      • See Piazza for more Midterm 1 information.
    • The completely optional Hog Strategy Contest ends 11:59pm on Monday 9/23.
    Week 3 Class Material
  • Lecture 6: Iteration
  • Lecture 7: Design
  • Lecture 8: Function Examples
  • CS 61A Textbook:
  • Disc 02: Higher-Order Functions
  • Guerrilla 00: Higher-Order Functions, Environment Diagrams, Control
  • Week 3 Resources
    Wednesday, September 11
    • The Hog project is due Thursday 9/12 @ 11:59pm.

      • Complete the whole project by Wednesday 9/11 to earn an early submission bonus point!
    • Homework 2 is due Thursday 9/12 @ 11:59pm.
    • Additional Topics Lecture 2 is 5-6pm Wednesday 9/11 in 3106 Etcheverry.
    • Guerrilla Section on Saturday 9/14 12-2pm in Soda 271, 273, 275

      • Topics: Control, Environment Diagrams, Higher-Order Functions
      • See Piazza Post for more details.
    • Midterm 1 is 7pm-9pm Monday 9/16. (No lecture that day.)

      • Seat assignments will be sent Sunday 9/15.
      • If you are left handed or need a special seat, let us know your seating preference by Sat 9/14.
      • Let us know by Sat 9/14 if you have a time conflict using this form (even if you emailed us already).
      • You may bring 1 sheet of notes. We will provide scratch paper and the Midterm 1 Study Guide.
      • See Piazza for more Midterm 1 information.
    • Alternate times for this week's lectures:

      • Lecture 6 @ 8pm Monday 9/9 in 150 Wheeler
      • Lecture 7 @ 8pm Wednesday 9/11 in 150 Wheeler
      • Lecture 8 @ 8pm Thursday 9/12 in 150 Wheeler
    Week 3 Class Material
  • Lecture 6: Iteration
  • Lecture 7: Design
  • Lecture 8: Function Examples
  • CS 61A Textbook:
  • Disc 02: Higher-Order Functions
  • Guerrilla 00: Higher-Order Functions, Environment Diagrams, Control
  • Week 3 Resources
    Monday, September 9
    • The Hog project is due Thursday 9/12 @ 11:59pm.

      • Complete the whole project by Wednesday 9/11 to earn an early submission bonus point!
      • Checkpoint 1 (Phase 1 out of 3) is due Monday 9/9 @ 11:59pm. Solve this part by yourself and then python3 ok --submit.
      • You can work with a partner on Phases 2 & 3 once you have submitted Phase 1 on your own.
    • Homework 2 is due Thursday 9/12 @ 11:59pm.
    • Guerrilla Section on Saturday 9/14 12-2pm in Soda 271, 273, 275

      • Topics: Control, Environment Diagrams, Higher-Order Functions
      • See Piazza Post for more details.
    • Midterm 1 is 7pm-9pm Monday 9/16. (No lecture that day.)
    • Additional Topics Lecture 2 is 5-6pm Wednesday 9/11 in 3106 Etcheverry.
    • Alternate times for this week's lectures:

      • Lecture 6 @ 8pm Monday 9/9 in 150 Wheeler
      • Lecture 7 @ 8pm Wednesday 9/11 in 150 Wheeler
      • Lecture 8 @ 8pm Thursday 9/12 in 150 Wheeler
    Week 3 Class Material
  • Lecture 6: Iteration
  • Lecture 7: Design
  • Lecture 8: Function Examples
  • CS 61A Textbook:
  • Disc 02: Higher-Order Functions
  • Guerrilla 00: Higher-Order Functions, Environment Diagrams, Control
  • Week 3 Resources
    Friday, September 6
    • The Hog project is due Thursday 9/12 @ 11:59pm.

      • Complete the whole project by Wednesday 9/11 to earn an early submission bonus point!
      • Checkpoint 1 (Phase 1 out of 3) is due Monday 9/9 @ 11:59pm. Solve this part by yourself and then python3 ok --submit.
      • You can work with a partner on Phases 2 & 3 once you have submitted Phase 1 on your own.
    • Homework 2 is due Thursday 9/12 @ 11:59pm.
    • Midterm 1 is 7pm-9pm Monday 9/16. (No lecture that day.)
    Wednesday, September 4
    • Homework 1 is due Thursday 9/5 @ 11:59pm.
    • The Hog project is due Thursday 9/12 @ 11:59pm.

      • Complete the whole project by Wednesday 9/11 to earn an early submission bonus point!
      • Checkpoint 1 (Phase 1 out of 3) is due Monday 9/9 @ 11:59pm. Solve this part by yourself and then python3 ok --submit.
      • You can work with a partner on Phases 2 & 3 once you have submitted Phase 1 on your own.
    • The first Additional Topics lecture will be held 5-6 Wednesday 9/4 in 3106 Etcheverry.
    • Find a partner and meet advisors at the CS 61A student mixers: Wed 9/4 1:30-3 and Thurs 9/5 3:30-5 in Wozniak Lounge (Soda 430).
    • Come to office hours for help. No appointment necessary.
    Monday, September 2
    • Homework 1 is due Thursday 9/5 @ 11:59pm.
    • The Hog project is due Thursday 9/12 @ 11:59pm.

      • Checkpoint 1 (Phase 1 out of 3) is due Monday 9/9 @ 11:59pm. Solve this part by yourself.
      • You can work with a partner on Phases 2 & 3 once you have submitted Phase 1 on your own.
      • Complete the whole project by Wednesday 9/11 to earn an early submission bonus point.
    • Lab 1 will be held on Tuesday 9/3 and Wednesday 9/4.

      • Students who would normally have lab on Monday 9/2 should instead attend a bring-your-own-computer lab on Tuesday 9/3, either 11-12:30, 12:30-2, or 3:30-5 in Wozniak Lounge (Soda 430). If you can't do that, try to attend any other lab on Tuesday or Wednesday.
    • Please fill out this info request form about CS 47A by 11:59pm Monday 9/2 if you think you should pass out of CS 61A because you know the content already.
    • John DeNero has extended office hours this week in 781 Soda: 1-2 Tuesday, 11-1 Wednesday, and 11-1 Thursday.
    • The first Additional Topics lecture will be held 5-6 Wednesday 9/4 in 3106 Etcheverry.
    • Find a partner and meet advisors at the CS 61A student mixers: Wed 9/4 1:30-3 and Thurs 9/5 3:30-5 in Wozniak Lounge (Soda 430).
    • More lab and discussion section signup slots are now available.
    Friday, August 30
    • Homework 1 is due Thursday 9/5 @ 11:59pm. It is based on lectures 1, 2, and 3.
    • Lab 0 is a take-home tutorial on how to set up your computer.

      • Try to finish before lab next week, but if you don't, come to lab for help.
    • Lab 1 will be held on Tuesday 9/3 and Wednesday 9/4.

      • Students who would normally have lab on Monday 9/2 should instead attend a bring-your-own-computer lab on Tuesday 9/3, either 11-12:30 or 12:30-2 in Wozniak Lounge (Soda 430). If you can't do that, try to attend any other lab on Tuesday or Wednesday.
    • Lecture 2 (Fri 8/30) will be held 2:10pm-3pm in Zellerbach Hall.
    • Lecture 3 (Mon 9/2) is online only: just a set of videos posted to cs61a.org with no live lecture (because of the holiday).

      • Videos will be released Friday 8/30 so that you can get started on Homework 1.
    • Lecture 4 (Wed 9/4) will be held twice: 2pm in 1 Pimentel and 8pm in 150 Wheeler. Every enrolled student will get an email early next week with instructions on where to go. If you're not enrolled but want to come, you must come to the 8pm lecture (or watch videos).
    • More lab and discussion section signup slots will open up over the weekend. If you're not signed up yet, we will email you when slots open up.
    • Please fill out this info request form about CS 47A by 11:59pm Monday 9/2 if you think you should pass out of CS 61A because you know the content already.
    • Office Hours:

      • Drop-in office hours to help with lab 0 are 3:10-4 Friday 8/30 in Soda 373.
      • John DeNero's office hours start next Tuesday, 9/3. His weekly office hours are 1-2 Tuesdays and 11-12 Wednesday.
      • Next week only, John DeNero will hold extra office hours 12-1 Wednesday and 11-1 Thursday.
      • Individual appointments with John DeNero are available on denero.org/meet.html.
      • Course staff office hours will begin next Tuesday 9/3. The schedule will be posted soon.
    Wednesday, August 28
    • Welcome to CS 61A!
    • Join Piazza for announcements and answers to your questions.
    • The first (Wed 8/28) and second (Fri 8/30) lectures will be held 2:10pm-3pm in Zellerbach Hall.
    • Sign up for lab and discussion sections starting 2pm Monday 8/26.
    • Lab 0 is a take-home tutorial on how to set up your computer.
    • Office Hours:

      • The staff will hold drop-in office hours to help with lab 0 from 3:10-4 Friday 8/30 in Soda 373.
      • John DeNero's office hours start next Tuesday, 9/3. His weekly office hours are 1-2 Tuesdays and 11-12 Wednesday.
      • Next week only, John DeNero will hold extra office hours 12-1 Wednesday and 11-1 Thursday.
      • Individual appointments with John DeNero are available on denero.org/meet.html.
      • Course staff office hours will begin next Tuesday 9/3. The schedule will be posted soon.
    • Lecture on Monday 9/2 is online only, just a set of videos posted to cs61a.org with no live lecture (because of the holiday).
    • Students who would normally have lab on Monday 9/2 should instead either attend:

      • One of the two special bring-your-own-computer lab sessions at 11-12:30 or 12:30-2 in Wozniak Lounge (Soda 430) on Tuesday 9/3.
      • Any lab on Tuesday or Wednesday if you want to use our computers or can't attend either of the special labs above.
    Saturday, August 24
    • Welcome to CS 61A!
    • Join Piazza for announcements and answers to your questions.
    • The first (Wed 8/28) and second (Fri 8/30) lectures will be held 2:10pm-3pm in Zellerbach Hall.
    • Sign up for lab and discussion sections starting 2pm Monday 8/26.
    • The Summer 2019 website has moved to su19.cs61a.org.
    Week Date Lecture Textbook Lab and Discussion Links Homework & Project
    1 Mon
    8/26
    Lab 00: Getting Started
    Fri 9/6
    Wed
    8/28
    Functions
    Disc 00: Getting Started
    Fri
    8/30
    Names
    HW 01
    Thu 9/5
    2 Mon
    9/2
    Control
    Lab 01: Variables & Functions, Control
    Fri 9/6
    Hog
    Thu 9/12
    Wed
    9/4
    Higher-Order Functions
    Disc 01: Environment Diagrams, Control
    Fri
    9/6
    Environments
    HW 02
    Thu 9/12
    3 Mon
    9/9
    Iteration
    Lab 02: Higher-Order Functions
    Fri 9/13
    Wed
    9/11
    Design
    Disc 02: Higher-Order Functions Hog Contest
    Mon 9/23
    Fri
    9/13
    Function Examples
    Guerrilla 00: Higher-Order Functions, Environment Diagrams, Control
    4 Mon
    9/16
    Midterm 1 (7-9 PM)
    Wed
    9/18
    Recursion
    Disc 03: Recursion HW 03
    Thu 9/26
    Fri
    9/20
    Tree Recursion
    5 Mon
    9/23
    Containers
    Lab 04: Recursion, Python Lists
    Fri 9/27
    Cats
    Thu 10/3
    Wed
    9/25
    Data Abstraction
    Disc 04: Tree Recursion
    Fri
    9/27
    Trees
    Guerrilla 01: Recursion, Tree Recursion HW 04
    Mon 10/14
    6 Mon
    9/30
    Mutable Values
    Lab 05: Data Abstraction, Trees
    Fri 10/4
    Wed
    10/2
    Mutable Functions
    Disc 05: Trees, Mutability, Nonlocal
    Fri
    10/4
    Iterators
    7 Mon
    10/7
    Objects
    Lab 06: Nonlocal, Object-Oriented Programming
    Mon 10/14
    Ants
    Fri 10/18
    Wed
    10/9
    Inheritance
    Disc 06: Mutability, Object-Oriented Programming
    Fri
    10/11
    Representation
    HW 05
    Tue 10/22
    8 Mon
    10/14
    Composition
    Lab 07: Iterators & Generators, Linked Lists, Mutable Trees
    Fri 10/18
    Wed
    10/16
    Efficiency
    Disc 07: Linked Lists, Trees, Iterators & Generators
    Fri
    10/18
    Decomposition
    Guerrilla 02: Python Lists, Data Abstraction, Trees, Nonlocal, Iterators & Generators, Object-Oriented Programming, Mutable Trees
    9 Mon
    10/21
    Data Examples
    Lab 08: Midterm Review
    Fri 10/25
    Wed
    10/23
    No Lecture: MT2 on Thursday
    Thu
    10/24
    Midterm 2 (8-10 PM)
    Fri
    10/25
    Users
    HW 06
    Mon 11/4
    10 Mon
    10/28
    Scheme
    Lab 09: Scheme
    Fri 11/1
    Wed
    10/30
    Exceptions
    Disc 09: Scheme
    Fri
    11/1
    Calculator
    Guerrilla 03: Scheme HW 07
    Thu 11/7
    11 Mon
    11/4
    Interpreters
    Lab 10: Interpreters
    Fri 11/8
    Scheme
    Wed 11/20

    Scheme Challenge Version
    Wed 11/20
    Wed
    11/6
    Tail Calls
    Disc 10: Interpreters, Tail Recursion
    Fri
    11/8
    Macros
    HW 08
    Thu 11/14
    12 Mon
    11/11
    No Lecture: Veterans' Day Lab 11: Macros
    Fri 11/15
    Wed
    11/13
    Streams
    Disc 11: Streams, Macros Scheme Contest
    Mon 12/2
    Fri
    11/15
    Declarative Programming
    Guerrilla 04: Tail Recursion, Interpreters, Macros HW 09
    Thu 11/21
    13 Mon
    11/18
    Tables
    Lab 12: Streams, SQL
    Fri 11/22
    Wed
    11/20
    Aggregation Disc 12: SQL
    Fri
    11/22
    Databases HW 10
    Thu 12/5
    14 Mon
    11/25
    Distributed Data Lab 13: More SQL (optional)
    Fri 11/29
    Wed
    11/27
    No Lecture: Thanksgiving
    Fri
    11/29
    No Lecture: Thanksgiving
    15 Mon
    12/2
    Society
    Lab 14: Final Review
    Fri 12/6
    Wed
    12/4
    Natural Language
    Disc 14: Final Review
    Fri
    12/6
    Conclusion
    HW 11
    Fri 12/13