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? |