Formal Methods Foundation

Schedule

Only few of the electronic lecture notes are available here, most are on blackbroad. This schedule is tentative and subject to change at any time.

Date Topic Lectures Assignments
mar. 5 Introduction LEC: introduction

Prepare: TAPL chap 1, chap 2
software setup
mar. 12 Untyped Arithmetic Expressions LEC: arith

Prepare: TAPL chap. 3, chap. 4
Finish programming assignment 1: arith
mar. 19 Untyped lambda calculus LEC: lambda

Prepare: TAPL chap. 5, 6, 7
Finish programming assignment 2: lambda calculus
mar. 26 Simple Types LEC: Typed arithmetic expressions;
Simply typed lambda-calculus

Prepare: TAPL chap. 8, 9, 10
Finish programming assignment 3: types
apr. 2 Simple Extensions LEC: Extensions, references

Prepare: TAPL chap. 11, 13
Finish programming assignment 4: reference
apr. 9 Midterm test I    
apr. 16 Exception and Contintuation LEC: Exception and continuation

Prepare: TAPL chap. 14; Harper's book chap 28, 29, 30; and sample coroutine code
Finish programming assignment 5: exceptions
apr. 23 No Class    
apr. 30 Subtyping LEC: Subtyping

Prepare: TAPL chap. 15, 16, 17
Finish programming assignment 6: subtyping
may 7 No Class    
may 14 Recursive types LEC: recursive

Prepare: TAPL chap. 20
 
may 21 Type Inference LEC: Type inference

Prepare: TAPL chap. 22
Finish programming assignment 7: Type Inference
may 28 Midterm test II    
june 4 Universal types LEC: System F

Prepare: TAPL chap. 23
 
june 11 Existential types LEC: Existential types and ADT

Prepare: TAPL chap. 24
Finish programming assignment 8: System F
june 18 Type operators LEC: type operators

Prepare: TAPL chap. 28
Finish programming assignment 9: λω and doc
june 25 Higher-order systems LEC: Fω

Prepare: TAPL chap. 30
Finish programming assignment 10: Fω and doc
14:30-16:30, July 9 Final test Close book, close notes, no electronic devices