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:
-
Browse the
Standard ML basis Library
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