CS 61A: Structure and Interpretation of Computer Programs

Summer 2020
Instructors: Chae Park, Kavi Gupta, Ryan Moughan
Varies, Typically Tuesday 3-4:30pm. Link will be posted on piazza

Friday, August 7
  • Please read the final exam logistics post
  • If you need an alternate time for the final exam, please see this Piazza link
  • Check out the topical reviews here: links.cs61a.org/topical-review
  • Scheme has been released and is due Monday, Aug. 10th
  • The last homework (HW 08) has been released! It is due Tuesday, Aug. 11th
  • Lab 13 has been released and is due Friday, Aug. 7th
Week 7 Class Material
  • Lecture 23: Streams
  • Lecture 24: Declarative Programming I
  • Lecture 25: Declarative Programming II
  • Lecture 26: Final Review
  • Week 7 Readings:
  • Disc 12: Streams
  • Disc 13: SQL
  • Sunday, August 2
    • HW 07 has been released and is due Tuesday, Aug. 4th
    • Scheme has been released and is due Monday, Aug. 10th
    • Lab 12 has been released and is due Wednesday, Aug. 5th
    • If you need an alternate time for the final exam, please see this Piazza link
    Week 6 Class Material
  • Lecture 19: Scheme
  • Lecture 20: Interpreters
  • Lecture 21: More Scheme
  • Lecture 22: Macros
  • Week 6 Readings:
  • Disc 10: Scheme, Scheme Lists
  • Disc 11: Tail Recursion, Macros
  • Week 6 Resources
  • Scheme Built-In Procedure Reference (Summer 2020)
  • CS 61A Scheme Specification (Summer 2020)
  • Minilecture: REPL Overview (Spring 2020)
  • Minilecture: REPL's Read stage (Spring 2020)
  • Minilecture: REPL's eval stage (Spring 2020)
  • Minilecture: Tail Recursion (Summer 2019)
  • Minilecture: Macro (Summer 2019)
  • Chris's Macros Guide (Spring 2019)
  • Chris & Rachel's Macros Slides (Spring 2019)
  • Annie's Macros Guide (Spring 2019)
  • (Summer 2018) Alex's Interpreters Guide
  • Rachel's Macros Guide (Summer 2018)
  • Tammy's OOP Guide (Spring 2018)
  • Karina & Dennis' Trees + Recursion Slides (Spring 2018)
  • Tammy's Scheme Guide (Spring 2018)
  • (Spring 2018) Tammy's Interpreters Worksheet
  • Tammy's Tail Recursion Guide (Spring 2018)
  • Tammy & Katherine's Macros Slides (Spring 2018)
  • (Spring 2018) Tammy & Katherine's Macros Worksheet
  • (Spring 2018) Colin's Macros Worksheet
  • (Spring 2018) Shea's Macros Problems + Solution Folder
  • Minilecture: Scheme Intro (Fall 2017)
  • Minilecture: Evaluation Intro (Fall 2017)
  • Minilecture: Tail Recursion Intro (Fall 2017)
  • Samantha's Linked Lists Slides (Summer 2017)
  • (Spring 2017) Katya's Tree + Linked List Worksheet
  • Minilecture: Tree Intro (Spring 2017)
  • (Fall 2016) Kavi's Scheme Slides
  • Cale's Tail Recursion Slides (Spring 2016)
  • Andrew's append vs cons vs list Guide (Fall 2015)
  • (Summer 2015) Albert's OOP Problems
  • (Summer 2015) Albert's Mutable Linked List Problems
  • (Summer 2015) Albert's ADT Tree Problems
  • (Summer 2015) Albert's Mutable Tree Problems
  • (Summer 2015) Albert's Scheme Problems
  • (Summer 2015) Albert's Interpreters Problems
  • (Summer 2015) Albert's Tail Recursion Problems
  • Max's Scheme Lists Video (Spring 2015)
  • (Fall 2014) Mark's Scheme Problems
  • Sunday, July 12
    • CATS is released and is due Thursday, July 23rd
    • HW 04 is released and is due Tuesday
    • The midterm will be Thursday, July 16th from 5-8 PM. If you have a time zone or exam conflict, please fill out the form on piazza by tonight!
    • Make sure to take the Diagnostic Quiz and report any technical issues by tonight!
    Sunday, July 5

    Congrats on finishing the second week of CS 61a!

    • Hog has been released and is due Monday, July 6th
    • The optional Hog Contest has been released and is due Tuesday, July 7th
    • Lab 03 has been released and is due on Monday, July 6th
    • HW3 has been released and is due Tuesday, June 7th
    • There will be an extra Project Party Sunday, July 5th from 2 - 4 PM!
    • The Diagnostic Quiz was this week

      • Due to technical difficulties, everyone will be getting the 5 points for completion on this quiz
      • It is still HIGHLY important that you take it at some point so that you can check that your system works well with our exam software
      • Please report any technical issues before/during/after the exam at links.cs61a.org/diagnostic-tech-issues
    • Sign-up for small group tutoring! There are still a few spots left for recurring sections and drop-in sections. Links and sign-up details are on piazza.
    Saturday, June 27

    Congrats on finishing the first week of CS 61a!

    • HW 1 has been released and is due Tuesday, June 30th
    • HW 2 has been released and is due Tuesday, June 30th
    • Hog has been released and is due Monday, July 6th
    • The first homework party will be Monday, June 29th from 4:00 - 7:00 PM (links will be on Piazza)
    • The first project party will be Wednesday, July 1st from 3:00 - 6:00 PM (links will be on Piazza)
    • OH are open! Sign up for an appointment the night before at oh.cs61a.org/appointments
    Thursday, May 28

    61A will be offered fully online over the summer. This has the following consequences

    • You do not need to be physically in Berkeley in order to take this course, there will be minimal practical differences
    • We will not be giving live lectures and will be recording discussions. We will, however, assign non-negligible amount of points for live discussion attendance. We acknowledge that there are many students from different parts of the world taking the class; we will do our best to combat the time difference and will accommodate exceptions by individual basis. Exams are trickier but 61a never does in class exams, so that particular conflict will not arise
    • Almost the entire course will be publicly available, so if you wish to audit, you can do so easily
    • This is a perfect opportunity for non-Berkeley students to take CS61A as they can do it without having to go through the hassle of finding accommodations in Berkeley
    Week Date Lecture Textbook Lab and Discussion Links Homework & Project
    1 Mon
    6/22
    Intro
    Lab 00: Getting Started
    Fri 6/26
    Tue
    6/23
    Functions
    Disc 00: Getting Started
    HW 01: Variables & Functions, Control
    Tue 6/30
    Wed
    6/24
    Control
    Lab 01: Variables & Functions, Control
    Fri 6/26
    HW 02: Higher-Order Functions
    Tue 6/30
    Thu
    6/25
    Higher-Order Functions
    Disc 01: Environment Diagrams, Control, Self Reference
    Hog
    Wed 7/8
    2 Mon
    6/29
    Environment Diagrams
    Lab 02: Higher-Order Functions, Lambda Expressions, Self Reference
    Wed 7/1
    Tue
    6/30
    Recursion
    Disc 02: Higher-Order Functions
    Hog Contest
    Thu 7/9
    Wed
    7/1
    Tree Recursion
    Lab 03: Recursion, Tree Recursion
    Tue 7/7
    HW 03: Higher-Order Functions, Self Reference, Recursion, Tree Recursion
    Tue 7/7
    Thu
    7/2
    Diagnostic Quiz (6-7:15pm PDT)
    3 Mon
    7/6
    Sequences & Data Abstraction
    Lab 04: Python Lists, Data Abstraction
    Wed 7/8
    Tue
    7/7
    Functional Decomposition & Debugging
    Disc 04: Recursion, Tree Recursion, Python Lists
    Wed
    7/8
    Trees
    Lab 05: Python Lists, Trees
    Fri 7/10
    HW 04: Data Abstraction, Trees
    Tue 7/14

    Cats
    Thu 7/23
    Thu
    7/9
    Mutable Sequences
    Disc 05: Python Lists, Trees, Mutability
    4 Mon
    7/13
    Mutable Functions
    Lab 06: Nonlocal, Mutability
    Fri 7/17

    Lab 07: Midterm Review
    Fri 7/17
    Tue
    7/14
    Midterm Review
    Disc 06: Nonlocal, Midterm Review
    Wed
    7/15
    Iterators & Generators
    HW 05: Nonlocal, Iterators & Generators
    Tue 7/21
    Thu
    7/16
    No Lecture
    Midterm(5:00pm-8:00pm PDT)
    5 Mon
    7/20
    Objects
    Lab 08: Object-Oriented Programming
    Wed 7/22
    Tue
    7/21
    Inheritance
    Disc 08: Iterators & Generators, Object-Oriented Programming
    Wed
    7/22
    Linked Lists & Trees
    Lab 09: Linked Lists, Mutable Trees
    Fri 7/24
    HW 06: Object-Oriented Programming, Linked Lists, Trees
    Tue 7/28
    Thu
    7/23
    Interfaces
    Disc 09: Linked Lists, Trees
    Ants
    Thu 7/30
    6 Mon
    7/27
    Scheme
    Lab 10: Scheme, Scheme Lists
    Wed 7/29
    Tue
    7/28
    Interpreters
    Disc 10: Scheme, Scheme Lists
    Wed
    7/29
    More Scheme
    Lab 11: Interpreters
    Fri 7/31
    HW 07: Scheme, Tail Recursion, Macros
    Tue 8/4
    Thu
    7/30
    Macros
    Disc 11: Tail Recursion, Macros
    Scheme
    Mon 8/10

    Scheme Challenge Version
    Mon 8/10
    7 Mon
    8/3
    Streams
    Lab 12: Macros, Streams
    Wed 8/5
    Tue
    8/4
    Declarative Programming I
    Disc 12: Streams
    Scheme Contest
    Tue 8/11
    Wed
    8/5
    Declarative Programming II
    Lab 13: SQL
    Fri 8/7
    HW 08: Streams, SQL
    Tue 8/11
    Thu
    8/6
    Final Review
    Disc 13: SQL
    8 Mon
    8/10
    Special Topics I (Programming Languages)
    Lab 14: Final Review
    Wed 8/12
    HW 09: Final Review (Optional)
    Fri 8/14
    Tue
    8/11
    Special Topics II (Machine Learning)
    Disc 14: Final Review
    Scheme Gallery
    Fri 8/14
    Wed
    8/12
    Navigating Berkeley
    Thu
    8/13
    Final (time TBD)