cs-4400-sp26

Schedule

This schedule is a living document and subject to change: please check back often.

# Day Date Module Title Code Assignment due
1 Fri Jan 9 Intro Welcome!    
2 Tue Jan 13 Intro Calculator language calclang.rkt
plait-demo.rkt
hw1 (Jan 15)
3 Fri Jan 16 Lambda calculus Conditionals, variables, and scope (IfLang and LetLang) iflang.rkt
letlang.rkt
 
4 Tue Jan 20 Lambda calculus Let Language II letlang.rkt hw2 (Jan 22)
5 Fri Jan 23 Lambda calculus Lambda Calculus I lambda.rkt  
6 Tue Jan 27 Lambda calculus Lambda Calculus II   hw3 (Jan 29)
7 Fri Jan 30 Types Formalism (PL on paper)    
8 Tue Feb 3 Types Type Safety and Simply-typed Lambda Calculus    
9 Fri Feb 6 Types Product and Sum Types    
10 Tue Feb 10 Types Recursive definitions   hw4 (Feb 12)
11 Fri Feb 13 Types Polymorphism    
12 Tue Feb 17 Types Types as Propositions    
13 Fri Feb 20 Types Bidirectional typing    
14 Tue Feb 24   Review   hw5 (Feb 26)
15 Fri Feb 27   Midterm exam    
16 Tue Mar 3   (No class: Spring Break)    
17 Fri Mar 6   (No class: Spring Break)    
18 Tue Mar 10   Guest lecture (TBD)    
19 Fri Mar 13 Control Abstract machines    
20 Tue Mar 17 Control Exceptions    
21 Fri Mar 20 Control First-class continuations    
22 Tue Mar 24 Effects Imperative programming   hw6 (Mar 23)
23 Fri Mar 27 Effects Monads    
24 Tue Mar 31 Proofs Programming with dependent types    
25 Fri Apr 3 Proofs Encoding languages with dependent types    
26 Tue Apr 7 Proofs Mechanizing metatheory I    
27 Fri Apr 10 Proofs Mechanizing metatheory II    
28 Tue Apr 14 Proofs Types as Propositions II: Dependent Types   miniproject (Apr 16)
29 Fri Apr 17   Conclusion    
  Mon Apr 20   Final exam period   miniproject presentation
  Tue 28   Faculty grade deadline 2pm    

home