15-312 Foundations of Programming Languages
Schedule

  • Lectures are Tuesday and Thursday, 1:30-2:50, Wean Hall 5403.
  • Recitations are
    • Section A, Wed 8:30-9:20, BH 255A
    • Section B, Wed 1:30-2:20, PH 226A
  • The course notes provide additional reading material.
    They complement, but do not replace the lecture.
  • The schedule is subject to change throughout the semester.
Date Lecture or Recitation    Reading    Code    Assignment Due

Tue Aug 27 Overview slides code  
Wed Aug 28 Context-Free Grammars Part II, Ch. 3    
Thu Aug 29 Inductive Definitions Part I, Ch. 1; Part II, Ch. 3-4; notes    

Tue Sep 3 Abstract Syntax Part II, Ch. 4-5; notes    
Wed Sep 4 Inductive Proofs      
Thu Sep 5 Static and Dynamic Semantics Part II, Ch. 5.3-5.4, 6-7; notes   Assignment 1

Tue Sep 10 A Functional Language Part III, Ch. 8; notes    
Wed Sep 11 De Bruijn Representation      
Thu Sep 12 Type Safety Part III, Ch. 9.1-9.2; notes    

Tue Sep 17 Aggregate Data Structures Part III, Ch. 9.3; notes    
Wed Sep 18 Runtime Errors      
Thu Sep 19 An Abstract Machine Part V, Ch. 11.1; notes   Assignment 2

Tue Sep 24 Exceptions Part V, Ch. 13; notes code  
Wed Sep 25 Escaping Exceptions   examples  
Thu Sep 26 Continuations Part V, Ch. 12; notes code Assignment 3

Tue Oct 1 Parametric Polymorphism Part VIII, Ch. 20; notes    
Wed Oct 2 The Curry-Howard Isomorphism      
Thu Oct 3 Data Abstraction Part VIII, Ch. 21; notes code  

Tue Oct 8 Recursive Types Part VIII, Ch. 19.3; notes code  
Wed Oct 9 Recursive Types   code  
Thu Oct 10 Mutable Storage Part VI, Ch. 14; notes code Assignment 4

Tue Oct 15 Monads Part VI, Ch. 15; notes code  
Wed Oct 16 Review      
Thu Oct 17 Midterm Exam (in class) sample solution    

Tue Oct 22 Subtyping Part XI, Ch. 26; notes    
Wed Oct 23 Subtyping and Intersection Types      
Thu Oct 24 Bidirectional Typing notes   Assignment 5

Tue Oct 29 Records Pierce, Ch. 15; notes code  
Wed Oct 30 Monads and Objects      
Thu Oct 31 Objects Pierce, Ch. 18; notes pseudo-code  

Tue Nov 5 Dynamic Typing Part X, Ch. 24; notes code  
Wed Nov 6 Polymorphism in Java      
Thu Nov 7 Futures notes code Assignment 6

Tue Nov 12 Program Equivalence notes    
Wed Nov 13 Parallelism with Futures      
Thu Nov 14 Concurrent Processes notes   Assignment 7

Tue Nov 19 The Pi-Calculus notes    
Wed Nov 20 Data in the Pi-Calculus      
Thu Nov 21 Concurrent ML notes code  

Tue Nov 26 No Lecture (Project Day)      
Wed Nov 27 No Classes (Thanksgiving Holiday)      
Thu Nov 28 No Classes (Thanksgiving Holiday)      

Tue Dec 3 Environments Part V, Ch. 11.2; notes    
Wed Dec 4 Review      
Thu Dec 5 Storage Management Part XIV, Ch. 31; notes   Assignment 8

Tue Dec 17 Final Exam, 1:00-4:00, WeH 5403 sample solution      

[ Home | Schedule | Assignments | Software | Resources ]

fp@cs
Frank Pfenning