CS 61A Spring 2024

CS 61A: Structure and Interpretation of Computer Programs

Calendar

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