CS 61A: Structure and Interpretation of Computer Programs
Spring 2023, Instructors: John DeNero, Hany Farid
Friday, January 27
- 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.
Week 2 Class Material
-
Lecture 3: Control
-
Lecture 4: Environments
-
Lecture 5: Higher-Order Functions
- Week 2 Readings:
- Disc 01: Control, Environment Diagrams
Wednesday, January 25
Homework 1 is due Thursday 1/26 @ 11:59pm.
- Come to drop-in office hours to work with the staff & other students.
- Join the office hours queue when you get there: oh.cs61a.org.
- Request an extension if you need it: go.cs61a.org/extensions.
Week 2 Class Material
-
Lecture 3: Control
-
Lecture 4: Environments
-
Lecture 5: Higher-Order Functions
- Week 2 Readings:
- Disc 01: Control, Environment Diagrams
Monday, January 23
Come to lab section, finish Lab 0 if you haven't yet, finish Lab 1, and then get checked off.
- Change/choose your section on sections.cs61a.org.
- If you finish everything (including the optional lab questions), you can get checked off and leave early.
Homework 1 is due Thursday 1/26 @ 11:59pm.
- Come to drop-in office hours to work with the staff & other students.
- Join the office hours queue here: oh.cs61a.org.
- Homework party Tuesday 5-7pm in 101B Warren Hall.
- Request an extension if you need it: go.cs61a.org/extensions.
- There's an Ed thread for lecture questions every lecture.
Week 2 Class Material
-
Lecture 3: Control
-
Lecture 4: Environments
-
Lecture 5: Higher-Order Functions
- Week 2 Readings:
- Disc 01: Control, Environment Diagrams
Friday, January 20
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.
Week 1 Class Material
-
Lecture 1: Computer Science
-
Lecture 2: Functions
- Week 1 Readings:
- Disc 00: Getting Started
Wednesday, January 18
- 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!
- See the office hours calendar for help from the staff; 2pm-6pm Thursday 1/19 in 101B Warren & online.
- In-person lab section does not begin until Monday 1/23.
- Here is the archived Fall 2022 website.
Week 1 Class Material
-
Lecture 1: Computer Science
-
Lecture 2: Functions
- Week 1 Readings:
- Disc 00: Getting Started
Friday, January 13
- 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.
Week 1 Class Material
-
Lecture 1: Computer Science
-
Lecture 2: Functions
- Week 1 Readings:
- Disc 00: Getting Started
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) |