CS 61A Spring 2024

CS 61A: Structure and Interpretation of Computer Programs

Calendar

Week Date Lecture Textbook Lab & Discussion Links Homework & Project
1 Wed 1/17 Welcome[intro]   Disc 00: Getting Started  
1 Fri 1/19 Functions [01Names Assignment and UserDefined Functions][02Environment Diagrams][03Defining Functions][04Print and None] [Ch.1.1], [Ch.1.2], [Ch.1.3] Lab 00: Getting Started [pdf][zip] HW 01: Functions, Control[pdf][zip]
2 Mon 1/22 Control [01Multiple Environments] [02Miscellaneous Python Features][03Conditional statements][04Iteration] [Ch. 1.4] [Ch. 1.5] Lab 01: Functions, Control[pdf][zip]  
2 Wed 1/24 Higher-Order Functions [01Iteration Example][02Control][03Control Expressions][04Higher-Order Functions][04-Higher-Order_Functions_1pp][05Functions as Return Values] [Ch. 1.6] Disc 01: Control, Environment Diagrams Hog[pdf][zip]
2 Fri 1/26 Environments [01Environments for HigherOrder Functions][02Environments for Nested Definitions][03Local Names][04Function Composition][05Lambda Expressions][06Function Currying] [Ch. 1.6]   HW 02: Higher-Order Functions [pdf][zip]
3 Mon 1/29 Functional Abstraction [01Lambda Function Environments][02Return][03Abstraction][04Errors Tracebacks]   Lab 02: Higher-Order Functions,Lambda Expressions[pdf][zip]  
3 Wed 1/31 Function Examples [01Midterm 1 Review][02Implementing Functions][03Decorators]   Disc 02: Environment Diagrams, Higher-Order Functions  
3 Fri 2/2 Function Demos (Optional)      
4 Mon 2/5 Midterm 1 (8pm-10pm)      
4 Wed 2/7 Recursion [01SelfReference][02Recursive Functions] Ch. 1.7 Disc 03: Recursion  
4 Fri 2/9 Tree Recursion [01Order of Recursive Calls][02Example Inverse Cascade][03Tree Recursion][04Example Counting Partitions] Ch. 1.7   HW 03: Recursion, Tree Recursion[pdf][zip]
5 Mon 2/12 Sequences [01Lists][02Containers][03For Statements][04Ranges][05List Comprehensions] [Ch. 2.1] [Ch. 2.3] Lab 03: Recursion, Python Lists[pdf][zip]  
5 Wed 2/14 Containers [01BoxandPointer Notation][02Slicing][03Processing Container Values][04Strings][05Dictionaries] [Ch. 2.3] Disc 04: Tree Recursion Cats[pdf][zip]
5 Fri 2/16 Data Abstraction [01Data Abstraction][02Representing Rational Numbers][03Abstraction Barriers][04Data Representations] [Ch. 2.2]    
6 Mon 2/19 No Lecture: Presidents’ Day   Lab 04: Tree Recursion, Data Abstraction[pdf][zip]  
6 Wed 2/21 Trees [01Trees][02Tree Processing][03Example Printing Trees][04Example Summing Paths][05Example Counting Paths] [Ch. 2.3] Disc 05: Trees  
6 Fri 2/23 Mutability [01Objects][02Example Strings][03Mutation Operations][04Tuples][05Mutation][06Mutable Functions] [Ch. 2.4]   HW 04: Sequences, Trees
7 Mon 2/26 Iterators [01Iterators][02Dictionary Iteration][03For Statements][04Builtin Iterator Functions][05Zip][06Using Iterators] [Ch. 4.2] Lab 05: Iterators, Mutability[pdf][zip]  
7 Wed 2/28 Generators [01Generators][02Generators Iterators][03Example Partitions] [Ch. 4.2] Disc 06: Iterators, Generators Video  
7 Fri 3/1 Objects [01ObjectOriented Programming][02Class Statements][03Creating Instances][04Methods] [Ch. 2.5]   HW 05: Generators[pdf][zip]
8 Mon 3/4 Attributes [01Method Calls][02Attribute Lookup][03Class Attributes][04Bound Methods] [Ch. 2.5] Lab 06: Object-Oriented Programming[pdf][zip] Ants[pdf][zip]
8 Wed 3/6 Inheritance [01Inheritance][02ObjectOriented Design][03Attribute Lookup Practice][04Multiple Inheritance] [Ch. 2.5] Disc 07: OOP Video  
8 Fri 3/8 Representation [01String Representations][02String Interpolation][03Polymorphic Functions][04Special Method Names] [Ch. 2.7]   HW 06: Object-Oriented Programming, Linked Lists[pdf][zip]
9 Mon 3/11 Composition [01Linked Lists][02Linked List Processing][03Linked List Mutation][04Linked List Mutation Example][05Tree Class][06Tree Mutation] Lab 07: Linked Lists, Inheritance[pdf][zip]    
9 Wed 3/13 Efficiency [01Measuring Efficiency][02Memoization][03Exponentiation][04Orders of Growth][05Order of Growth Notation][06Space] [Ch. 2.8] Disc 08: Linked Lists, Efficiency Video  
9 Fri 3/15 Decomposition [01Modular Design][02Example Restaurant Search] [03Example Similar Restaurants][04Example Reading Files][05Set Intersection]      
10 Mon 3/18 Data Examples [01Examples Lists][02Examples Objects][03Examples Iterables Iterators][04Examples Linked Lists]   Lab 08: Mutable Trees[pdf][zip]  
10 Wed 3/20 No Lecture: Midterm 2 on Thursday      
10 Thu 3/21 Midterm 2 (8pm-10pm)      
10 Fri 3/22 Large Language Models (Pamela Fox) (Optional)      
11 Mon 3/25 No Lecture: Spring Break      
11 Wed 3/27 No Lecture: Spring Break      
11 Fri 3/29 No Lecture: Cesar Chavez Day      
12 Mon 4/1 Scheme [01Scheme][02Scheme Interpreters][03Special Forms][04Lambda Expressions][05More Special Forms][06Example Sierpinskis Triangle] [Ch. 3.1] [Ch. 3.2] Lab 09: Scheme[pdf][zip] HW 07: Scheme[pdf][zip]
12 Wed 4/3 Scheme Lists [01Lists][02Symbolic Programming][03List Processing][04Example Even Subsets][05Discussion Question Even Subsets Using Filter] [Ch. 3.2] Disc 09: Scheme, Scheme Lists  
12 Fri 4/5 Calculator [01Exceptions][02Example Reduce][03Programming Languages][04Parsing][05SchemeSyntax Calculator][06Evaluation][07Interactive Interpreters] [Ch. 3.3] [Ch. 3.4]   HW 08: Scheme Lists[pdf][zip]
13 Mon 4/8 Interpreters [01Interpreting Scheme][02Special Forms][03Logical Forms][04Quotation][05Lambda Expressions][06Define Expressions][07Dynamic Scope] Ch. 3.5 Lab 10: Interpreters[pdf][zip] Scheme[pdf][zip]
13 Wed 4/10 Programs as Data [01Programs as Data][02Generating Code]   Disc 10: Interpreters Video  
13 Fri 4/12 Macros [01Expressions][02Macros][03For Macro][04Trace]     HW 09: Programs as Data, Macros[pdf][zip]
14 Mon 4/15 SQL [01Databases][02Structured Query Language SQL][03Projecting Tables][04Arithmetic]   Lab 11: Programs as Data, Macros[pdf][zip] (Optional) Scheme Contest[pdf][zip]
14 Wed 4/17 Table [01Joining Tables][02Aliases and Dot Expressions][03Numerical Expressions][04String Expressions]   Disc 11: SQL  
14 Fri 4/19 Aggregation [01Aggregation][02Grouping]     HW 10: SQL[pdf][zip]
15 Mon 4/22 Databases (Optional) [01Create Table and Drop Table][02Modifying Tables][03Python and SQL][04Database Connections]   Lab 12: SQL[pdf][zip]  
15 Wed 4/24 Final Examples [01Trees][02Tree Processing][03Recursive Accumulation][04Designing Functions][05Applying the Design Process]   Disc 12: Final Review  
15 Fri 4/26 Conclusion Recording     HW 11: Finale Scheme Gallery[pdf][zip]
16 Mon 4/29 No Lecture: RRR Week      
16 Wed 5/1 No Lecture: RRR Week      
16 Fri 5/3 No Lecture: RRR Week      
17 Tue 5/7 Final (11:30am-2:30pm)      

This site uses Just the Docs, a documentation theme for Jekyll.