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.
impcore (1/14)
Introduction; imperative core; unit-testing; ASTs & environments
Read:
There are no separate lecture notes for this unit; you might want to check the massive page of all notes.
Homework (also in PDF) due on 1/21.
opsem (1/21-1/26)
Operational semantics; metatheory
Read: Ramsey, Chapter 2
Lecture notes are available in 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 2/6.
scheme (2/4-2/11)
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.
There are no separate lecture notes for this unit; you might want to check the massive page of all notes.
Homework (also in PDF) due on 2/18.
hofs (2/18-2/23)
Scheme II: first-class and higher-order functions, continuation passing, semantics
Read: Ramsey, Chapter 3.
There are no separate lecture notes for this unit; you might want to check the massive page of all notes.
Homework (also in PDF) due on 3/2.
ml (2/25-3/2)
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, 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 separate lecture notes for this unit; you might want to check the massive page of all notes.
Homework (also in PDF) due on 3/9.
typesys (3/4-3/25)
Type systems
Read: Ramsey, Chapter 6. Corrected page 283.
There are no separate lecture notes for this unit; you might want to check the massive page of all notes.
Homework (also in PDF) due on 4/1.
Midterm exam in class (3/11)
operational semantics, functional programming
ml-inf (3/30-4/1)
ML type inference
Read: Ramsey, Chapter 7
There are no separate lecture notes for this unit; you might want to check the massive page of all notes.
Homework (also in PDF) due on 4/10.
small (4/6-4/8)
Smalltalk: Object-Oriented programming
Read: Ramsey, Chapter 10. Introctory 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.
There are no separate lecture notes for this unit; you might want to check the massive page of all notes.
Homework (also in PDF) due on 4/19.
sml (4/13-4/22)
Standard ML Modules
Read:
There are no separate lecture notes for this unit; you might want to check the massive page of all notes.
Homework (also in PDF) due on 4/29.
retro (4/27)
Lambda Calculus
There are no separate lecture notes for this unit; you might want to check the massive page of all notes.
retro (4/29)
Retrospective
There are no separate lecture notes for this unit; you might want to check the massive page of all notes.
Final exam (5/4)
3:30 to 5:30. Anderson Hall 206.