CS 61A: Structure and Interpretation of Computer Programs

Spring 2020
Instructor: John DeNero
MWF 2:10-3:00 in Wheeler 150

Monday, February 17
  • Lecture 11 is video-only.
  • If you want to attend lab this week, but your regular lab time is on Monday, come to any lab on Tuesday or Wednesday.
  • Midterm 1 (exam, solution) regrade requests are due Tuesday 2/18 @ 11:59pm (extended).
  • The (completely optional) Hog Contest (contest spec, leaderboard) ends Tuesday 2/18 @ 11:59pm (extended).
  • Homework 3 is due Thursday 2/20 @ 11:59pm.
  • Project 2 is due Thursday 2/27 @ 11:59pm.

    • Submit Phase 1 by Monday 2/24.
    • No homework is due next week. Just work on the project.
    • Earn an early submission bonus point for completing the project by Wednesday 2/26.
Friday, February 14
  • Video-only lecture 11 will be posted Monday 2/17. Watch it before lab next week.
  • Midterm 1 (exam, solution) regrade requests are due Tuesday 2/18 @ 11:59pm (extended).
  • The (completely optional) Hog Contest (contest spec, leaderboard) ends Tuesday 2/18 @ 11:59pm (extended).
  • Homework 3 is due Thursday 2/20 @ 11:59pm.
Wednesday, February 12
  • The Midterm 1 exam and solution are posted.

    • You should have received an email from Gradescope with your scored exam.
    • Regrade requests are due Tuesday 2/18 @ 11:59pm (extended).
  • The (completely optional) Hog Contest (contest spec, leaderboard) ends Tuesday 2/18 @ 11:59pm (extended).
  • Discussion sections do meet this week.
  • Sign up starting Wednesday 2/12 for weekly small-group mentoring sections organized by CS Mentors.

    • You can enroll in one P/NP unit if you sign up on Wednesday 2/12.
Friday, February 7
  • Guerrilla Section 11am-1pm Saturday 2/8 in 271/273/275 Soda labs.
  • Midterm 1 is 8pm-10pm Monday 2/10. (No lecture that day.)

    • We will provide scratch paper and the midterm 1 study guide.
    • You can bring a hand-written sheet of notes (front and back).
    • See the resources page for past midterms and other practice problems.
    • See Piazza pinned posts about HKN/CSM review sessions Friday 12/7 & Saturday 12/8.
    • If you have a class conflict, please fill out this form by Friday 2/7 @ 11:59pm.
    • Main topics: calls, defs, assignment, control (if & while), higher-order functions, environments.
    • Other stuff to know: self-reference (e.g., Hog commentary), logical operators (and & or), lambdas.
  • No lab next week.
  • The (completely optional) Hog Contest (contest spec, leaderboard) ends Monday 2/17 @ 11:59pm.
  • Sign-ups for weekly small-group mentoring sections organized by CS Mentors will open Wednesday 2/12.

    • You can get a unit if you sign up on Wednesday
Wednesday, February 5
  • The Hog project is due Thursday 2/6 @ 11:59pm.

    • Complete the whole project by Wednesday 2/5 to earn an early submission bonus point.
    • If you are struggling to find a project partner fill out: links.cs61a.org/hog-partner
  • Homework 2 is due Thursday 2/6 @ 11:59pm.
  • Guerrilla Section 11am-1pm Saturday 2/8 in 271/273/275 Soda labs.
  • Midterm 1 is 8pm-10pm Monday 2/10. (No lecture that day.)

    • We will provide scratch paper and the midterm 1 study guide.
    • See the resources page for past exams.
    • Covers material through Monday 2/3. (Today is an extended example; Friday is review.)
    • Fa19 midterm 1 (solutions) covers the same topics as this semester's midterm.
    • If you have a class conflict, please fill out this form by Friday 2/7 @ 11:59pm.
  • No lab next week.
  • The (completely optional) Hog Contest is released!

    • See the contest spec to participate.
    • The leaderboard will be updated regularly.
    • The contest closes on Monday 2/17 @ 11:59pm.
    • You can participate as an individual or with a partner.
