Functional Programming

Graham Hutton, University of Nottingham

Overview

This part of the programming paradigms module focuses on teaching the basic principles of functional programming using Haskell. There are four timetabled lectures and one lab session each week. Which of these will be used for Haskell will be announced in class.

Examination

The exam for the module this year is a take-home exam that must be completed in a 24-hour period. Further details are available in the exam guide on moodle.

Coursework

The Haskell coursework for the module comprises a series of one-page exercise sheets and an extended programming exercise, and will be released on moodle at appropriate points.

Lectures

Textbook:

      Book 2e Cover

Lectures:

  1. Course overview
  2. Haskell demo
  3. Introduction
  4. First steps
  5. Types and classes
  6. Defining functions
  7. List comprehensions
  8. Recursive functions
  9. Exercises on recursion
  10. Higher-order functions
  11. How to think recursively
  12. Declaring types and classes
  13. The countdown problem
  14. Interactive programming
  15. Exercises on interaction
  16. Lazy evaluation
  17. Course wrapup

Additional material:


Resources