CS 61A: Structure and Interpretation of Computer Programs

Summer 2019
Instructors: Tiffany Perumpail, Chris Allsman, Alex Stennet
MTuWTh 11-12:30 in 155 Dwinelle

Friday, August 23
  • Want to AI for the course in the fall? See piazza
  • Thank you for a wonderful summer!
Week 8 Class Material
  • Lecture 27: Final Review
  • Lecture 28: Special Topics II (CS Theory)
  • Lecture 29: Final Lecture
  • CS 61A Textbook:
  • Disc 12: Final Review
  • Monday, August 19
    Week 8 Class Material
  • Lecture 27: Final Review
  • Lecture 28: Special Topics II (CS Theory)
  • Lecture 29: Final Lecture
  • CS 61A Textbook:
  • Disc 12: Final Review
  • Wednesday, August 14
    • HW7 released, due Tuesday, 8/13 at 11:59 PM PDT
    • HW8 released, due Friday, 8/16 at 11:59 PM PDT. It consists of filling out three surveys:

    • Final Thursday, 8/15 6-9 PM PDT (for in-person exams).

      • Sample study plan posted on piazza
      • See piazza for more information about exams
    • Practice final released - complete and submit by Wednesday at 11:59 PM PDT for 1 extra credit point
    • Ants composition scores released, submit revisions by Friday, 8/16 at 11:59 PM PDT. See piazza for more details.
    Week 8 Class Material
  • Lecture 27: Final Review
  • Lecture 28: Special Topics II (CS Theory)
  • Lecture 29: Final Lecture
  • CS 61A Textbook:
  • Disc 12: Final Review
  • Monday, August 12
    • HW7 released, due Tuesday, 8/13 at 11:59 PM PDT
    • Optional Scheme Contest released, due Tuesday, 8/13 at 11:59 PM PDT
    • Final Thursday, 8/15 6-9 PM PDT (for in-person exams).

      • Sample study plan posted on piazza
      • See piazza for more information about exams
    • Practice final released - complete and submit by Wednesday at 11:59 PM PDT for 1 extra credit point
    • Ants composition scores released, submit revisions by Friday, 8/16 at 11:59 PM PDT. See piazza for more details.
    Week 8 Class Material
  • Lecture 27: Final Review
  • Lecture 28: Special Topics II (CS Theory)
  • Lecture 29: Final Lecture
  • CS 61A Textbook:
  • Disc 12: Final Review
  • Wednesday, August 7
    • HW7 released, due Tuesday, 8/13 at 11:59 PM PDT
    • Optional Scheme Contest released, due Tuesday, 8/13 at 11:59 PM PDT
    • Final Thursday, 8/15 6-9 PM PDT (for in-person exams).

      • Sample study plan posted on piazza
    Wednesday, August 7
    • Project 4, Scheme is released

      • Submit entire project by Friday, 8/9 at 11:59 PM PDT
      • You will get an extra credit point for submitting the entire project by Thursday, August 8 at 11:59 PM PDT
    • Typing Test composition scores released, submit revisions by Sunday, 8/11 at 11:59 PM PDT. See piazza for more details.
    • Optional Scheme Contest released, due Tuesday, 8/13 at 11:59 PM PDT
    Monday, August 5
    • HW6 has been released and is due Tuesday, 8/6 at 11:59 PM PDT
    • Project 4, Scheme is released

      • Submit Phase I/II by Monday, 8/5 at 11:59 PM PDT for checkpoint 1
      • Submit entire project by Friday, 8/8 at 11:59 PM PDT
      • You will get an extra credit point for submitting the entire project by Thursday, August 7 at 11:59 PM PDT
    Thursday, August 1
    • HW6 has been released and is due Tuesday, 8/6 at 11:59 PM PDT
    • Project 4, Scheme is released

      • Submit Phase I/II by Monday, 8/5 at 11:59 PM PDT for checkpoint 1
      • Submit entire project by Friday, 8/8 at 11:59 PM PDT
      • You will get an extra credit point for submitting the entire project by Thursday, August 7 at 11:59 PM PDT
    • Midterm Scores are released!

      • Regrade requests are due by Thursday, August 1.
    • Still many spots for small group tutoring!

      • Enrollment details are available on Piazza
    Wednesday, July 31
    • Project 3, Ants released.

      • Submit entire project by Wednesday, July 31.
      • You will get an extra credit point for submitting the entire project by Tuesday, July 30.
    • HW6 & Project 4 will be released tonight or tomorrow

      • HW6 tentatively due Tuesday, 8/6
      • Project 4 tentatively due Friday, 8/9
    • Midterm Scores are released!

      • Regrade requests are due by Thursday, August 1.
    • Small Group Tutoring

      • More Small Group Tutoring spots have been opened!
      • Enrollment details are available on Piazza
    Tuesday, July 30
    • HW5 released, due Tuesday, July 30 at 11:59 PM PDT

      • Midsemester Survey, worth 2 points
    • Project 3, Ants released.

      • Submit entire project by Wednesday, July 31.
      • You will get an extra credit point for submitting the entire project by Tuesday, July 30.
    • HW6 & Project 4 will be released tonight or tomorrow

      • HW6 tentatively due Tuesday, 8/6
      • Project 4 tentatively due Friday, 8/9
    • Midterm Scores are released!

      • Regrade requests are due by Thursday, August 1.
    • Advising Appointments

      • If you'd like to discuss your progress privately with a staff member, course staff is holding Advising Appointments this week.
      • Sign-ups are open on Piazza
    • Small Group Tutoring

      • More Small Group Tutoring spots have been opened!
      • Enrollment deatils are available on Piazza
    Monday, July 29
    • HW4 released, due Monday, July 29th at 11:59 PM PDT
    • HW5 released, due Tuesday, July 30 at 11:59 PM PDT

      • Midsemester Survey, worth 2 points
    • Project 3, Ants released.

      • Submit entire project by Wednesday, July 31.
      • You will get an extra credit point for submitting the entire project by Tuesday, July 30.
    • Midterm Scores are released!

      • Regrade requests are due by Thursday, August 1.
    • Advising Appointments

      • If you'd like to discuss your progress privately with a staff member, course staff is holding Advising Appointments this week.
      • Sign-ups are open on Piazza
    • Small Group Tutoring

      • More Small Group Tutoring spots have been opened!
      • Enrollment deatils are available on Piazza
    Saturday, July 27
    • HW4 released, due Monday, July 29th at 11:59 PM PDT
    • HW5 released, due Tuesday, July 30 at 11:59 PM PDT

      • Midsemester Survey, worth 2 points
    • Project 3, Ants released.

      • Submit entire project by Wednesday, July 31.
      • You will get an extra credit point for submitting the entire project by Tuesday, July 30.
    • Hog Composition Scores have been released!

      • You should see a new tag for "composition" for your Hog submission on okpy.org, and some comments on your code.
      • The deadline to submit your revisions is Sunday, July 28th at 11:59pm.
    • Midterm Scores are released!

      • Regrade requests are due by Thursday, August 1.
    • Advising Appointments

      • If you'd like to discuss your progress privately with a staff member, course staff is holding Advising Appointments next week.
      • Sign-ups are open on Piazza
    • Small Group Tutoring

      • More Small Group Tutoring spots have been opened!
      • Enrollment deatils are available on Piazza
    Thursday, July 25
    • Midterm Scores are released!

      • Regrade requests are due by Thursday, August 1.
    • Advising Appointments

      • If you'd like to discuss your progress privately with a staff member, course staff is holding Advising Appointments next week.
      • Sign-ups are open on Piazza
    • Small Group Tutoring

      • More Small Group Tutoring spots have been opened!
      • Enrollment deatils are available on Piazza
    • Project 3, Ants.

      • Submit Phases 1 & 2 by Friday, July 26.
      • Submit Phases 3 & 4 by Wednesday, July 31.
      • You will get an extra credit point for submitting the entire project by Tuesday, July 30.
    • Hog Composition Scores have been released!

      • You should see a new tag for "composition" for your Hog submission on okpy.org, and some comments on your code.
      • The deadline to submit your revisions is Sunday, July 28th at 11:59pm.
    • HW4 released, due Monday, July 29th at 11:59 PM PDT
    Wednesday, July 24
    • Advising Appointments

      • If you'd like to discuss your progress privately with a staff member, course staff is holding Advising Appointments this week and next week.
      • Sign-ups will open on Piazza at 3pm today.
    • Project 3, Ants.

      • Submit Phases 1 & 2 by Friday, July 26.
      • Submit Phases 3 & 4 by Wednesday, July 31.
      • You will get an extra credit point for submitting the entire project by Tuesday, July 30.
    • Hog Composition Scores have been released!

      • You should see a new tag for "composition" for your Hog submission on okpy.org, and some comments on your code.
      • The deadline to submit your revisions is Sunday, July 28th at 11:59pm.
    • HW4 released, due Monday, July 29th at 11:59 PM PDT
    Tuesday, July 23
    • Project 2, Typing Test.

      • Entire project is due Tuesday, July 23rd at 11:59 PM PDT. You may complete all phases with one partner.
    • Hog Composition Scores have been released!

      • You should see a new tag for "composition" for your Hog submission on okpy.org, and some comments on your code.
      • The deadline to submit your revisions is Sunday, July 28th at 11:59pm.
    • HW4 released, due Monday, July 29th at 11:59 PM PDT
    • Project 3, Ants, will be released tonight
    Monday, July 22
    • Project 2, Typing Test.

      • Entire project is due Tuesday, July 23rd at 11:59 PM PDT. You may complete all phases with one partner.
      • Can get 1 point of extra credit by submitting by Monday, July 22nd at 11:59 PM PDT and filling out a feedback survey
    • Hog Composition Scores have been released!

      • You should see a new tag for "composition" for your Hog submission on okpy.org, and some comments on your code.
      • The deadline to submit your revisions is Sunday, July 28th at 11:59pm.
    Wednesday, July 17
    • Project 2, Typing Test.

      • Entire project is due Tuesday, July 23rd at 11:59 PM PDT. You may complete all phases with one partner.
      • Can get 1 point of extra credit by submitting by Monday, July 22nd at 11:59 PM PDT and filling out a feedback survey
      • Recommendation: do not work on phase 3 until after the midterm
    • Midterm on Thursday, July 18th at 6-9 PM PDT

      • Practice Midterm worth 1 EC point. See Piazza @646
      • Midterm Study Guide. See Piazza @640
      • Important Post on Piazza See @673
    • W61A Students need to fill out @711 by 7/17 9:59 PM PDT or you will not be allowed to take the midterm

      • This is not the same form as we previously posted
    Tuesday, July 16
    • Small Group Tutoring Section Sign-ups are open! See Piazza @220 for enrollment details.
    • Project 2, Typing Test.

      • Entire project is due Tuesday, July 23rd at 11:59 PM PDT. You may complete all phases with one partner.
      • Can get 1 point of extra credit by submitting by Monday, July 22nd at 11:59 PM PDT and filling out a feedback survey
      • Recommendation: do not work on phase 3 until after the midterm
    • HW3 due Tuesday, July 16th at 11:59 PM PDT
    • Midterm on Thursday, July 18th at 6-9 PM PDT

      • Practice Midterm worth 1 EC point. See Piazza @646
      • Midterm Study Guide. See Piazza @640
      • Important Post on Piazza See @673
    Monday, July 15
    • Small Group Tutoring Section Sign-ups are open! See Piazza @220 for enrollment details.
    • Project 2, Typing Test.

      • Entire project is due Tuesday, July 23rd at 11:59 PM PDT. You may complete all phases with one partner.
      • Can get 1 point of extra credit by submitting by Monday, July 22nd at 11:59 PM PDT and filling out a feedback survey
      • Recommendation: do not work on phase 3 until after the midterm
    • HW3 due Tuesday, July 16th at 11:59 PM PDT
    • Midterm on Thursday, July 18th at 6-9 PM PDT

      • Practice Midterm worth 1 EC point. See Piazza @646
      • Midterm Study Guide. See Piazza @640
    Wednesday, July 10
    • Small Group Tutoring Section Sign-ups are open! See Piazza @220 for enrollment details.
    • Project 2, Typing Test is released.

      • Phase 1/2 due Friday, July 12th at 11:59 PM PDT.
      • Entire project is due Tuesday, July 23rd at 11:59 PM PDT. You may complete all phases with one partner.
      • Can get 1 point of extra credit by submitting by Monday, July 22nd at 11:59 PM PDT and filling out a feedback survey
    • HW3 will be released tonight and will be due Tuesday, July 16th at 11:59 PM PDT.
    • Midterm and Final will be held 6-9 PM PDT (except for W61A students the final remotely)

      • Conflicts? Fill out links.cs61a.org/mt-conflict or links.cs61a.org/final-conflict by 7/9 at 11:59 PM PDT
    Tuesday, July 9
    • Small Group Tutoring Section Sign-ups are open! See Piazza @220 for enrollment details.
    • Project 2, Typing Test is released.

      • Phase 1/2 due Friday, July 12th at 11:59 PM PDT.
      • Entire project is due Tuesday, July 23rd at 11:59 PM PDT. You may complete all phases with one partner.
      • Can get 1 point of extra credit by submitting by Monday, July 22nd at 11:59 PM PDT and filling out a feedback survey
    • HW2 is due Tuesday, July 9th at 11:59 PM PDT.
    • Midterm and Final will be held 6-9 PM PDT (except for W61A students the final remotely)

      • Conflicts? Fill out links.cs61a.org/mt-conflict or links.cs61a.org/final-conflict by 7/9 at 11:59 PM PDT
    Monday, July 8
    • Tentative HW/project deadlines have been added to the course calendar. These are subject to change at any point before their release.
    • Small Group Tutoring Section Sign-ups are open! See Piazza @220 for enrollment details.
    • Project 1, Hog is released.

      • Entire project is due Monday, July 8th at 11:59 PM PDT. You may complete phases 2/3 with one partner.
    • HW2 is due Tuesday, July 9th at 11:59 PM PDT.
    • Project 2 will be released 7/8 or 7/9. The first two phases (totaling ~4 questions) are due Friday, 7/12
    • Midterm and Final will be held 6-9 PM PDT (except for W61A students the final remotely)

      • Conflicts? Fill out links.cs61a.org/mt-conflict or links.cs61a.org/final-conflict by 7/9 at 11:59 PM PDT
    Saturday, July 6
    • Tentative HW/project deadlines have been added to the course calendar. These are subject to change at any point before their release.
    • Small Group Tutoring Section Sign-ups are open! See Piazza @220 for enrollment details.
    • Project 1, Hog is released.

      • Phase 1 is due Wednesday, July 3rd at 11:59 PM PDT. You must complete this phase individually.
      • Phases 2/3 are due Monday, July 8th at 11:59 PM PDT. You may complete these phases with one partner. You do not need to wait until the Phase 1 deadline to start working on Phases 2 or 3.
    • OH for 61A AND online OH for W61A have begun. See here for a list of times.

      • All 61A OH have been moved out of 109 Morgan and into Cory Hall. See here for a list of updated locations.
    Wednesday, July 3
    • Alex is holding 1-1s 1-2pm today, sign up here
    • Tentative HW/project deadlines have been released. These are subject to change at any point before their release.
    • Small Group Tutoring Section Sign-ups are open! See Piazza @220 for enrollment details.
    • There will only be one discussion this week. No discussion sections on Thursday or Friday, because of July 4th.
    • There will still be two lab assignments this week, (Lab 02 and Lab 03).

      • (For in-person students) Thursday lab sections will not be held, because of July 4th. If you are enrolled in a Thursday lab, you are welcome to attend a Wednesday lab. Please e-mail the TA whose lab you plan on attending for this week.
    • Project 1, Hog is released. The deadline has been finalized.

      • Phase 1 is due Wednesday, July 3rd at 11:59 PM PDT. You must complete this phase individually.
      • Phases 2/3 are due Monday, July 8th at 11:59 PM PDT. You may complete these phases with one partner. You do not need to wait until the Phase 1 deadline to start working on Phases 2 or 3.
    • OH for 61A AND online OH for W61A have begun. See here for a list of times.

      • All 61A OH have been moved out of 109 Morgan and into Cory Hall. See here for a list of updated locations.
    Tuesday, July 2
    • Tentative HW/project deadlines have been released. These are subject to change at any point before their release.
    • Small Group Tutoring Section Sign-ups are open! See Piazza @220 for enrollment details.
    • There will only be one discussion this week. No discussion sections on Thursday or Friday, because of July 4th.
    • There will still be two lab assignments this week, (Lab 02 and Lab 03).

      • (For in-person students) Thursday lab sections will not be held, because of July 4th. If you are enrolled in a Thursday lab, you are welcome to attend a Wednesday lab. Please e-mail the TA whose lab you plan on attending for this week.
    • Homework 1 is released and is due Tuesday, July 2nd at 11:59 PM PDT
    • Project 1, Hog is released. The deadline has been finalized.

      • Phase 1 is due Wednesday, July 3rd at 11:59 PM PDT. You must complete this phase individually.
      • Phases 2/3 are due Monday, July 8th at 11:59 PM PDT. You may complete these phases with one partner. You do not need to wait until the Phase 1 deadline to start working on Phases 2 or 3.
    • OH for 61A AND online OH for W61A have begun. See here for a list of times.

      • All 61A OH have been moved out of 109 Morgan and into Cory Hall. See here for a list of updated locations.
    Monday, July 1
    • Chris will be holding office hours today 3-4pm in 781 Soda
    • Small Group Tutoring Section Sign-ups are open! See Piazza @220 for enrollment details.
    • There will only be one discussion this week. No discussion sections on Thursday or Friday, because of July 4th.
    • There will still be two lab assignments this week, (Lab 02 and Lab 03).

      • (For in-person students) Thursday lab sections will not be held, because of July 4th. If you are enrolled in a Thursday lab, you are welcome to attend a Wednesday lab. Please e-mail the TA whose lab you plan on attending for this week.
    • Homework 1 is released and is due Tuesday, July 2nd at 11:59 PM PDT
    • Project 1, Hog is released. The deadline has been finalized.

      • Phase 1 is due Wednesday, July 3rd at 11:59 PM PDT. You must complete this phase individually.
      • Phases 2/3 are due Monday, July 8th at 11:59 PM PDT. You may complete these phases with one partner. You do not need to wait until the Phase 1 deadline to start working on Phases 2 or 3.
    • OH for 61A AND online OH for W61A have begun. See here for a list of times.

      • All 61A OH have been moved out of 109 Morgan and into Cory Hall. See here for a list of updated locations.
    Friday, June 28
    • Homework 0 is released and is due Friday, June 28th at 11:59 PM PDT
    • Lab 0 and Lab 1 are due tonight (6/28) at 11:59 PM PDT
    • Homework 1 is released and is due Tuesday, July 2nd at 11:59 PM PDT
    • Project 1, Hog is released. Vote here for the final deadline, but currently:

      • Phase 1 is due Wednesday, July 3rd at 11:59 PM PDT. You must complete this phase individually.
      • Phases 2/3 are due Friday, July 5th at 11:59 PM PDT. You may complete these phases with one partner. You do not need to wait until the Phase 1 deadline to start working on Phases 2 or 3.
    • OH for 61A AND online OH for W61A have begun. See here for a list of times.
    Thursday, June 27
    • Homework 0 is released and is due Friday, June 28th at 11:59 PM PDT
    • Homework 1 is released and is due Tuesday, July 2nd at 11:59 PM PDT
    • Project 1 will be released tonight or tomorrow morning
    • OH for 61A AND online OH for W61A have begun. See here for a list of times.
    • See piazza for a list of things to know for the first week!
    Wednesday, June 26
    • Homework 0 is released and is due Friday, June 28th at 11:59 PM PDT
    • Homework 1 is released and is due Tuesday, July 2nd at 11:59 PM PDT
    • Lab starts today!
    • OH for 61A AND online OH for W61A have4 begun. See here for a list of times.
    • See piazza for a list of things to know for the first week!
    Tuesday, June 25
    • Homework 0 is released and is due Friday, June 28th at 11:59 PM PDT
    • Discussion Sections for both 61A and W61A begin on Tuesday.
    • There will be no lab sections on Monday or Tuesday. Lab starts Wednesday.

      • You should start lab00 before your first lab section.
    • OH for 61A begin Tuesday, online OH for W61A begin Wednesday. See here for a tentative list of times.
    • See piazza for a list of things to know for the first week!
    Sunday, June 23
    • Lecture begins on Monday!
    • Discussion Sections for both 61A and W61A begin on Tuesday.

      • W61A students should fill out the Section Preferences Form by 9:00 PM PDT tonight in order to be matched with a discussion section
    • There will be no lab sections on Monday or Tuesday. Lab starts Wednesday.

      • You should start lab00 before your first lab section.
    • OH for 61A begin Tuesday, online OH for W61A begin Wednesday. See here for a tentative list of times.
    • See piazza for a list of things to know for the first week!
    Week Date Lecture Textbook Lab and Discussion Links Homework & Project
    1 Mon
    6/24
    Intro
    Lab 00: Getting Started
    Fri 6/28
    Tue
    6/25
    Functions
    Disc 00: Getting Started
    HW 00
    Mon 6/28
    Wed
    6/26
    Control
    Lab 01: Variables & Functions, Control
    Fri 6/28
    HW 01
    Fri 7/2
    Thu
    6/27
    Environment Diagrams
    Disc 01: Environment Diagrams, Control Hog
    Thu 7/8
    2 Mon
    7/1
    Higher-Order Functions
    Lab 02: Higher-Order Functions
    Fri 7/5
    Tue
    7/2
    Recursion
    Disc 02: Higher-Order Functions Hog Contest
    Fri 7/9
    Wed
    7/3
    Recursion Examples
    Lab 03: Recursion
    Fri 7/5
    HW 02
    Fri 7/9
    Thu
    7/4
    No Lecture: Independence Day
    Fri
    7/5
    Guerrilla 01: Higher-Order Functions, Recursion, Tree Recursion
    3 Mon
    7/8
    Sequences & Data Abstraction
    Lab 04: Python Lists, Data Abstraction
    Fri 7/12
    Typing Test
    Fri 7/23
    Tue
    7/9
    Functional Decomposition & Debugging
    Disc 03: Recursion, Tree Recursion
    Wed
    7/10
    Trees
    Lab 05: Python Lists, Trees
    Fri 7/12
    HW 03
    Fri 7/16
    Thu
    7/11
    Mutable Sequences
    Disc 04: Trees, Mutability
    Fri
    7/12
    Guerrilla 02: Python Lists, Data Abstraction, Trees
    4 Mon
    7/15
    Mutable Functions & Growth
    Lab 06: Nonlocal, Mutability
    Fri 7/19

    Lab 07: Midterm Review
    Fri 7/19
    Tue
    7/16
    Iterators & Generators
    Disc 05: Midterm Review, Iterators & Generators
    Wed
    7/17
    Midterm Review
    Thu
    7/18
    No Lecture
    Midterm (6-9 PM PDT)
    Fri
    7/19
    Guerrilla 03: Nonlocal, Iterators & Generators
    5 Mon
    7/22
    Objects
    Lab 08: Object-Oriented Programming
    Fri 7/26
    HW 04
    Thu 7/29
    Tue
    7/23
    Inheritance
    Disc 06: Object-Oriented Programming, Nonlocal Ants
    Sat 7/31
    Wed
    7/24
    Linked Lists & Trees
    Lab 09: Linked Lists, Mutable Trees
    Fri 7/26
    Thu
    7/25
    Interfaces
    Disc 07: Linked Lists, Trees
    Fri
    7/26
    Guerrilla 04: Object-Oriented Programming, Mutable Trees
    Sat
    7/27
    HW 05
    Fri 7/30
    6 Mon
    7/29
    Scheme
    Lab 10: Scheme
    Fri 8/2
    Tue
    7/30
    More Scheme
    Disc 08: Scheme Scheme
    Mon 8/9
    Wed
    7/31
    Interpreters
    Lab 11: Interpreters
    Fri 8/2
    HW 06
    Fri 8/6
    Thu
    8/1
    Macros
    Disc 09: Tail Recursion, Macros
    Fri
    8/2
    Guerrilla 05: Scheme, Scheme Lists, Tail Recursion
    7 Mon
    8/5
    Streams
    Lab 12: Macros
    Fri 8/9
    Tue
    8/6
    Declarative Programming I
    Disc 10: Streams Scheme Contest
    Fri 8/13
    Wed
    8/7
    Declarative Programming II
    Lab 13: SQL
    Fri 8/9
    HW 07
    Fri 8/13
    Thu
    8/8
    Special Topics I (Security)
    Disc 11: SQL
    8 Mon
    8/12
    Final Review
    Lab 14: Final Review
    Fri 8/16
    Tue
    8/13
    Special Topics II (CS Theory)
    Disc 12: Final Review HW 08
    Mon 8/16
    Wed
    8/14
    Final Lecture
    Thu
    8/15
    Final (6-9 PM PDT)