| Scheming Schemers |
| Thursday, 18 January | Introduction: Computer science and why programming languages matter? |
| Tuesday, 23 January | Languages, Higher Order Procedures |
| Thursday, 25 January | Of Lists and Slippery Slopes |
| Tuesday, 30 January | Metalinguistic Abstraction |
| Thursday, 1 February |
Modifying Languages, Lazy Evaluation
|
| Mocking Mockingbirds |
| Tuesday, 6 February |
Lambda Calculus Introduction
|
| Thursday, 8 February |
Lambda Calculus Revisited
|
| Tuesday, 13 February |
Making Primitives
|
| Thursday, 15 February |
Fixed Points
|
| Tuesday, 20 February |
Impish Imperatives
|
| Language Design |
| Thursday, 22 February |
Introduction to Language Design
|
| Tuesday, 27 February |
Algol60 and its Descendants
|
| Thursday, 1 March |
Operational Semantics
|
| Tuesday, 6 March |
Static Semantics and Types
|
| Thursday, 8 March |
No Class
|
| Spring Break, 10 March - 18 March | Ponder the power of Lambda and think of a Project Idea |
| Objecting Objectively |
| Tuesday, 20 March |
Data Abstraction
|
| Thursday, 22 March |
Smalltalking About Objects
|
| Tuesday, 27 March |
Inheritance and Behavioral Subtyping |
| Thursday, 29 March |
Behavioral Subtyping |
| Tuesday, 3 April | Object-Oriented Pragmatics (no lecture slides) |
| Thursday, 5 April | Axiomatic Semantics |
| Tuesday, 10 April | Proof-Carrying Code |
| Concurring Concurrently |
| Thursday, 12 April | Concurrency Primitives |
| Tuesday, 17 April | Abstractions for Concurrency, Tuple Spaces |
| Thursday, 19 April |
Teaching CS Discussion (no slides)
|
| Tuesday, 24 April |
Project Presentations
|
| Thursday, 26 April |
Project Presentations
|
| PL Jeopardy |
| Tuesday, 1 May | Who wants to be a hecto-billionaire? |