Home | Calendar | Readings | Example Source Code | Assignments

Vital Stats

John Lasseter

lasseter@hws.edu

Class time—3:00 - 3:55 MWF

Lansing 301 Gulick 223

All readings are from Ramsey, unless otherwise indicated. The reading assignment associated with a particular day should be completed by the start of class that day, not afterwards. Your ability to participate effectively depends on this.

Often, a given day will have associated preparatory assignments. These are always announced in class, and they are archived on the Assignments page.

As appropriate to the needs of this learning community, we will alter details of this schedule to reflect a slower or faster pace. Check back here for regular updates.

Last Update: January 26, 2015

TOPICS READINGS NOTES
Week 1
(Jan. 21 - 24)
Introduction and overview 1
  • No class on Friday, 01/23
Week 2
(Jan. 25 - 31)
Core imperative constructs; Abstract syntax; Environments; Operational semantics; Proof techniques 2.1–2.4 , 2.6
Week 3
(Feb. 1 - 7)
Proof techniques; Interpretation; Introduction to C 2.4–2.6
A C reference of your choice
Week 4
(Feb. 8 - 14)
Interpretation; Scope; Parameter passing, evaluation order, and effects; Introduction to Scheme 2.5, 3.1–3.3, 3.11  
Week 5
(Feb. 15 - 21)
Functional programming techniques; μScheme semantics 3.4–3.8, 3.11–12
Backus (handed out in class: see Readings)
 
Week 6
(Feb. 22 - 28)
Interpretation of &mh;Scheme; Introduction to OCaml 3.14–3.15
Various OCaml tutorials (see Readings)
Week 7
(Mar. 1 - 7)
OCaml; Interpretation of μScheme 5.1–5.9
  • Exam #1 distributed on Friday, March 6
  • No class on Friday, March 6
Week 8
(Mar. 8 - 14)
Type Systems; Type soundness; Polymorphism 6.1, 6.3–6.5
  • Exam #1 due at the start of class on Monday, 03/09
Week 9
(Mar. 15 - 21)
Spring Break (no classes)
Week 10
(Mar. 22 - 28)
Types; Polymorphism; Type Checking 6.2, 6.6–6.7
Week 11
(Mar. 29 - Apr. 4)
Type inference 7.1–7.7
Schwartzbach (see Readings)
 
Week 12
(Apr. 5 - 11)
Prolog & logic programming 11.1–11.3, 11.5–11.7
Various Prolog tutorials (see Readings)
 
Week 13
(Apr. 12 - 18)
Implementation of Prolog: unification and backtracking 11.4
Week 14
(Apr. 19 - 25)
λ-calculus foundations Paulson, Foundations of Functional Programming
Gabriel, "The Why of Y" (see Readings)
  • Exam #2 due on Monday, April 20
Week 15
(Apr. 26 - May 2)
λ-calculus foundations
Week 15 ½
(May 4)
Wrap up
  • Final class day is Monday, May 4
Finals Week
Final Projects due by 7:00 p.m. on Tuesday, May 12