COS 441 - Schedule and Readings


Schedule

(subject to rearrangement)
Date Topic Reading
2/2 Desiderata; variables, types Finkel 1.1, 1.2, 1.3.1 [buzzwords]
2/4 Expressions; control constructsFinkel 1.3.2
2/6 Procedures; parametersFinkel 1.3.3
2/9 Procedures, parametersFinkel 1.3.4
2/11 Block structure; runtime store organizationFinkel 1.3.5
2/13 TypesFinkel 3.1-3.3, 3.7 [buzzwords]
2/16 MLFinkel 3.7, Ullman 1,2
2/18 Subtypes; ADT's in MLFinkel 3.3, 3.5, 3.7, Ullman 3,6, 8.1-8.2
2/20 ADT's and modules; 1st-class functionsFinkel 3.5, 3.6, Ullman 5
2/23 Polymorphism; higher-order functionsFinkel 3.7.6-3.7.8, Ullman 5
2/25 Lambda calculusFinkel 4.5, Hindley 1, notes
2/27 Fixed pointsHindley 3,4, notes
3/2 ComputabilityHindley 5
3/4 Lazy EvaluationFinkel 3.8
3/6 Lazy; ClosuresNotes; Finkel 1.3.4, 4.1.6, Appel 15
3/9 Object-Oriented ProgrammingFinkel 5, Arnold
3/11 Object-Oriented ProgrammingFinkel 5, Arnold
3/13 Take-Home Midterm Exam DueCovers through March 9th
Spring Break
3/23 Compiling OOPAppel 14
3/25 Garbage CollectionAppel 13
3/27 Hoare's logicFinkel 10.1, 10.2
3/30 Denotational SemanticsFinkel 10.3
4/1 Denotational SemanticsFinkel 10.3, notes
4/3 Denotational SemanticsFinkel 10.3
4/6 Programs as dataFinkel 4.1, 9.1.8
4/8 Static vs. dynamic scopeFinkel 4.1.6-4.1.7
4/10 Exception handlingFinkel 2.1, Ullman 5.2, Arnold 7
4/13 CoroutinesFinkel 2.2
4/15 First-class continuationsCoroutine example
4/17 Concurrent ProgrammingFinkel 7.1,7.2, Arnold 9
4/20 Shared variablesFinkel 7.2, Arnold 9
4/22 Communicating Sequential ProcessesFinkel 7.5.1,
4/24 Concurrent MLReppy 3, CML sig
4/27 Concurrent MLReppy 3
4/29 Modularity in MLUllman 8
5/1 Modularity in JavaArnold 3, 4, 10
Reading period
5/19 Take-Home Final Exam Due

Readings

Advanced Programming Language Design, by Raphael Finkel, Addison Wesley, 1996.

Elements of ML Programming, 2nd edition, by Jeffrey D. Ullman, Prentice Hall, 1998.

Introduction to Combinators and Lambda-Calculus, by J. Roger Hindley and Jonathan P. Seldin, Cambridge, 1986.

Modern Compiler Implementation in ML, by Andrew W. Appel, Cambridge, 1998. The Java Programming Language, by Ken Arnold and James Gosling, Addison-Wesley, 1996.


Back to COS 441 front page | Assignments