CPSC521:  FOUNDATIONS OF FUNCTIONAL PROGRAMMING

Lecturer: Robin Cockett

The purpose of the course is to explore various aspects of functional programming using Haskell.  In particular, the course provides an introduction to the lambda calculus, types in programming, and the role of these in the implementation of functional programming.

Why is functional programming important ....

COURSE OUTLINE:

There will be a midterm exam and a final exam.  The course will cover the following topics in roughly this order:

READING (recommended):

LECTURE NOTES (as they become available):

ASSIGNMENTS:
  1. [Due September 21] Getting going with Haskell (8%)  (previous years: 2006 assignment 1, 2003 assignment 1).
  2. [Due October 19] Searching (see some notes here)-  sudoku (14%)
  3. [Due November 16] A lambda calculus reducer (8%).
  4. [Due December]  Type inference for the lambda calculus (15%).
EXAMS:
  1. Midterm exam (20%) (2005 and answers) previous midterms (2002) and 2007 exercise sheet!
  2. Final exam (35%), previous finals (2002).
LAB. NOTES:

Please find the lab. notes here.
 

HASKELL  LINKS:

LAMBDA CALCULUS AND FUNCTIONAL PROGRAMMING LINKS:
MONAD LINKS

OTHER LINKS