COMP 105 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.
intro (1/21-1/31)
Introduction; imperative core; ASTs, environments, and semantics
Read:
  • Ramsey and Kamin, chapters 1 and 2
  • Paul Graham, Beating the Averages

There are no lecture notes for this unit.
Homework (also in PDF) due on 1/31.
scheme (2/4-2/18)
Scheme: recursive programming with lists, programs as data, first-class functions, continuation passing
Read: Ramsey and Kamin, chapter 3.
You might want to check out the Schemers home page, which contains many resources.
There are no lecture notes for this unit.
Homework (also in PDF) due on 2/20.
ml (2/23-2/25)
Introduction to ML
Read:
  • Ullman, chapters 1, 2, 3, 5, and 6. You can skip Section 5.7
  • Ullman, section 4.2.5 (for option, not for input1)
  • The Supplement to Ullman
  • Ramsey and Kamin, Chapter 5
  • Browse the Standard ML Basis Library for SML'97. Some of this material is summarized in Ullman, Chapter 9.

Much of material in Ullman will be familiar from Scheme. New material includes static typing (2.2), from which flows a desire for tuples (2.4) and user-defined types (5). Also new are patterns (3.3) and exceptions(5.2).
There are no lecture notes for this unit.
Homework (also in PDF) due on 3/3.
typesys (2/28-3/4)
Type systems
Read: Ramsey and Kamin, Chapter 6
There are no lecture notes for this unit.
Homework (also in PDF) due on 3/17.
tyclass (3/7)
Haskell type classes
Lecture notes are available in PostScript, PDF, and HTML. There may also be hand-written slides used in class, or this link may be broken.
Midterm exam in class (3/9)
operational semantics, functional programming
Midterm exam in class (3/11)
more operational semantics, more functional programming
ml-inf (3/14-3/28)
ML type inference
Read: Ramsey and Kamin, Chapter 7
Lecture notes are available in PostScript, PDF, and HTML. There may also be hand-written slides used in class, or this link may be broken.
Homework (also in PDF) due on 4/3.
lambda (3/30-4/6)
Lambda calculus
Read:
There are no lecture notes for this unit.
Homework (also in PDF) due on 4/10.
sem (4/8-4/15)
Denotational semantics
Read: Definitional interpreters for denotational semantics
There are no lecture notes for this unit.
Homework (also in PDF) due on 4/17.
small (4/20-4/27)
Smalltalk: Object-Oriented programming
Read: Ramsey and Kamin, Chapter 9
There are no lecture notes for this unit.
Homework (also in PDF) due on 4/26.
sml (4/29-5/2)
Standard ML Modules
Read:
  • Ullman, chapter 8, except section 8.5.3
  • Tofte, Four Lectures on Standard ML. Don't worry too much about the ``decoration'' stuff in Section 3.
  • Ramsey, ML Module Mania (optional reading for cultural enrichment, i.e., what is all this good for)

There are no lecture notes for this unit.
Homework (also in PDF) due on 5/3.
Final exam (5/9)
12:00 Noon, Halligan 111A