CS 61A: Structure and Interpretation of Computer Programs

Spring 2019
Instructor: Dan Garcia
MWF 2-3 in Wheeler Auditorium

Sunday, May 19
Wednesday, May 8
  • During RRR week we are hosting topical review sessions
  • CSM Review Sessions (all in Wheeler Auditorium)

    • Friday, May 10th 2-3 PM: Interpreters, Macros, Tail Recursion, Streams, Iterators/Generators, SQL
  • Homework 12 is worth 3 points and requires completing 3 tasks. It is due Sunday 5/12

Friday, May 3
  • During RRR week we will be hosting topical review sessions, schedule will be released soon
  • CSM Review Sessions (all in Wheeler Auditorium)

    • Monday, May 6th 2-3 PM: Environment Diagrams, Recursion, Tree Recursion, Lists, Nonlocal
    • Wednesday, May 8th 2-3 PM: OOP, Orders of Growth, Linked Lists, Mutable Trees, Scheme
    • Friday, May 10th 2-3 PM: Interpreters, Macros, Tail Recursion, Streams, Iterators/Generators, SQL
  • Homework 12 is worth 3 points and requires completing 3 tasks

  • You can now submit feedback after being helped on oh.cs61a.org!
Week 15 Class Material
  • Lecture 38: Distributed Computing
  • Lecture 39: Social Implications
  • Lecture 40: Conclusion
  • CS 61A Textbook:
  • Disc 12: Final Review
  • Guerrilla 06: SQL
  • Wednesday, May 1
    • Scheme contest has been released! Submissions are due on Wednesday, 5/1.
    • Homework 11 due Thursday, 5/2.
    • During finals week we will be hosting topical review sessions, please vote at @3228 so we can gauage specific topic interest
    • You can now submit feedback after being helped on oh.cs61a.org!
    Week 15 Class Material
  • Lecture 38: Distributed Computing
  • Lecture 39: Social Implications
  • Lecture 40: Conclusion
  • CS 61A Textbook:
  • Disc 12: Final Review
  • Guerrilla 06: SQL
  • Monday, April 29
    • Scheme contest has been released! Submissions are due on Wednesday, 5/1.
    • Homework 11 due Thursday, 5/2.
    • Extra lecture next Wednesday on Fuzz Testing (Wednesday, 1-2pm)
    • You can now submit feedback after being helped on oh.cs61a.org!
    Week 15 Class Material
  • Lecture 38: Distributed Computing
  • Lecture 39: Social Implications
  • Lecture 40: Conclusion
  • CS 61A Textbook:
  • Disc 12: Final Review
  • Guerrilla 06: SQL
  • Friday, April 26
    • Scheme contest has been released! Submissions are due on Wednesday, 5/1.
    • Extra lecture next Wednesday on Fuzz Testing (Wednesday, 1-2pm)
    • Ants Composition scores released!

      • You can find your score and any comments on your Ants submission on Ok
      • Submit revisions (via python3 ok --revise) by Sunday, April 28th to recover any lost points!
    • You can now submit feedback after being helped on oh.cs61a.org!
    • Professor Garcia's office hours on Monday 4/29 have been cancelled.
    Wednesday, April 24
    • Scheme project

      • Full project due Wednesday, 4/24
    • Homework 10 due Thursday, 4/25
    • Scheme contest has been released! Submissions are due on Wednesday, 5/1.
    • Extra lecture next Wednesday on Fuzz Testing (Wednesday, 1-2pm)
    • Ants Composition scores released!

      • You can find your score and any comments on your Ants submission on Ok
      • Submit revisions (via python3 ok --revise) by Sunday, April 28th to recover any lost points!
    • EE/CS Community Week: Signups are open for students interested in participating in a mentorship event next week (not affiliated with CS 61A). More details in this piazza post.
    • You can now submit feedback after being helped on oh.cs61a.org!
    • Professor Garcia's office hours on Monday 4/29 have been cancelled.
    Monday, April 22
    • Scheme project

      • Full project due Wednesday, 4/24 (submit Tuesday for 1 extra credit point)
      • Project party Monday 4/22 in Cory 241 @ 6:30-8 PM
    • Scheme contest has been released! Submissions are due on Wednesday, 5/1.
    • Extra lecture next this Wednesday on Ray, A Distributed Python Framework for AI (Wednesday, 1-2pm)
    • Ants Composition scores released!

      • You can find your score and any comments on your Ants submission on Ok
      • Submit revisions (via python3 ok --revise) by Sunday, April 28th to recover any lost points!
    • EE/CS Community Week: Signups are open for students interested in participating in a mentorship event next week (not affiliated with CS 61A). More details in this piazza post.
    • You can now submit feedback after being helped on oh.cs61a.org!
    • Professor Garcia's office hours on Monday 4/29 have been cancelled.
    Friday, April 19
    • Scheme project

      • Full project due Wednesday, 4/24 (submit Tuesday for 1 extra credit point)
      • Project party Monday 4/22 in Cory 241 @ 6:30-8 PM
    • Extra lecture next week on Ray, A Distributed Python Framework for AI (Wednesday, 1-2pm)
    • Ants Composition scores released!

      • You can find your score and any comments on your Ants submission on Ok
      • Submit revisions (via python3 ok --revise) by Sunday, April 28th to recover any lost points!
    • Guerrilla Section this Saturday, 4/20, 4-6PM, 271 Soda

      • covers Interpreters, Tail Calls, Macros, Streams, Iterators
    • EE/CS Community Week: Signups are open for students interested in participating in a mentorship event next week (not affiliated with CS 61A). More details in this piazza post.
    Wednesday, April 17
    • Scheme project

      • Checkpoint 2 (phase II) due Thursday, 4/18
      • Full project due Wednesday, 4/24
      • Project party Monday 4/22 in Cory 241 @ 6:30-8 PM
    • Extra lecture next week on Ray, A Distributed Python Framework for AI (Wednesday, 1-2pm)
    • Ants Composition scores released!

      • You can find your score and any comments on your Ants submission on Ok
      • Submit revisions (via python3 ok --revise) by Sunday, April 28th to recover any lost points!
    • Guerrilla Section this Saturday, 4/20, 4-6PM, 271 Soda

      • covers Interpreters, Tail Calls, Macros, Streams, Iterators
    Monday, April 15
    • Lab this week will be on Macros and will run in a discussion-style

      • We highly encourage attendance as Macros will not be covered in discussion
      • See @2865 for more details
    • Scheme project

      • Checkpoint 2 (phase II) due Thursday, 4/18
      • Full project due Wednesday, 4/24
      • Project party Monday 4/15 in Cory 241 @ 6:30-8 PM
    • Extra lecture this week on Machine Learning (Wednesday, 1-2pm)
    • Ants Composition scores released!

      • You can find your score and any comments on your Ants submission on Ok
      • Submit revisions (via python3 ok --revise) by Sunday, April 28th to recover any lost points!
    • Guerrilla Section this Saturday, 4/20, 4-6PM, 271 Soda

      • covers Interpreters, Tail Calls, Macros, Streams, Iterators
    Wednesday, April 10
    • Homework 8 is due Thursday, 4/11
    • Scheme project will be released Monday night, 4/8

      • Checkpoint 1 (one question) due Friday, 4/12
      • Checkpoint 2 (phase II) due Thursday, 4/18
      • Full project due Wednesday, 4/24
      • Project party Monday 4/15 in Cory 241
    • Extra lecture next week on Machine Learning (Wednesday, 1-2pm)
    Friday, April 5
    • Homework 7 is due Thursday, 4/4
    • Midterm 2 Scores are released

      • PDFs: exam, solutions
      • Regrade requests are due Friday, April 5th @ 11:59 PM
      • See @2589 for more details
    • Maps Composition Scores have been released!!

      • You can find your score and any comments on your Maps submission on Ok
      • Submit revisions (via python3 ok --revise) by Sunday, April 7th to recover any lost points!
    • Extra lecture this week on Parallelism (Wednesday, 1-2pm)
    • Guerrilla Section Saturday 4/6, 12-2PM, Soda 271

      • Covers Scheme, Exceptions
    Wednesday, April 3
    • Homework 7 is due Thursday, 4/4
    • Midterm 2 Scores are released

      • PDFs: exam, solutions
      • Regrade requests are due Friday, April 5th @ 11:59 PM
      • See @2589 for more details
    • Maps Composition Scores have been released!!

      • You can find your score and any comments on your Maps submission on Ok
      • Submit revisions (via python3 ok --revise) by Sunday, April 7th to recover any lost points!
    • Extra lecture this week on Parallelism (Wednesday, 1-2pm)
    • Guerrilla Section Saturday 4/6, 12-2PM, Soda 271

      • Covers Scheme, Exceptions
    Monday, April 1
    • Homework 7 is due Thursday, 4/4
    • Midterm 2 Scores are released

      • PDFs: exam, solutions
      • Regrade requests are due Friday, April 5th @ 11:59 PM
      • See @2589 for more details
    • Maps Composition Scores have been released!!

      • You can find your score and any comments on your Maps submission on Ok
      • Submit revisions (via python3 ok --revise) by Sunday, April 7th to recover any lost points!
    • Extra lecture this week on Parallelism (Wednesday, 1-2pm)
    • Guerrilla Section Saturday 4/6, 12-2PM, Soda 271

      • Covers Scheme, Exceptions
    Friday, March 22
    • Maps Composition Scores have been released!!

      • You can find your score and any comments on your Maps submission on Ok
      • Submit revisions (via python3 ok --revise) by Sunday, April 7th to recover any lost points!
    Week 9 Class Material
  • Lecture 23: Data Examples
  • Lecture 24: Final Examples
  • Lecture 25: Users
  • CS 61A Textbook:
  • Monday, March 18
    • Midterm 2 is on Tuesday 3/19, 8-10 PM.

      • Seating is released, see @2503 for more details
      • DSP Students should have already been emailed room assignments
    • No discussion, office hours, or lab check-off this week
    • Lab 08: Midterm Review is released and contains practice problems

      • All labs on Wednesday are cancelled
      • Solutions are in the lab itself
      • Attend and lab Monday or Tuesday as they will be run in office hour style where you can bring any questions to ask
    Week 9 Class Material
  • Lecture 23: Data Examples
  • Lecture 24: Final Examples
  • Lecture 25: Users
  • CS 61A Textbook:
  • Friday, March 15
    • Mark your calendars! Midterm 2 is on Tuesday 3/19, 8-10 PM.

      • CSM Review Session 1-3 PM Saturday, March 16 in Hearst Field Annex A1
      • HKN Review Session 3-6 PM Sunday, March 17 in HP Auditorium
    • Ants project released

      • Partner project
      • Entire project due Thursday 3/14 (submit Wednesday for 1 extra credit point)
      • Check out @1829 for a new debugging feature in Ok
    • Guerrilla Section Saturday 3/16, 4-6PM, Soda 271

      • Covers OOP, Mutable Trees, Nonlocal, Linked Lists, and Orders of Growth
    • If you are struggling or looking for advice we are holding 1-1 advising appointments, see @1837 for more details
    Tuesday, March 12
    • Mark your calendars! Midterm 2 is on Tuesday 3/19, 8-10 PM.
    • Ants project released

      • Partner project
      • Entire project due Thursday 3/14 (submit Wednesday for 1 extra credit point)
      • Check out @1829 for a new debugging feature in Ok
    • Guerrilla Section Saturday 3/16, 4-6PM, Soda 271

      • Covers OOP, Mutable Trees, Nonlocal, Linked Lists, and Orders of Growth
    • If you are struggling or looking for advice we are holding 1-1 advising appointments, see @1837 for more details
    Monday, March 11
    • Mark your calendars! Midterm 2 is on Tuesday 3/19, 8-10 PM.
    • Ants project released

      • Partner project
      • Checkpoint 1 (Phase 1 & 2) due Monday 3/11
      • Entire project due Thursday 3/14 (submit Wednesday for 1 extra credit point)
      • Check out @1829 for a new debugging feature in Ok
    • Project Party on Monday 3/11 at 6:30-8

      • For help on Phase 1 go to Cory 241
      • For help on Phase 2 go to Cory 247
      • For help oh Phase 3&4 go to Cory 237
    • Guerrilla Section this Saturday, 4-6PM, Soda 271

      • Covers OOP, Mutable Trees, Nonlocal, Linked Lists, and Orders of Growth
    • If you are struggling or looking for advice we are holding 1-1 advising appointments, see @1837 for more details
    Friday, March 8
    • Mark your calendars! Midterm 2 is on Tuesday 3/19, 8-10 PM.
    • Ants project released

      • Partner project
      • Checkpoint 1 (Phase 1 & 2) due Monday 3/11
      • Entire project due Thursday 3/14 (submit Wednesday for 1 extra credit point)
      • Check out @1829 for a new debugging feature in Ok
    • Project Party on Monday 3/11 at 6:30-8

      • For help on Phase 1 go to Cory 241
      • For help on Phase 2 go to Cory 247
      • For help oh Phase 3&4 go to Cory 237
    • Homework 5 is due Friday 3/8
    • Lab 6 is due Friday 3/8
    • If you are struggling or looking for advice we are holding 1-1 advising appointments, see @1837 for more details
    Tuesday, March 5
    • Ants project released

      • Partner project
      • Checkpoint 1 (Phase 1 & 2) due Monday 3/11
      • Entire project due Thursday 3/14 (submit Wednesday for 1 extra credit point)
      • Check out @1829 for a new debugging feature in Ok
    • Homework 5 is due Friday 3/8
    • Lab 6 is due Friday 3/8
    • If you are struggling or looking for advice we are holding 1-1 advising appointments, see @1837 for more details
    Monday, February 25
    • Maps Project released and due Thursday 2/28

      • Submit a day early (Wednesday 2/27) to receive 1 extra credit point
      • Solo project (no partners)
      • Project Party on Monday 2/25 6:30-8 PM (Phase 3 in Cory 247. Phase 0, 1 & 2 in Cory 241)
    • Homework 4 is due Friday 3/1
    • Guerrilla Section this Saturday 3/2 12-2PM, Soda 271
    Friday, February 22
    • Optional Hog strategy contest ends Friday 2/22.
    • CS Mentors Sections

      • Small sections designed to help you get more individual attention
      • See @684 on piazza
      • You can still sign up at https://scheduler.csmentors.org/

        • Note: website is a bit slow to load sections
    • Maps Project released and due Thursday 2/28

      • Submit a day early (Wednesday 2/27) to receive 1 extra credit point
      • Solo project (no partners)
    • Hog Composition Scores have been released

      • You can find your score and any comments on your Hog submission on Ok
      • Submit revisions (via python3 ok --revise) by Tuesday, February 26th to recover any lost points!
    Tuesday, February 19
    • Optional Hog strategy contest ends Friday 2/22.
    • Homework 3 is due Thursday 2/21.
    • CS Mentors Sections

      • Small sections designed to help you get more individual attention
      • See @684 on piazza
      • Starts this week!
    • Maps Project released and due Thursday 2/28

      • Submit a day early (Wednesday 2/27) to receive 1 extra credit point
      • Solo project (no partners)
    • Hog Composition Scores have been released

      • You can find your score and any comments on your Hog submission on Ok
      • Submit revisions (via python3 ok --revise) by Tuesday, February 26th to recover any lost points!
    Thursday, February 14
    • Optional Hog strategy contest ends Friday 2/22.
    • Homework 3 is due Thursday 2/21.
    • Midterm 1

    • CS Mentors Sections

      • Small sections designed to help you get more individual attention
      • See @684 on piazza
      • If you want a unit for a CSM section must be done by Wed, Feb 13th (add / drop deadline)
      • Note: you don't have to sign up for a unit to get a section
    Wednesday, February 13
    • Optional Hog strategy contest ends Friday 2/22.
    • Homework 3 is due Thursday 2/21.
    • Midterm 1

      • Scores have been released on Gradescope
      • Exam PDF
      • Solutions PDF
      • Video Walkthroughs
      • Please review rubrics and solutions before submitting regrade request
      • Regrade requests on gradescope are due Wed, Feb 13th at 11:59 PM
    • The add / drop deadline is Wed, Feb 13th

      • It is still possible to swap to CS 10; however, it will require making up the work
      • Their late add policy is here in section 10
    • CS Mentors Sections

      • Small sections designed to help you get more individual attention
      • See @684 on piazza
      • If you want a unit for a CSM section must be done by Wed, Feb 13th (add / drop deadline)
      • Note: you don't have to sign up for a unit to get a section
    Friday, February 8
    • Homework 2 is released and is due Friday 2/8 @ 11:59pm.
    • Midterm 1 on Monday 2/11 7-8 PM

      • Emphasis on functions, assignment, iteration, higher-order functions, and environment diagrams.
      • No recursion
      • The Midterm 1 study guide will be included with your exam.
      • You may bring 1 two-sided sheet of hand-written notes.
      • Seating assignments and exam accomodations will be released this Weekend.
      • HKN Review Session Saturday 2/9 12-3 PM in HP Auditorium
      • CSM Review Session Sunday 2/10 2-4 PM in GPB100
    • No lab this week 2/11-2/13
    • Monday's lecture is on recursion (out of scope of midterm)

      • We recommend you don't attend but instead watch the recording and use the time for studying
    Wednesday, February 6
    • Homework 2 is released and is due Friday 2/8 @ 11:59pm.
    • Hog has been released! Entire project due Thursday 2/7

      • You can work with a partner on Phases 2 & 3.
      • Submit everything by Wednesday 2/6 for an early submission bonus point.
    • Midterm 1

      • HKN Review Session Saturday 2/9 12-3 PM in HP Auditorium
      • CSM Review Session Sunday 2/10 2-4 PM in GPB100
      • Exam will take place Monday 2/11 (time unconfirmed)
    Monday, February 4
    • Homework 2 is released and is due Friday 2/8 @ 11:59pm.
    • Hog has been released! Entire project due Thursday 2/7

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

      • For help on Phase 1 go to Cory 241 and Cory 237 (if you can't get seat in 241)
      • For help oh Phase 2&3 go to Cory 247
    Friday, February 1
    • Homework 2 is released and is due next Thursday 2/7 @ 11:59pm.
    • Drop-in office hours start this week.
    • Hog has been released! Entire project due Thursday 2/7

      • Solve Phase 1 individually; Work with a partner on Phases 2 & 3.
      • Phase 1 checkpoint due Tuesday 2/5.
      • Submit everything by Wednesday 2/6 for an early submission bonus point.
      • Project Party next Monday 2/4 in 241 Cory from 6:30-8pm.
    • Guerrilla Section on Functions, Control, Environments this Saturday 12-2pm in Soda 271, 273, 275
    • Video on Debugging Basics
    Monday, January 28
    • Homework 1 is released and is due this Thursday 1/31 @ 11:59pm.
    • Drop-in office hours start this week.
    • Extra lectures (optional, on Additional Topics) start this week, Wednesdays 1-2pm in Soda 310: https://cs61a.org/extra.html
    • Hog has been released! Entire project due Thursday 2/7

      • Solve Phase 1 individually; Work with a partner on Phases 2 & 3.
      • Phase 1 checkpoint due Tuesday 2/5.
      • Submit everything by Wednesday 2/6 for an early submission bonus point.
      • Project Party next Monday 2/4.
    • Guerrilla Section on Functions, Control, Environments this Saturday 12-2pm in Soda 271, 273, 275
    • Video on Debugging Basics
    Monday, January 28
    • Lab 00 is a take-home lab. Try to complete it before your lab this week.
    • Homework 1 is released and is due this Thursday 1/31 @ 11:59pm.
    • Drop-in office hours start this week.
    • Extra lectures (optional, on Additional Topics) start this week, Wednesdays 1-2pm in Soda 310: https://cs61a.org/extra.html
    • Hog has been released! Entire project due Thursday 2/7

      • Solve Phase 1 individually; Work with a partner on Phases 2 & 3.
      • Phase 1 checkpoint due Tuesday 2/5.
      • Submit everything by Wednesday 2/6 for an early submission bonus point.
      • Project Party next Monday 2/4.
    Wednesday, January 23
    • Discussion starts this week
    • Lab starts next week
    • Join Piazza for announcements and answers to your questions.
    • You don’t have to come to lecture, Friday and onward there will only be 1 lecture 2-3pm, so 500/1250 of you have to decide to watch the webcast only. We can’t have anyone in the aisles per fire marshall rules.
    • Take CS10 concurrently if you don’t have any programming experience
    Week Date Lecture Textbook Lab and Discussion Links Homework & Project
    1 Mon
    1/21
    No Lecture: MLK
    Wed
    1/23
    Disc 00: Getting Started

    Lab 00: Getting Started
    Fri 2/1
    Fri
    1/25
    HW 01
    Thu 1/31
    2 Mon
    1/28
    Lab 01: Variables & Functions, Control
    Fri 2/1
    Hog
    Thu 2/7
    Wed
    1/30
    Disc 01: Environment Diagrams, Control
    Fri
    2/1
    Guerrilla 00: Variables & Functions, Control, Environment Diagrams
    HW 02
    Fri 2/8
    3 Mon
    2/4
    Lab 02: Higher-Order Functions
    Fri 2/8
    Wed
    2/6
    Disc 02: Higher-Order Functions
    Fri
    2/8
    4 Mon
    2/11

    Midterm 1 (7-8 pm)
    Hog Contest
    Fri 2/22
    Wed
    2/13
    Disc 03: Recursion, Tree Recursion HW 03
    Thu 2/21
    Fri
    2/15
    5 Mon
    2/18
    No Lecture: Presidents' Day Lab 04: Recursion, Python Lists, Data Abstraction
    Fri 2/22
    Maps
    Thu 2/28
    Wed
    2/20
    Disc 04: Python Lists, Data Abstraction
    Fri
    2/22
    Guerrilla 01: Higher-Order Functions, Recursion, Tree Recursion
    HW 04
    Fri 3/1
    6 Mon
    2/25
    Lab 05: Trees
    Fri 3/1
    Wed
    2/27
    Disc 05: Trees, Mutability, Nonlocal
    Fri
    3/1
    Guerrilla 02: Python Lists, Data Abstraction, Trees
    HW 05
    Fri 3/8
    7 Mon
    3/4
    Lab 06: Nonlocal, Object-Oriented Programming
    Fri 3/8
    Ants
    Thu 3/14
    Wed
    3/6
    Disc 06: Object-Oriented Programming
    Fri
    3/8
    HW 06
    Fri 3/15
    8 Mon
    3/11
    Lab 07: Linked Lists, Trees
    Fri 3/15
    Wed
    3/13
    Disc 07: Linked Lists, Midterm Review
    Fri
    3/15
    Lab 08: Midterm Review
    Fri 3/22

    Guerrilla 03: Nonlocal, Mutable Trees, Object-Oriented Programming, Linked Lists, Orders of Growth
    9 Mon
    3/18
    Tue
    3/19
    Midterm 2 (8-10 pm)
    Wed
    3/20
    Fri
    3/22
    Users
    10 Mon
    3/25
    No Lecture: Spring Break
    Wed
    3/27
    No Lecture: Spring Break
    Fri
    3/29
    No Lecture: Spring Break
    11 Mon
    4/1
    Lab 09: Scheme
    Fri 4/5
    HW 07
    Thu 4/4
    Wed
    4/3
    Disc 08: Scheme
    Fri
    4/5
    Guerrilla 04: Scheme
    HW 08
    Thu 4/11
    12 Mon
    4/8
    Lab 10: Interpreters
    Fri 4/12
    Scheme
    Wed 4/24
    Wed
    4/10
    Disc 09: Interpreters, Tail Recursion
    Fri
    4/12
    HW 09
    Fri 4/19
    13 Mon
    4/15
    Lab 11: Macros
    Fri 4/19
    Wed
    4/17
    Disc 10: Iterators & Generators, Streams
    Fri
    4/19
    Guerrilla 05: Streams, Tail Recursion, Interpreters, Macros, Iterators & Generators
    HW 10
    Thu 4/25
    14 Mon
    4/22
    Lab 12: SQL
    Fri 4/26
    Scheme Contest
    Wed 5/1
    Wed
    4/24
    Disc 11: SQL
    Fri
    4/26
    HW 11
    Thu 5/2
    15 Mon
    4/29
    Lab 13: Final Review
    Fri 5/3
    Wed
    5/1
    Social Implications
    Disc 12: Final Review
    Fri
    5/3
    Conclusion
    Guerrilla 06: SQL
    16 Mon
    5/6
    HW 12
    Sun 5/12
    17 Tue
    5/14
    Final (11:30-2:30 PM)