CS 61A: Structure and Interpretation of Computer Programs

Fall 2024: Mon, Wed, Fri 1pm in 150 Wheeler

Announcements: Wednesday, September 11

  • Homework 2 is due Thursday 9/12 @ 11:59pm.
  • Hog is due Thursday 9/19 @ 11:59pm.

    • Checkpoint due Thursday 9/12.
  • You can sign up to attend a TA-led lecture-style review of this week's discussion worksheet.
  • Midterm 1 is Monday 9/16 8pm-10pm.

    • You may bring a double-sided 8.5x11 sheet of notes that you create yourself.
    • We will provide the Midterm 1 Study Guide and scratch paper.
    • Complete the alteration request form by Wednesday, 9/11 at 11:59pm for any seating/timing requests (including DSP students).
    • Past exams are in the Resources menu above.
  • No lecture on Monday 9/16.
  • No lab on Monday 9/16 or Tuesday 9/17.

Announcements: Monday, September 9

  • Homework 1 is due Monday 9/9 @ 11:59pm.
  • Homework 2 is due Thursday 9/12 @ 11:59pm.
  • Hog is due Thursday 9/19 @ 11:59pm.

    • Checkpoint due Thursday 9/12.
  • Come to office hours in Warren 101B for help.
  • Midterm 1 is Monday 9/16 8pm-10pm.

    • Seat assignments will be emailed to you before the exam (probably Sunday)
    • Complete the alteration request form by Wednesday, 9/11 at 11:59pm for any seating/timing requests (including DSP students).
    • Arrive by 8pm to find your seat; the exam will start at 8:10pm.
    • The exam covers material in the videos through Monday 9/9 (Environments).
    • Past exams are in the Resources menu above.
  • You can sign up to attend a TA-led lecture-style review of this week's discussion worksheet.

Announcements: Friday, September 6

  • Homework 1 is due Monday 9/9 @ 11:59pm.
  • Homework 2 is due Thursday 9/12 @ 11:59pm.
  • Hog is due Thursday 9/19 @ 11:59pm.

    • Checkpoint due Thursday 9/12.
  • Come to office hours in Warren 101B for help.

Announcements: Wednesday, September 4

  • Lab 0 and Lab 1 are due Wednesday 9/4 @ 11:59pm.

    • You're meant to complete lab assignments during lab.
    • It's ok to share your lab code with others.
  • Homework 1 is due Monday 9/9 @ 11:59pm.

    • Recommended: Finish by Thursday 9/5.
    • It's not ok to share your homework code with others.
    • There's an experimental AI tutor called "61a-bot" that gives help on your code.
    • If you need more time, you can request an extension.
  • Come to staff office hours in Warren 101B starting Wed 9/4 5pm-8pm.
  • See Ed for: changing sections, lecture questions, external announcements, etc.

Announcements: Friday, August 30

  • Monday labs are rescheduled to Friday 8/30 for this week only (due to the holiday).
  • First work on Lab 0 (setting up your computer) and then on Lab 1.

    • Try Lab 0 before you come to lab if you have time.
  • There are many optional problems on Lab 1 that are useful practice. We recommend:

    • Complete the required Lab 1 problems (about Lecture 2: Functions).
    • Watch the videos for Lecture 3: Control early, perhaps on Monday.
    • Complete the optional Lab 1 problems (about Lecture 3: Control).
  • Homework 1 deadline extended to Monday 9/9 @ 11:59pm. We recommend:

    • Complete all the optional Lab 1 problems before working on Homework 1.
    • Finish the homework by Thursday 9/5 so you can focus on Homework 2 & the Hog project starting 9/6.

Announcements: Monday, August 26

  • Welcome to CS 61A!

Current Assignments

Calendar

Week Date Lecture Textbook Lab & Discussion Links Homework & Project
1 Wed
8/28
Welcome
Disc 00: Getting Started
Lab 00: Getting Started
Due Wed 9/4
Fri
8/30
Functions
HW 01: Functions, Control
Due Mon 9/9
2 Mon
9/2
No Lecture: Labor Day Lab 01: Functions
Due Wed 9/4
Wed
9/4
Control
Disc 01: Control, Environment Diagrams
Fri
9/6
Higher-Order Functions
HW 02: Higher-Order Functions
Due Thu 9/12

