# Schedule

Date | Topic | Reading (after lecture) | Homework | |
---|---|---|---|---|

Sep | 7 | Introduction [slides][html code] [lhs code] |
RWH (ch. 1-4) blog post |
Hw 1, due 9/17/11 at noon |

12* | Lists and First-Class Functions [html code] [lhs code] |
|||

14* | Higher-Order Programming Patterns [lec3 html] [lec3 lhs] [SecretCode (first take) html] [SecretCode (first take) lhs] [SecretCode (with decoding) lhs] [SecretCode (with decoding) lhs] |
|||

19* | HW1 Review and User-defined Datatypes [lec4 html] [lec4 lhs] |
|||

21* | Type Classes [lec5 html] [lec5 lhs] |
RWH ch. 6 | ||

26 | Intro to Monads [lec 6 html] [lec 6 lhs] |
RWH ch. 7 & 14 | Hw 2, due 10/3/11 at noon | |

28 | The State Monad [lec 7 html] [lec 7 lhs] [State.html] [State.lhs] |
|||

Oct | 3 | Arbitrary Monads & IO [lec 8 html (stubs)] [lec 8 lhs (stubs) ] [lec 8 html] [lec 8 lhs] |
RWH ch. 7 | |

5 | HW#2 discussion |
HW #3, due Friday, 10/14/11 at noon | ||

10 | Fall Break (no class) | |||

12 | Monadic parsing [html (stubs)] [lhs (stubs)] |
RWH ch. 10 & 16 | ||

17 | Guest lecture: Yaron Minsky, Jane Street | |||

19 | Monadic parsing (continued) [html] [lhs] |
HW #4, due Wednesday, 10/26/11 at noon | ||

24 | QuickCheck | RWH ch. 11 | ||

26 | QuickCheck (cont) [html] [lhs] [While.hs] |
HW #5, due Wednesday, 11/2/11 at noon | ||

31 |
Homework Discusson |
|||

Nov | 2 |
Monad Transformers [html (stubs)][ lhs (stubs)] [html (full)][ lhs (full)] |
RWH ch. 18 | HW #6 Due 11/14/11, at noon |

7 | Concurrency monad |
|||

9 | Concurrency monad (continued) [html] [lhs] |
|||

14 | Purely Functional Data Structures RBT [html] [lhs (stubs)] [lhs] BST [html] [lhs (stubs)] [lhs] |
HW #7 Due 11/21/11, at noon | ||

16 | Generalized Algebraic Datatypes Nonempty lists [hs] Red Black Trees I [hs] |
|||

21 | GADTs continued Red Black Trees II [hs] |
|||

23 | no classThanksgiving challenge: Use GADTs to rule-out ill-typed While programs |
|||

28 | Typed Abstract Syntax Untyped WHILE [hs] Typed WHILE [hs] |
|||

30 |
Type Reflection [types.hs] |
|||

Dec | 5 | Type-based reflection Version 1 [html][lhs] Version 2 [html][lhs] |
||

7 | Reflection continued, wrap up | Project instructions |

*indicates dates when Prof. Weirich is away.

## News :

Welcome to CIS 552!

See the home page for basic
information about the course, the schedule for the lecture notes
and assignments, the resources for links to the required software
and online references, and the syllabus for detailed information about
the course policies.