CS 61A: Structure and Interpretation of Computer Programs

Fall 2020
Instructors: Hany Farid, John DeNero

Wednesday, September 23
Monday, September 21
Friday, September 18
Wednesday, September 16
Monday, September 14
  • Midterm 1 is Monday 9/14 7pm-9pm.

  • No lab this week
  • No lecture today
  • CSM section sign-ups open 6:00pm Sunday 9/13.
  • The completely optional Hog Strategy Contest will end Monday 9/21 @ 11:59pm.

    • Create any final_strategy you want that is a deterministic function of the player scores.
    • One new rule: On all extra turns, roll 8-sided dice.
Friday, September 11
Wednesday, September 9
Friday, September 4
Wednesday, September 2
Monday, August 31
Friday, August 28
  • Instructor "Ask Us Anything" session 2:10pm-3:00pm Friday 8/28.
  • Lab 0 is posted, due Monday 8/31 @ 11:59pm PT.

    • Office hours for lab 0: 6pm-8pm Thursday 8/27 and 12pm-2pm Friday 8/28.
  • Lab 1 will be posted Monday 8/31 and is due the same day.

    • Lab orientations will be held at 2pm, 6pm, and 9pm Monday 8/31.
    • Lab orientations for students without much prior programming experience will be held at 2pm and 7pm Monday 8/31.
    • Pick any lab orientation you want; you don't need to attend more than one.
    • Opportunities to collaborate with other students will be described in the orientation.
    • Links to Lab orientations will appear below once they are set up.
  • Homework 1 will be posted Friday 8/28 (probably at night) and is due Thursday 9/3 @ 11:59pm PT.
  • Important links:

Wednesday, August 26
Monday, August 24
Week Date Lecture Textbook Orientation Links Lab and Discussion Links Homework & Project
1 Wed
8/26
Computer Science
Lab 00: Getting Started
Tue 9/1
Fri
8/28
Functions
HW 01: Variables & Functions, Control
Thu 9/3
2 Mon
8/31
Control
Lab 01: Variables & Functions, Control
Tue 9/1
Wed
9/2
Higher-Order Functions
Disc 01: Environment Diagrams, Control Hog
Fri 9/11
Fri
9/4
Environments
Lab 02: Higher-Order Functions, Lambda Expressions
Tue 9/8
3 Mon
9/7
No Lecture: Labor Day
Wed
9/9
Design
Disc 02: Higher-Order Functions, Self Reference
Fri
9/11
Function Examples
4 Mon
9/14
Midterm 1
Wed
9/16
Recursion
Disc 03: Recursion Hog Contest
Mon 9/21
Fri
9/18
Tree Recursion
HW 02: Recursion
Thu 9/24
5 Mon
9/21
Containers
Lab 04: Recursion, Tree Recursion, Python Lists
Tue 9/22
Wed
9/23
Data Abstraction
Disc 04: Tree Recursion, Python Lists, Data Abstraction
Cats
Fri 10/2
Fri
9/25
Trees
6 Mon
9/28
Binary Numbers
Lab 05: Data Abstraction, Trees
Tue 9/29
Wed
9/30
Circuits
Disc 05: Trees, Binary Numbers
Fri
10/2
Mutable Values HW 03: Trees, Data Abstraction
Thu 10/8
7 Mon
10/5
Mutable Functions Lab 06: Nonlocal, Mutability
Tue 10/6
Wed
10/7
Iterators Disc 06: Nonlocal, Mutability, Iterators
Fri
10/9
Objects HW 04: Nonlocal, Iterators
Thu 10/15
8 Mon
10/12
Inheritance Lab 07: Object-Oriented Programming, Iterators
Tue 10/13
Ants
Fri 10/23
Wed
10/14
Representation Disc 07: Object-Oriented Programming
Fri
10/16
Composition HW 05: Object-Oriented Programming
Mon 10/26
9 Mon
10/19
Efficiency Lab 08: Linked Lists, Mutable Trees
Tue 10/20
Wed
10/21
Decomposition
Disc 08: Linked Lists, Trees, Efficiency
Fri
10/23
Data Examples
10 Mon
10/26
Users
Lab 09: Midterm Review
Tue 10/27
Wed
10/28
Midterm 2
Fri
10/30
Scheme HW 06: Scheme
Thu 11/5
11 Mon
11/2
Exceptions Lab 10: Scheme, Scheme Lists
Tue 11/3
Wed
11/4
Calculator Disc 10: Scheme, Scheme Lists
Fri
11/6
Interpreters HW 07: Scheme
Thu 11/12
12 Mon
11/9
Macros
Lab 11: Interpreters, Macros
Tue 11/10
Scheme
Tue 11/24
Wed
11/11
No Lecture: Veterans Day Disc 11: Interpreters, Macros
Fri
11/13
Tail Calls
HW 08: Macros
Thu 11/19
13 Mon
11/16
Declarative Programming Lab 12: SQL
Tue 11/17
Wed
11/18
Tables Disc 12: SQL
Fri
11/20
Aggregation HW 09: SQL
Thu 12/3
14 Mon
11/23
Databases Lab 13: More SQL
Tue 11/24
Wed
11/25
No Lecture: Thanksgiving
Fri
11/27
No Lecture: Thanksgiving
15 Mon
11/30
Ethical AI & Data
Lab 14: Final Review
Tue 12/1
Wed
12/2
Final Examples
Disc 14: Final Review
Fri
12/4
Conclusion
HW 10: Finale
Fri 12/4
16 Thu
12/17
Final (3-6 PM)