COSC 4P41
Course Outline

Instructor: Michael Winter, Office J323, Office Hours: Mon 10:00am - noon & Thu 01:00pm-03:00pm, 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 Sep 07/11 [1] 1 - 3 Introduction to Functional Programming
2 Sep 14/18 [1] 4 - 5 Recursion and Data Types
3 Sep 21/25 [1] 6 - 7 Lists
4 Sep 28/Oct 02 [1]  9 - 10 Patterns of Computation and Functions as Values
5 Oct 05/16* [1] 12 - 13 Overloading, Type Classes and Type Checking
Oct 19/23 [1] 14 - 15 Algebraic Types
7 Oct 26/30 [1] 16 Abstract Data Types
8 Nov 02/06 [1] 17 Lazy Evaluation
9 Nov 09/13 [1] 18 Programming with Actions
10 Nov 16/20 [1] 8, 14.7 & 17.9 Reasoning about Programs
11 Nov 23/27 [1] 8, 14.7 & 17.9 Reasoning about Programs II
12 Nov 30/Dec 04 [2] 7 Language extensions, Review

* Oct 08-12 is Reading Week.

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, 2018