Monday, February 3
  • The Hog project is due Thursday 2/6 @ 11:59pm.

    • Checkpoint 1 (Phase 1 out of 3) is due Monday 2/3 @ 11:59pm. Solve this part by yourself.
    • You can work with a partner on Phases 2 & 3 once you have submitted Phase 1 on your own.
    • Complete the whole project by Wednesday 2/5 to earn an early submission bonus point.
    • If you are struggling to find a project partner fill out: links.cs61a.org/hog-partner
  • Project party 6:30pm-8pm Monday 2/3 in 241/247/237 Cory.

    • We will prioritize checkpoint 1 problems (#1-5b)
    • If you are working on 5a/5b, go to 247 Cory instead
  • Homework 2 is due Thursday 2/6 @ 11:59pm.
  • Guerrilla Section 11am-1pm Saturday, 2/8 in 271/273/275 Soda labs. See Piazza for details.
  • Midterm 1 is 8pm-10pm Monday 2/10. (No lecture that day.)

  • Discussing problems is encouraged, but sharing solutions is not allowed.
Friday, January 31
  • The Hog project is due Thursday 2/6 @ 11:59pm.

    • Checkpoint 1 (Phase 1 out of 3) is due Monday 2/3 @ 11:59pm. Solve this part by yourself.
    • You can work with a partner on Phases 2 & 3 once you have submitted Phase 1 on your own.
    • Complete the whole project by Wednesday 2/5 to earn an early submission bonus point.
    • On Monday 1/27, some test files were fixed. Make sure you have the latest versions of tests/10.py, tests/11.py, and calc.py.
  • Homework 2 is due Thursday 2/6 @ 11:59pm.
  • Midterm 1 is 8pm-10pm Monday 2/10. (No lecture that day.)
Wednesday, January 29
  • Homework 1 is due Thursday 1/30.
  • The Hog project is due Thursday 2/6 @ 11:59pm.

    • Checkpoint 1 (Phase 1 out of 3) is due Monday 2/3 @ 11:59pm. Solve this part by yourself.
    • You can work with a partner on Phases 2 & 3 once you have submitted Phase 1 on your own.
    • Complete the whole project by Wednesday 2/5 to earn an early submission bonus point.
    • On Monday, some test files were fixed. Make sure you have the latest versions of tests/10.py, tests/11.py, and calc.py.
  • There are many external announcements on Piazza.
  • Come to office hours for help. No appointment necessary.
Monday, January 27
  • Watch videos through EdX or YouTube
  • Attend lab this week and finish the lab assignment during your lab section.
  • Homework 1 is due Thursday 1/30.

    • Homework party 6:30pm-8pm Monday 1/27 in 241 Cory Hall
    • More drop-in office hours will be posted shortly.
  • The Hog project is due Thursday 2/6 @ 11:59pm.

    • Checkpoint 1 (Phase 1 out of 3) is due Monday 2/3 @ 11:59pm. Solve this part by yourself.
    • You can work with a partner on Phases 2 & 3 once you have submitted Phase 1 on your own.
    • Complete the whole project by Wednesday 2/5 to earn an early submission bonus point.
Friday, January 24
  • The first (Wed 1/22) and second (Fri 1/24) lectures will be held 2:10pm-3pm in Zellerbach Hall.
  • Lecture content appears on cs61a.org

    • Videos are posted before live lecture.
    • Slides and examples are also posted before lecture.
  • Lab 0 is posted. Try to finish it before coming to lab section next week (Monday-Wednesday).

    • Drop-in office hours to help you 12pm-2pm Friday 1/24 in 380 Soda.
    • If you don't finish beforehand, you can get help in lab next week.
  • Homework 1 is due Thursday 1/30.
Wednesday, January 22
  • Welcome to CS 61A!
  • Join Piazza for announcements and answers to your questions.
  • The first (Wed 1/22) and second (Fri 1/24) lectures will be held 2:10pm-3pm in Zellerbach Hall.
  • Sign up online for lab and discussion sections.
  • Discussion starts Wednesday 1/22.
  • The Fall 2019 website has moved to fa19.cs61a.org.
  • Lab 0 is posted. Try to finish it before coming to lab section next week (Monday-Wednesday).

    • Drop-in office hours to help you 12pm-2pm Friday 1/24 in 380 Soda.
    • If you don't finish beforehand, you can get help in lab next week.
  • Office Hours:

    • John DeNero's office hours start next Monday 1/27. His weekly office hours are 3:15-4:30 on Monday and Wednesday in 781 Soda.
    • Course staff office hours will begin next Monday 1/27. The schedule will be posted soon.
Tuesday, January 21
  • Welcome to CS 61A!
  • Join Piazza for announcements and answers to your questions.
  • The first (Wed 1/22) and second (Fri 1/24) lectures will be held 2:10pm-3pm in Zellerbach Hall.
  • Sign up online for lab and discussion sections.
  • There is no lab on Tuesday 1/21 or Wednesday 1/22.
  • Discussion starts Wednesday 1/22.
  • The Fall 2019 website has moved to fa19.cs61a.org.
Week Date Lecture Textbook Lab and Discussion Links Homework & Project
1 Mon
1/20
Lab 00: Getting Started
Fri 1/31
Wed
1/22
Functions
Disc 00: Getting Started
Fri
1/24
Names
HW 01
Thu 1/30
2 Mon
1/27
Control
Lab 01: Variables & Functions, Control
Fri 1/31
Hog
Thu 2/6
Wed
1/29
Higher-Order Functions
Disc 01: Control, Environment Diagrams
Fri
1/31
Environments
HW 02
Thu 2/6
3 Mon
2/3
Iteration
Lab 02: Higher-Order Functions, Lambda Expressions, Self Reference
Fri 2/7
Wed
2/5
Design
Disc 02: Higher-Order Functions, Self Reference Hog Contest
Tue 2/18
Fri
2/7
Function Examples
Guerrilla 00: Higher-Order Functions, Environment Diagrams, Control
4 Mon
2/10
Midterm 1 8pm-10pm
Wed
2/12
Recursion
Disc 03: Recursion HW 03
Thu 2/20
Fri
2/14
Tree Recursion
5 Mon
2/17
Containers
Lab 04: Recursion, Tree Recursion
Fri 2/21
CATS
Thu 2/27
Wed
2/19
Data Abstraction Disc 04: Python Lists, Tree Recursion
Fri
2/21
Trees
6 Mon
2/24
Mutable Values Lab 05: Python Lists, Data Abstraction, Trees
Fri 2/28
Wed
2/26
Mutable Functions Disc 05: Trees, Mutability, Data Abstraction, Python List Mutation
HW 04
Thu 3/5
Fri
2/28
Iterators
7 Mon
3/2
Objects Lab 06: Nonlocal, Iterators & Generators
Fri 3/6
Ants
Thu 3/12
Wed
3/4
Inheritance Disc 06: Nonlocal, Iterators & Generators
Fri
3/6
Representation HW 05
Tue 3/17
8 Mon
3/9
Composition Lab 07: Linked Lists, Mutable Trees, Object-Oriented Programming
Fri 3/13
Wed
3/11
Efficiency Disc 07: Object-Oriented Programming, Linked Lists, Trees, Efficiency
Fri
3/13
Decomposition
9 Mon
3/16
Data Examples
Lab 08: Midterm Review
Fri 3/20
Wed
3/18
No Lecture: Midterm 2 is next Day
Thu
3/19
Midterm 2 7pm-9pm
Fri
3/20
Users
10 Mon
3/23
No Lecture: Spring Break
Wed
3/25
No Lecture: Spring Break
Fri
3/27
No Lecture: Spring Break
11 Mon
3/30
Scheme Lab 09: Scheme, Scheme Lists
Fri 4/3
HW 06
Thu 4/2
Wed
4/1
Exceptions Disc 09: Scheme
Fri
4/3
Calculator HW 07
Thu 4/9
12 Mon
4/6
Interpreters Lab 10: Interpreters
Fri 4/10
Scheme
Tue 4/21
Wed
4/8
Tail Calls Disc 10: Interpreters, Tail Recursion
Fri
4/10
Macros
HW 08
Thu 4/16
13 Mon
4/13
Streams
Lab 11: Macros
Fri 4/17
Wed
4/15
Declarative Programming Disc 11: Streams, Macros
Fri
4/17
Tables HW 09
Thu 4/23
14 Mon
4/20
Aggregation Lab 12: Streams, SQL
Fri 4/24
Wed
4/22
Databases Disc 12: SQL
Fri
4/24
Distributed Data
HW 10
Thu 4/30
15 Mon
4/27
Natural Language
Lab 13: Final Review
Fri 5/1
Wed
4/29
Final Examples
Fri
5/1
Conclusion
HW 11
Fri 5/1