| Mon | Day | DOW | Special | Class | Lecture | Unit | Topic | Reading | Project |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 20 | T | 1 | 0 | Introduction | Intro | PLP 1.0-1.3 | ||
| 1 | 22 | R | 2 | 1 | Compilation and Interpretation | PLP 1.4-1.5, 1.7 | |||
| 1 | 27 | T | 3 | 2 | Syntax | Lexical Analysis (Scanning) | PLP 2.0-2.2; CS 2.4 | ||
| 1 | 29 | R | 4 | 3 | Parsing: Top-down, Predictive, Recursive descent | PLP 2.3.0-2.3.2 | |||
| 2 | 3 | T | 5 | 4 | Parsing: Bottom-up, Error recovery | PLP 2.3.3; CS 2.3.5 | Project 1 Due | ||
| 2 | 5 | R | 6 | 5 | Names | Binding, Storage | PLP 3.0-3.2 | ||
| 2 | 10 | T | 7 | 6 | Scope | PLP 3.3-3.4 | |||
| 2 | 12 | R | 8 | 7 | Meaning of Names, Binding of Reference Environments, Macros | PLP 3.5-3.7, 3.9 | |||
| 2 | 17 | T | 9 | 8 | Semantics | Program Semantics, Abstract Syntax TreesPLP 4.0-4.2 | PLP 4.0-4.5 | ||
| 2 | 19 | R | 10 | 9 | Formal Semantics: Dynamic, Static, Soundness | PLP 4.3-4.5, 4.7 | |||
| 2 | 24 | T | 11 | 10 | Control Flow | Expressions, sequencing, and selection | PLP 6.0-6.4 | ||
| 2 | 26 | R | 12 | 11 | Iteration and recursion | PLP 6.5-6.6 | |||
| 3 | 3 | T | 13 | 12 | Nondeterminacy | PLP 6.7-6.8 (CS 6.7) | Project 2 Due | ||
| 3 | 5 | R | 14 | Midterm Exam 1 | Midterm Exam 1 | ||||
| 3 | 10 | T | Spring Break | ||||||
| 3 | 12 | R | Spring Break | ||||||
| 3 | 17 | T | 15 | 13 | Code Generation and Runtime Systems | Code Generation, Assembly | PLP 15.0-15.3 | ||
| 3 | 19 | R | 16 | 14 | Type Systems | Type Checking | PLP 7.0-7.2 | ||
| 3 | 24 | T | 17 | 15 | Generics, Polymorphism, Equality | PLP 7.3-7.6 | |||
| 3 | 26 | R | 18 | 16 | Composite Types | Records and Arrays | PLP 8.0-8.4 | ||
| 3 | 31 | T | 19 | 17 | Pointers and Recursive Types | PLP 8.5 | |||
| 4 | 2 | R | 20 | 18 | Control Abstraction | Subroutines, Calling Sequences, Parameter Passing | PLP 9.0-9.3 | ||
| 4 | 7 | T | 21 | 19 | Exceptions, Events, Asynchronous Programming | PLP 9.4, 9.6-9.8 | Project 3 Due | ||
| 4 | 9 | R | 22 | 20 | Object Orientation (Data Abstraction) | Review and implementation | PLP 10.0-10.5 | ||
| 4 | 14 | T | 23 | 21 | Concurrency | Threads | PLP 13.0-13.2.3, 9.5, 13.2.4 | ||
| 4 | 16 | R | 24 | 22 | Synchronization, Language Mechanisms | PLP 13.3-13.4 | |||
| 4 | 21 | T | 25 | 23 | Run-Time Program Management | Virtual Machines, JVM, JIT, Reflection | PLP 16.0-16.1.1, 16.2 (through HotSpot example), 16.3 (Java only) | ||
| 4 | 23 | R | 26 | 24 | Functional Programming | A Little Bit of Scheme/Lisp | PLP 11.0-11.2, 8.6, 11.3 | ||
| 4 | 28 | T | 27 | 25 | Evaluation Order, Higher-order Functions | PLP 11.5-11.6, 11.8-11.9 | Project 4 Due | ||
| 4 | 30 | R | 28 | Midterm Exam 2 | Midterm Exam 2 |
Last change: Tue Jan 13 14:14:56 2026