| Moon's day | Woden' s day | Frigga's day |
|---|
| |
|
Jan 11 |
|
More history of programming languages [1.(1-5)] |
Short assignment due 1/13
|
|
|
Jan 13 |
|
Defining programming languages |
|
|
| |
|
Jan 18 |
|
Imperative programming. Lexical and syntactic structure [1.6; 2.(1 & 2); 3.(1 & 2)] Slides |
Project 1. Due 1/25
|
|
|
Jan 20 |
|
More on grammars and syntactic structure |
|
|
| |
|
|
Jan 27 |
|
Types [5.(1-3); 6.3] Slides |
|
|
| |
|
Feb 1 |
|
Formal semantics [7.(1-4); 8.(1, 4)] |
|
|
|
| |
|
Feb 8 |
|
Switch statements; casting [5.3] |
|
|
|
|
Feb 13 |
|
More on procedures [10] Slides |
|
|
|
Feb 15 |
|
Parameter passing modes [9.4]; nested procedures [9.(5-7)] |
Project 5. Due 3/2
|
|
|
Feb 17 |
|
Arrays and dynamic memory [5.4.3; 11.(1 & 2)] Slides |
Project 6. Due 3/2
|
|
| |
|
|
| |
|
|
| |
|
|
|
Mar 12 |
|
Object-oriented programming. Introduction [13] Slides |
|
|
|
Mar 14 |
|
Types in OOP; polymorphism. [5.(8 & 9)] |
Project 7. Due 3/26
|
|
|
Mar 16 |
|
Type-checking in OOP |
|
|
| |
|
Mar 21 |
|
Alternate formulations of OOP |
|
|
|
Mar 23 |
|
More on alternate formulations |
|
|
| |
|
Mar 28 |
|
Functional programming. Introduction; the lambda calculus [14] |
|
|
|
Mar 30 |
|
More lambda calculus |
|
|
|
Apr 2 |
|
Building a functional programming language |
Project 8. Due 4/16
|
|
|
Apr 4 |
|
More building a functional programming language |
|
|
|
|
Apr 9 |
|
Types in functional languages Slides |
|
|
|
Apr 11 |
|
Type soundness proofs [18.4] |
|
|
|
Apr 13 |
|
More type soundness proofs |
|
|
| |
|
Apr 18 |
|
Classfiles and the JVM |
|
|
|
|
Apr 23 |
|
Continuation-passing style |
|
|
|
Apr 25 |
|
"Growing a Language" |
|
|
|