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 (9/7)
Introduction; imperative core; unit-testing; ASTs and 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 9/14.
opsem (9/12-9/14)
Operational semantics; metatheory
Read: Ramsey, Chapter 1
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 9/21.
scheme (9/19-9/21)
Scheme: Recursive programming with lists
Read: Ramsey, Chapter 2, Sections 2.1 through 2.6 (plus syntax and semantics in Sections 2.11 and 2.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 9/28.
hofs (9/26-10/5)
Scheme II: first-class and higher-order functions, continuation passing, semantics
Read: Ramsey, Chapter 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 10/12.
ml (10/12-10/17)
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 10/23.
Midterm exam in class (10/26)
Operational Semantics, Functional Programming, ML
typesys (10/19-11/2)
Type systems
Read: Ramsey, Chapter 6.
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 11/12.
ml-inf (11/7-11/14)
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 11/21.
small (11/16-11/21)
Smalltalk: Object-oriented programming
Read: Ramsey, Chapter 11. Introductory sections: 11.1, 11.2. Key material for some parts of homework is in Sections 11.3 and 11.5. But you do not need to digest all of those sections. The remaining sections are there in case you find them useful. Section 11.4 contains an extended example, and section 11.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 12/4.
sml (11/28-12/5)
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 12/11.
lambda (12/7)
Lambda Calculus
Read:
There are no separate lecture notes for this unit; you might want to check the massive page of all notes.
retro (12/12)
Retrospective
There are no separate lecture notes for this unit; you might want to check the massive page of all notes.
Final exam (12/15)
8:30 AM to 10:30 AM. Braker 01.