COSC 4P41
Course Outline

Instructor: Michael Winter, Office J323, Office Hours: Mon & Fri, 10:00am - noon, email: mwinter@brocku.ca


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 Jan 04/08 [1] 1 - 3 Introduction to Functional Programming
2 Jan 11/15 [1] 4 - 5 Recursion and Data Types
3 Jan 18/22 [1] 6 - 7 Lists
4 Jan 25/29 [1]  9 - 10 Patterns of Computation and Functions as Values
5 Feb 01/05 [1] 12 - 13 Overloading, Type Classes and Type Checking
Feb 08/12 [1] 14 - 15 Algebraic Types
7 Feb 22/26* [1] 16 Abstract Data Types
8 Feb 29/Mar 04 [1] 17 Lazy Evaluation
9 Mar 07/11 [1] 18 Programming with Actions
10 Mar 14/18 [1] 8, 14.7 & 17.9 Reasoning about Programs
11 Mar 21/28** [1] 8, 14.7 & 17.9 Reasoning about Programs II
12 Apr 01/04 [2] 7 Language extensions, Review

* Feb 15-19 is Reading Week.
** Mar 25 is Good Friday. Make-up on Apr 04.

Texts

[1] (required) Haskell, The Craft of Functional Programming,  3rd edition, S. Thompson, Addison - Wesley (2011), ISBN 0-201-88295-7
[2] (recommended) The Haskell 2010 Report, Simon Marlow, online.
[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, 2015