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

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, Tree Recursion
    Fri 9/27
    Typing
    Thu 10/3
    Wed
    9/25
    Data Abstraction
    Disc 04: Tree Recursion
    Fri
    9/27
    Trees HW 04
    Thu 10/10
    6 Mon
    9/30
    Mutable Values Lab 05: Python Lists, Data Abstraction, Trees, Nonlocal
    Fri 10/4
    Wed
    10/2
    Mutable Functions Disc 05: Nonlocal, Mutability
    Fri
    10/4
    Iterators
    7 Mon
    10/7
    Objects Lab 06: Object-Oriented Programming
    Fri 10/11
    Ants
    Thu 10/17
    Wed
    10/9
    Inheritance Disc 06: Object-Oriented Programming
    Fri
    10/11
    Representation HW 05
    Tue 10/22
    8 Mon
    10/14
    Growth Lab 07: Linked Lists, Mutable Trees
    Fri 10/18
    Wed
    10/16
    Composition Disc 07: Linked Lists, Trees
    Fri
    10/18
    Programming
    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
    Thu 10/31
    10 Mon
    10/28
    Scheme Lab 09: Scheme
    Fri 11/1
    Wed
    10/30
    Exceptions Disc 09: Scheme
    Fri
    11/1
    Calculator HW 07
    Thu 11/7
    11 Mon
    11/4
    Interpreters Lab 10: Interpreters
    Fri 11/8
    Scheme
    Wed 11/20
    Wed
    11/6
    Tail Calls Disc 10: 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 HW 09
    Thu 11/21
    13 Mon
    11/18
    Tables Lab 12: 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