CS 45600 Syllabus

Note: This syllabus is subject to change without notice at any time. Expect it to change approximately weekly throughout the semester. Scheduling is by ``units,'' not weeks. Units and weeks may not correspond exactly. Check the dates carefully. If you want to see something organized more by date, look at the schedule.
impcore (1/13-1/17)
Introduction; imperative core; ASTs & environments
Read: Ramsey, chapters 1 and 2
opsem (1/20-1/24)
Operational semantics; metatheory
Read: Ramsey, chapter 2.
scheme (1/27-1/31)
Scheme: recursive programming with lists
Read: Ramsey, Chapter 3, Sections 3.1 through 3.6 (plus syntax and semantics in Sections 3.11 and 3.13).
You might want to check out the Schemers home page, which contains many resources.
hofs (2/3-2/14)
Scheme II: first-class and higher-order functions, continuation passing
Read: Ramsey, chapter 3.
ml (2/17-2/21)
Introduction to ML
Read: Much of the material will be familiar from Scheme. New material includes static typing, from which flows a desire for tuples, and user-defined types. Also new are patterns and exceptions.
typesys (2/24-3/14)
Type systems
Read: Ramsey, Chapter 6
Spring Break (3/17-21)
ml-inf (3/24-4/4)
ML type inference
Read: Ramsey, Chapter 7
lambda (4/7-4/11)
Lambda calculus
Read:
small (4/14-4/18)
Smalltalk: Object-Oriented programming
Read: Ramsey, Chapter 10. Introductory sections: 10.1, 10.2. Key material for some parts of homework is in Sections 10.3 and 10.5. But you do not need to digest all of those sections. The remaining sections are there in case you find them useful. Section 10.4 contains an extended example, and section 10.6 answers all detailed questions about the semantics of the language.
sml (4/21-4/25)
Standard ML Modules
Read:
retro (4/28)
Retrospective