COSC 4P41
Course Outline

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

* Sep 30 is a non-instructional day (no classes).
** Oct 10-14 is Reading Week.
** Make-up day for Sep 30.

Texts

[1] (recommended) 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, 2022