Lecture Notes

Lecture Date Topic Reading
1 Jan 22 Introduction to semantics [txt]  
2 Jan 24 Operational semantics [txt]  
3 Jan 26 Inductive definitions [txt] W 3.1,3.2
4 Jan 29 IMP: a simple imperative language [txt] (Lecturer: Siggi Cherem) W 2.1
5 Jan 31 Large-step operational semantics [txt] (Lecturer: Siggi Cherem) W 2.2-2.5
6 Feb 1 Runtime errors and non-termination  
7 Feb 5 Intro to denotational semantics [txt] (Lecturer: Siggi Cherem) M 4.3.3  W 5.2
8 Feb 7 Fixed-point semantics of loops  
9 Feb 9 Partial and total correctness [txt]  W 6.1-6.3
10 Feb 12 Hoare logic [txt] W 6.4,6.5
11 Feb 14 Program correctness proofs [txt] W 6.6
12 Feb 16 Weakest preconditions, verification conditions W 7.2,7.4
13 Feb 19 Program specifications in Eiffel and JML [eiffel, jml]  
14 Feb 21 Static program verification using ESCJava [escjava, example]  
15 Feb 23 Program analysis via abstract interpretation [txt]  
16 Feb 26 Analysis of control constructs [txt]  
17 Feb 28 Verifying temporal safety properties  
18 Mar 2 Intro to the lambda calculus (Lecturer: Siggi Cherem) M 4.2
19 Mar 5 Call-by-name, call-by-value, lazy evaluation  
20 Mar 7 ML0: a simple functional language  
21 Mar 9 Evaluation order, lazy evaluation  
  Mar 12 Preliminary Examination  
22 Mar 14 Types in the lambda calculus  
23 Mar 16 Type checking M 6.2
Spring Break
24 Mar 26 Product and sum types [txt]   H 19.1-19.2
25 Mar 28 Type inference M 6.3
26 Mar 30 Parametric polymorphism [txt] H 20  M 6.4
27 Apr 2 Subtyping records and functions [txt] H 26.2
28 Apr 4 Pointers and references H 14
29 Apr 6 Call-by-reference, copy-in-copy-out parameters  
 30 Apr 9 Scoping, activation records, function closures M 7
 31 Apr 11 Unstructured control-flow and exceptions [txt]  H 11.1,13   M 8.1-8.2 
 32 Apr 13 Exceptions, continuations [txt]  H 12  M 8.3
 33 Apr 16 Continuation-passing style  
 34 Apr 18 Object-oriented programming M 10 H 27
 35 Apr 20 Dynamic method lookup M 10.2
 36 Apr 23 Logic programming: Prolog  M 15
37 Apr 25 Unification, backtracking  M 15
38 Apr 27 More Prolog concepts  M 15
 39 Apr 30 Concurrent programming concepts  
 40 May 2 Shared memory vs. message passing  
 41 May 4 Modules and data abstraction [txt] (Lecturer: Andrew Myers)  

Books abbreviations: M = Mitchell, W - Winskel, H - Harper.