CS 61A: Structure and Interpretation of Computer Programs

Spring 2023, Instructors: John DeNero, Hany Farid

Friday, January 27

Jump to date
  • Homework 2 is due Thursday 2/2 @ 11:59pm.
  • Please submit all lab assignments, but your Gradescope autograder score on the lab assignment doesn't matter for grading unless you are in mega lab.
  • Midterm 1 is 7pm-9pm on Monday 2/6 in various locations across campus.

    • Complete the midterm 1 exam alteration request form by Thursday 2/2 @ 11:59pm for DSP accommodations, left-handed desks, alternate times, mask-required rooms, and any other exam-related requests.
    • You will be assigned a seat, probably on Sunday 2/5.
    • 40 points, and you can recover up to 90% (up to 36 out of 40) by doing well on the final.

Monday, January 23

Jump to date

Friday, January 20

Jump to date
  • Lab 0 is a take-home lab to get you set up. Try it this week!

    • Come to lab section next week if you get stuck.
  • Homework 1 is due Thursday 1/26 @ 11:59pm.

    • Questions 1 & 2 are based on today's lecture.
    • Questions 3 & 4 are based on Monday's lecture.
    • Lab 1 next week is designed to prepare you to complete this homework.
  • Sign up for a lab/discussion section on sections.cs61a.org.

    • More spaces will open up tonight in case you don't have a section or need to switch.
  • Switching courses:

    • You can request to enroll in Data 8 until Sunday 1/22 @ 11:59pm by filling out this form.
    • CS 10 strongly recommends new students join before Friday 1/27 and follow along on cs10.org. Join the waitlist (CalCentral) and fill out the CS 10 enrollment survey. Space is limited.
    • Join the Data C88C waitlist if you wish to enroll; there is a good chance that the waitlist will clear.
  • Here is the archived Fall 2022 website.

Wednesday, January 18

Jump to date
  • Welcome to CS 61A!
  • Ed contains timely course announcements.
  • Discussion section begins this week! Find your section (and make changes) on sections.cs61a.org.
  • Lab 0 is a take-home lab to get you set up. Try it this week!

  • In-person lab section does not begin until Monday 1/23.
  • Here is the archived Fall 2022 website.

Friday, January 13

Jump to date
  • Welcome to CS 61A!
  • Ed contains timely course announcements.
  • Complete the section preference form by 11:59pm Sunday 1/15.
  • CS 61A does not use bCourses.
  • Discussion section begins Wednesday 1/18.
  • Lab section does not begin until Monday 1/23.
  • Here is the archived Fall 2022 website.

Current Assignments

Calendar

Week Date Lecture Textbook Lab & Discussion Links Homework & Project
1 Wed
1/18
Disc 00: Getting Started
Lab 00: Getting Started
Due Wed 1/25
Fri
1/20
HW 01: Functions, Control
Due Thu 1/26
2 Mon
1/23
Lab 01: Functions, Control
Due Wed 1/25
Wed
1/25
Disc 01: Control, Environment Diagrams
Fri
1/27
HW 02: Higher-Order Functions, Lambda Expressions
Due Thu 2/2
3 Mon
1/30
Higher-Order Environments Lab 02: Higher-Order Functions, Lambda Expressions
Due Wed 2/1
Hog
Checkpt Tue 2/7
Due Fri 2/10
Wed
2/1
Functional Abstraction
Disc 02: Environment Diagrams, Higher-Order Functions
Fri
2/3
Function Examples
Lab 03: Midterm Review (Optional)
Due Mon 2/6
4 Mon
2/6
No lecture: Midterm 1 (7pm-9pm)
Wed
2/8
Recursion 1 Disc 03: Recursion
Fri
2/10
Recursion 2 HW 03: Recursion, Tree Recursion
Due Thu 2/16
5 Mon
2/13
Sequences Lab 04: Recursion, Tree Recursion, Python Lists
Due Wed 2/15
Wed
2/15
Containers Disc 04: Tree Recursion, Python Lists
Cats
Checkpt Tue 2/21
Due Fri 2/24
Fri
2/17
Data Abstraction
6 Mon
2/20
No Lecture: President's Day Lab 05: Data Abstraction, Python Lists
Due Wed 2/22
Wed
2/22
Trees Disc 05: Sequences, Data Abstraction, Trees
Fri
2/24
Mutability HW 04: Sequences, Trees
Due Thu 3/2
7 Mon
2/27
Iterators Lab 06: Mutability, Iterators
Due Wed 3/1
Wed
3/1
Generators Disc 06: Mutability, Iterators, Generators
Fri
3/3
Gates & Circuits (Optional) HW 05: Generators
Due Thu 3/9
8 Mon
3/6
Objects 1 Lab 07: Object-Oriented Programming
Due Wed 3/8
Wed
3/8
Objects 2 Disc 07: Object-Oriented Programming
Fri
3/10
Objects 3 HW 06: Object-Oriented Programming
Due Thu 3/16
9 Mon
3/13
Inheritance Lab 08: OOP, Inheritance
Due Wed 3/15
Ants
Checkpt 1 Fri 3/17
Checkpt 2 Tue 3/21
Due Fri 3/24
Wed
3/15
Representation Disc 08: OOP, Inheritance, String Representation
Fri
3/17
Efficiency
10 Mon
3/20
Trees 2
Lab 09: String Representation, Mutable Trees
Due Wed 3/22
Wed
3/22
Linked Lists
Disc 09: Mutable Trees, Linked Lists, Efficiency
Fri
3/24
Ask Us Anything (Optional)
HW 07: Linked Lists, Mutable Trees
Due Thu 4/6
11 Mon
3/27
No Lecture: Spring Break
Wed
3/29
No Lecture: Spring Break
Fri
3/31
No Lecture: Spring Break
12 Mon
4/3
Ethics & Bias in Computer Science
Lab 10: Midterm Review (Optional)
Due Wed 4/5
Wed
4/5
Data Examples
Fri
4/7
No lecture: Midterm 2 (7pm-9pm)
13 Mon
4/10
Scheme Lab 11: Scheme
Due Wed 4/12
HW 08: Scheme
Due Thu 4/13
Wed
4/12
Scheme Lists Disc 11: Scheme, Scheme Lists
Fri
4/14
Calculator HW 09: Scheme Lists
Due Thu 4/20
14 Mon
4/17
Interpreters Lab 12: Interpreters
Due Wed 4/19
Scheme
Checkpt 1 Fri 4/21
Checkpt 2 Tue 4/25
Due Fri 4/28
Wed
4/19
SQL
Disc 12: Interpreters, SQL
Fri
4/21
Tables
15 Mon
4/24
Aggregation
Lab 13: SQL
Due Wed 4/26
HW 10: SQL
Due Tue 5/2
Wed
4/26
Databases (Optional)
Disc 13: Final Review
Fri
4/28
Conclusion
HW 11: Finale
Due Thu 5/4
16 Mon
5/1
No Lecture: RRR Week
Wed
5/3
No Lecture: RRR Week
Fri
5/5
No Lecture: RRR Week
17 Tue
5/9
Final (11:30am-2:30pm)