CS 61A: Structure and Interpretation of Computer Programs

Summer 2020
Instructors: Chae Park, Ryan Moughan, Kavi Gupta
MWF 2:10-3:00 in Wheeler 150

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
Mon 6/29
Wed
6/24
Control
Lab 01: Variables & Functions, Control
Fri 6/26
HW 02
Fri 6/26
Thu
6/25
Environment Diagrams
Disc 01: Environment Diagrams, Control, Self Reference
Hog
Mon 7/6
2 Mon
6/29
Higher-Order Functions
Lab 02: Higher-Order Functions, Lambda Expressions, Self Reference
Fri 7/3
Tue
6/30
Recursion
Disc 02: Higher-Order Functions
Hog Contest
Tue 7/7
Wed
7/1
Recursion Examples
Lab 03: Recursion, Tree Recursion
Fri 7/3
HW 03
Fri 7/3
Thu
7/2
No Lecture: Independence Day Disc 03
3 Mon
7/6
Sequences & Data Abstraction
Lab 04: Python Lists, Data Abstraction
Fri 7/10
Cats
Tue 7/21
Tue
7/7
Functional Decomposition & Debugging
Disc 04: Recursion, Tree Recursion
Wed
7/8
Trees
Lab 05: Python Lists, Trees
Fri 7/10
HW 04
Fri 7/10
Thu
7/9
Mutable Sequences
Disc 05: Trees, Mutability
4 Mon
7/13
Mutable Functions & Growth
Lab 06: Nonlocal, Mutability
Fri 7/17

Lab 07: Efficiency, Midterm Review
Fri 7/17
Tue
7/14
Iterators & Generators
Disc 06: Efficiency, Midterm Review, Iterators & Generators
Wed
7/15
Midterm Review
HW 05
Fri 7/17
Thu
7/16
No Lecture
Midterm 1 (time TBD)
Disc 07
5 Mon
7/20
Objects
Lab 08: Object-Oriented Programming
Fri 7/24
Tue
7/21
Inheritance
Disc 08: Object-Oriented Programming, Nonlocal
Ants
Tue 7/28
Wed
7/22
Linked Lists & Trees
Lab 09: Linked Lists, Mutable Trees
Fri 7/24
HW 06
Fri 7/24
Thu
7/23
Interfaces
Disc 09: Linked Lists, Trees
6 Mon
7/27
Scheme
Lab 10: Scheme, Scheme Lists
Fri 7/31
Tue
7/28
More Scheme
Disc 10: Scheme, Scheme Lists
Scheme
Fri 8/7
Wed
7/29
Interpreters
Lab 11: Interpreters
Fri 7/31
HW 07
Fri 7/31
Thu
7/30
Macros
Disc 11: Tail Recursion, Macros
7 Mon
8/3
Streams
Lab 12: Macros
Fri 8/7
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
Fri 8/7
Thu
8/6
Special Topics I (Security)
8 Mon
8/10
Final Review
Lab 14: Final Review
Fri 8/14
Tue
8/11
Special Topics II (TBD)
Disc 14: Final Review
Wed
8/12
Final Lecture
Thu
8/13
Final (time TBD)