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