Hog
Checkpt Thu 9/12
Due Thu 9/19
3 Mon
9/9
Environments
Lab 02: Higher-Order Functions, Lambda Expressions
Due Wed 9/11
Wed
9/11
Functional Abstraction
Disc 02: Environment Diagrams, Higher-Order Functions
Fri
9/13
Function Examples
4 Mon
9/16
Midterm 1 (8pm-10pm)
Wed
9/18
Recursion
Disc 03: Recursion
Fri
9/20
Tree Recursion
HW 03: Recursion
Due Thu 9/26
5 Mon
9/23
Sequences
Lab 03: Recursion, Python Lists
Due Wed 9/25
Wed
9/25
Containers
Disc 04: Tree Recursion
Cats
Checkpt Thu 10/3
Due Tue 10/8
Fri
9/27
Data Abstraction
6 Mon
9/30
Trees
Lab 04: Tree Recursion, Data Abstraction
Due Wed 10/2
Wed
10/2
Mutability
Disc 05: Trees
Fri
10/4
Iterators
HW 04: Sequences, Trees
Due Thu 10/10
7 Mon
10/7
Generators
Lab 05: Iterators, Mutability
Due Wed 10/9
Wed
10/9
Objects
Disc 06: Iterators, Generators
Fri
10/11
Attributes
HW 05: Generators
Due Thu 10/17

Ants
Checkpt 1 Thu 10/17
Checkpt 2 Tue 10/22
Due Wed 10/30
8 Mon
10/14
Inheritance
Lab 06: Object-Oriented Programming
Due Wed 10/16
Wed
10/16
Representation
Disc 07: OOP
Fri
10/18
Composition
HW 06: Object-Oriented Programming, Linked Lists
Due Thu 10/24
9 Mon
10/21
Efficiency
Lab 07: Linked Lists, Inheritance
Due Wed 10/23
Wed
10/23
Decomposition
Disc 08: Linked Lists, Efficiency
Fri
10/25
Data Examples
10 Mon
10/28
TBD (Optional)
Lab 08: Mutable Trees
Due Wed 10/30
Wed
10/30
TBD (Optional)
Fri
11/1
Midterm 2 (7pm-9pm)
11 Mon
11/4
Scheme
HW 07: Scheme
Due Thu 11/7
Wed
11/6
Scheme Lists
Fri
11/8
Calculator
HW 08: Scheme Lists
Due Thu 11/14
12 Mon
11/11
No Lecture: Veterans Day Lab 09: Scheme
Due Wed 11/13
Wed
11/13
Interpreters
Disc 09: Scheme, Scheme Lists
Scheme
Checkpt 1 Mon 11/18
Checkpt 2 Thu 11/21
Due Tue 11/26
Fri
11/15
Programs as Data
HW 09: Programs as Data, Macros
Due Thu 11/21
13 Mon
11/18
Macros
Lab 10: Interpreters
Due Wed 11/20
Wed
11/20
SQL
Disc 10: Interpreters
Fri
11/22
Tables
HW 10: SQL
Due Wed 12/4
14 Mon
11/25
Aggregation
Lab 11: Programs as Data, Macros
Due Wed 11/27
Wed
11/27
No Lecture: Thanksgiving Disc 11: SQL
Fri
11/29
No Lecture: Thanksgiving
15 Mon
12/2
Databases (Optional)
Lab 12: SQL
Due Wed 12/4
Wed
12/4
Final Examples
Disc 12: Final Review
Fri
12/6
Conclusion
HW 11: Finale
Due Sun 12/15
16 Mon
12/9
No Lecture: RRR Week
Wed
12/11
No Lecture: RRR Week
Fri
12/13
No Lecture: RRR Week
17 Wed
12/18
Final (7pm-10pm)