Course Schedule (Tentative)

Date Topic Material
April 14 Lecture: This Course and Scheme in a Nutshell  
April 15 Lab: Writing interpreter in Scheme  
April 21 Lecture: Functions Closures for Java
Understanding the closures debate
April 28 Lecture: Introduction to Haskell A gentle introduction to Haskell
Tour of the Haskell syntax
Haskell tutorial
Real World Haskell
Why Haskell matters?
April 29 Lab: First-class functions, Haskell  
May 5 Lecture: Lazy Evaluation Efficient compilation of lazy evaluation
HsDebug: debugging lazy programs by not being lazy
May 6 Lab: Laziness, infinite data structures Hoogle
The GHC Commentary
ICode optimizations for lazy evaluation
[Other paper's related to GHC]
May 12 Lecture: Monads Understanding Monads
All about Monads
Advanced Monads
May 13 Lab: Monads  
May 19 Lecture: Recursion  
May 20 Lab: Recursion, IO Monad  
May 26 Lecture: State  
May 27 Lab: State, Functional Reactive Programming  
June 3 Lecture: Continuations  
June 9 Lecture: Continuations. Lambda Calculus  
June 10 Lab: Continuations  
June 16 Lecture:Type systems  
June 17 Lab:Type systems  
June 24 Lecture:Type inference  
June 30 Lecture:Object-oriented languages  
July 1 Lab:Interpreters of OO languages  
July 7 Lecture:Logic programming, Prolog I  
July 8 Lab:Prolog  
July 14 Lecture:Prolog II  
July 15 Questions, Discussion