COSC 4P41
Course Outline

Instructor: Michael Winter, Office J323, Office Hours: Tue & Wed, 10:00am - noon, email: [email protected]


Calendar description

Introduction to functional programming using the languages Haskell. Topics include all data types, type inference, pattern-matching, recursion, polymorphism, higher-order functions, lazy vs eager evaluation, modules and monads.

Course Outline

Week
Date
Book / Chapter
Topics
1 Sep 14/16 [1] 1 - 3
Introduction to Functional Programming
2 Sep 21/23 [1] 4 - 5
Recursion and Data Types
3 Sep 28/30 [1] 6 - 7
Lists
4 Oct 05/07 [1]  9 - 10
Patterns of Computation and Functions as Values
5 Oct 14/19* [1] 12 - 13
Overloading, Type Classes and Type Checking
Oct 21/26 [1] 14 - 15
Algebraic Types
7 Oct 28/Nov 02 [1] 16
Abstract Data Types
8 Nov 04/09 [1] 17
Lazy Evaluation
9 Nov 11/16 [1] 18
Programming with Actions
10 Nov 18/23 [1] 8, 14.7 & 17.9
Reasoning about Programs
11 Nov 25/30 [1] 8, 14.7 & 17.9 Reasoning about Programs II
12 Dec 02/03 [2] 7
Hugs - Language extensions, Review

* October 12 is Thanksgiving, no classes. Make up on December 03.

Texts

[1] (required) Haskell, The Craft of Functional Programming,  2nd edition, S. Thompson, Addison - Wesley (1999), ISBN 0-201-34275-8
[2] (recommended) The Hugs 98 User Manual, Mark P Jones, Alastair Reid, online documentation.
[3] (recommended) Real World Haskell, Bryan O'Sullivan, John Goerzen, Don Steward, O'Reilly (2009), ISBN 978-0-596-51498-3
[4] (recommended) The Haskell School of Expression, P. Hudak, Cambridge University Press (2000), ISBN 0-521-64408-9

Links


COSC Home Page
COSC 4P41 Home Page
© M. Winter, 2009