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

Friday, December 6
  • Final Exam is 3pm-6pm Thursday 12/19.

    • Covers all course material through Friday 11/22.
    • Bring up to 3 sheets of notes; we will provide 3 study guides (mt1, mt2, & final) and scratch paper.
    • Screencasted review sessions by CS Mentors during RRR week regular lecture times & locations.
    • Small topical review sessions will be announced on Piazza.
  • Guerrilla section on streams and SQL 12pm-2pm Saturday 12/7 in Soda 271, 273, and 275.
  • The CS 61A Project Fair is on Sunday 12/15.
  • Homework 11 due Friday 12/13 is worth 3 points!

  • Stay involved with 61A:

Wednesday, December 4
  • Update: Lecture videos will be posted for Friday 12/6 after all. (And they'll be good!)

    • Stanley 105 (our Friday lecture hall) is very small
    • A screencast of live lecture will be posted to bCourses/CalCentral shortly after lecture.
  • Homework 10 is due Thurday 12/5.
  • Guerrilla section on streams and SQL 12pm-2pm Saturday 12/7 in Soda 271, 273, and 275.
  • RRR week:

    • screencasted review sessions by CS Mentors during the regular lecture times.
    • vote on topical review sessions on piazza by Dec 5th 11:59pm: @2388
Monday, December 2
  • Optional Scheme Recursive Art Contest entries are due Monday 12/2.

    • Please fill out the contest form in addition to submitting through ok.
  • Homework 10 is due Thurday 12/5.
  • The CS 61A Project Fair is on Sunday 12/15.
  • Update: Lecture videos will be posted for Friday 12/6 after all (and they'll be good!).

    • Stanley 105 (our Friday lecture hall) is very small
    • A screencast of live lecture will be posted to bCourses/CalCentral shortly after lecture.
  • Guerrilla section on streams and SQL 12pm-2pm Saturday 12/7 in Soda 271, 273, and 275.
  • RRR week: screencasted review sessions by CS Mentors during the regular lecture times.
Friday, November 22
  • Thanksgiving week is fully online:

    • No live lab or office hours on Monday 11/25 or Tuesday 11/26.
    • Video-only lecture Monday 11/25.
  • Optional Scheme Recursive Art Contest entries are due Monday 12/2.
  • Homework 10 is due Thurday 12/5.
  • The CS 61A Project Fair is on Sunday 12/15.
Wednesday, November 20
  • Scheme project is due Wednesday 11/20.
  • Homework 9 is due Thurday 11/21.
  • Thanksgiving week is fully online:

    • No live lab or office hours on Monday 11/25 or Tuesday 11/26.
    • Video-only lecture Monday 11/25.
  • Optional Scheme Recursive Art Contest entries are due Monday 12/2.
  • Today (Wednesday 11/20) is your last chance to order a CS 61A shirt!
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.
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.
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.
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.
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.
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.
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.
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
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
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, Lambda Expressions
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
Natural Language
Lab 14: Final Review
Fri 12/6
Wed
12/4
Final Examples
Disc 14: Final Review
Thu
12/5
Scheme Gallery
Mon 12/2
Fri
12/6
Conclusion
Guerrilla 05: Streams, SQL
HW 11
Fri 12/13
16 Thu
12/19
Final (3-6 PM)