Lectures
| Date | Topic | Do | Read | Note |
|---|---|---|---|---|
| Jan 19 | What are Programming Languages? |
CIPL, Ch. 1
OpSem, Ch. 1 |
Online lecture | |
| Jan 21 | What Can a Computer Do? | CIPL, Ch. 2 | Online lecture | |
| Jan 24 | Induction Primer | Begin: Assgn. 1 |
PLLC, Ch. 2
OpSem, Ch. 2 |
|
| Jan 26 | Syntax & Grammars |
CIPL, Ch. 4.1
OpSem, Ch. 3 |
||
| Jan 28 | Big-Step Operational Semantics | Due: Assgn. 1 Begin: Assgn. 2 |
OpSem, Ch. 4 | |
| Jan 31 | Small-Step Operational Semantics | OpSem, Ch. 5 | ||
| Feb 2 | Alpha, Beta, Eta | Due: Assgn. 2 | CIPL, Ch. 4.2 | |
| Feb 4 | Lambda Calculus in Small Steps | Begin: Assgn. 3 | PLLC, Ch 4.1&4.2 | |
| Feb 7 | Lambda Calculus in Big Steps | PLLC, Ch 4.1&4.2 | ||
| Feb 9 | Intro to Ruby | Due: Assgn. 3 |
Intro to Ruby
Why's, Ch. 3 |
Notes Script |
| Feb 11 | Classes & Objects | Begin: Assgn. 4 |
CIPL, Ch 10
Prog. Ruby, Classes |
Notes Script |
| Feb 14 | Compositional Interpreters | Notes Script | ||
| Feb 16 | Higher-Order Functions |
Due: Assgn. 4
Begin: Assgn. 5 |
CIPL, Ch 3&4.4 | |
| Feb 18 | Algebraic Data Types | CIPL, Ch 5 | ||
| Holiday - No Class | ||||
| Feb 22 | Midterm Review | Due: Assgn. 5 | Online lecture | |
| Feb 23 | Midterm Review | |||
| Feb 25 | Snow day | |||
| Feb 28 | MIDTERM EXAM | |||
| Mar 2 | Syntactic Interpreters | Begin: Assgn. 6 | Notes Script | |
| Mar 4 | The Extensibility Matrix | Notes Script | ||
| Spring Break | ||||
| Spring Break | ||||
| Spring Break | ||||
| Mar 14 | The Rules of Types | Begin: Paper |
CIPL, Ch 6
Static Semantics |
|
| Mar 16 | Abstraction & Polymorphism | Due: Assgn. 6 | CIPL, Ch 6 | |
| Mar 18 | Type Checking & Inference | Begin: Assgn. 7 | CIPL, Ch 6 | |
| Mar 21 | Type Checking & Inference | CIPL, Ch 6 | Notes Script | |
| Mar 23 | Type Safety | Due: Assgn. 7 | PFPL, Ch 2 & 4 | |
| Mar 25 | Variable Binding | Begin: Assgn. 8 | CIPL, Ch 7 | |
| Mar 27 | Static & Dynamic Scope | Extra Credit: E.C. 1 | CIPL, Ch 7 | |
| Mar 30 | Implementing Recursion | Due: Assgn. 8 | CIPL, Ch 7 | |
| Apr 1 | Abstract Machines | Begin: Assgn. 9 | CIPL, Ch 8 | |
| Apr 4 | Closures | CIPL, Ch 8 | ||
| Apr 6 | Mutable State | Due: Assgn. 9 | CIPL, Ch 8 | |
| Apr 8 | Handling Exceptions | Begin: Assgn. 10 | CIPL, Ch 8 | |
| Apr 11 | Continuations in Machines | |||
| Apr 13 | Programming With Continuations | Notes Script | ||
| Apr 15 | Continuation-Passing Style | Extra Credit: E.C. 2 | Notes Script | |
| Holiday - No Class | ||||
| Apr 20 | Logic Programming | Due: Assgn. 10 | CIPL, Ch 15 | Notes Script |
| Apr 22 | Concurrent Programming |
CIPL, Ch 14
LYSE |
Notes Script | |
| Apr 25 | Metaprogramming | Notes Script | ||
| Apr 27 | The Paradox of Computation | Due: Paper | Notes Script | |
| Apr 29 | Final Review | Due: All Extra Credit | ||
| FINAL EXAM |