Time and Location | Lectures: T 4:15pm-6:15pm, Room C415A Office Hour: TBD |
Personnel |
Instructor:
Prof. Liang Huang (huang @ cs.qc) Teaching Assistant: Dezhong Deng (ddeng @ gc.cuny) |
Prerequisites | 1. (required) fluent in at least two languages among C/C++, Java, and Python. 2. (preferred) an undergraduate course on compilers and basic familiarity with predicate logic. |
Textbook | Benjamin Pierce (2002). Types and Programming Languages (TAPL). MIT Press. |
Grading | Weekly Homework: 20%. Quiz: 7%. Midterm I: 20%. Quiz II: 10+5=15%. Final: 28%. Class Participation: 10%. |
T Sep 2 | Intro and Haskell: functions, list comprehensions, recursions, pattern-matching slides | HW1: Basic Haskell | |
T Sep 9 | discussions of HW1 Haskell: types and basic type classes, recursive datastructures slides (including HW1 solutions) | HW2: More Haskell | |
T Sep 16 |
Inductive Proofs and Operational Semantics (TAPL Ch 1 and Ch 3) slides (including HW2 solutions) | HW3: Inductive Proofs & Operational Semantics | |
Friday Schedule. No PL Class. | |||
T Sep 30 | Quiz (20 min). Intro to λ-calculus (TAPL Ch 5) | HW4: λ-calculus I | |
T Oct 7 | Continue on λ-calculus (TAPL Ch 5); same slides as above | HW5: λ-calculus II | |
T Oct 14 | More on λ-calculus (beyond TAPL): full beta-reduction,
call-by-name Y-combinator, lists, behaviorial equivalence,
inductive proofs about λ-calculus. slides | Review Questions I | |
T Oct 21 | Midterm I | HW6 | |
T Oct 28 | Simple Types; Simply Typed Lambda Calculus | HW7 Haskell typechecker for the pair language | |
T Nov 4 | Substitution Lemma; Typability | HW8 | |
T Nov 11 | Simple Extensions (unit, ascription, tuples, records, variants) | HW9 | |
T Nov 18 | References | HW10 | |
T Nov 25 | Quiz II (60 min) subtyping | HW11 | |
T Dec 2 | More on subtyping | ||
T Dec 9 | Featherweight Java | HW12 | |
T Dec 16 | Final Review | review questions |