Module 25344 (2013)
Syllabus page 2013/2014
06-25344
Functional Programming
Level 2/I
Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus
The Module Description is a strict subset of this Syllabus Page. (The University module description has not yet been checked against the School's.)
Relevant Links
Further information about this module,
including any last-minute changes,
corrections and alterations to the information
contained above, can be found on the
module web page
.
Outline
The purpose of this module is to present the basic ideas of functional programming, to demonstrate the main elements of good programming style and to illustrate some of its uses and applications.
Aims
The aims of this module are to:
- present the basic ideas of functional programming languages
- demonstrate the main elements of good programming style
- illustrate some of the uses and applications of functional programming
Learning Outcomes
| On successful completion of this module, the student should be able to: | Assessed by: | |
| 1 | demonstrate an understanding of the main features and advantages of a functional language | Examination, Continuous Assessment |
| 2 | write programs and implement algorithms in a functional style | Examination, Continuous Assessment |
| 3 | use functional programming techniques to solve problems | Examination, Continuous Assessment |
| 4 | use higher-order and list-manipulating functions | Examination, Continuous Assessment |
| 5 | use various data types appropriately in the solution of problems | Examination, Continuous Assessment |
Restrictions, Prerequisites and Corequisites
Restrictions:
None
Prerequisites:
None
Co-requisites:
None
Teaching
Teaching Methods:
Eleven two-hour weekly lectures plus eleven two-hour demonstrator-supervised laboratory sessions.
Contact Hours:
Assessment
- Sessional: 1.5 hr examination (50%), continuous assessment (50%). In order to pass the module, students have to both achieve 40% overall and at least 40% in the examination.
- Supplementary (where allowed): By examination only (100%).
Recommended Books
| Title | Author(s) | Publisher, Date |
| Introduction to Functional Programming using Haskell (second edition) | Richard Bird | Prentice Hall , 1998 |
| Haskell: The Craft of Functional Programming (second edition) | Simon Thompson | Addison Wesley Longman , 1999 |
| Programming in Haskell | Graham Hutton | Cambridge University Press , 2007 |
| Real World Haskell | Bryan O'Sullivan | O'Reilly , 2008 |
| The Haskell School of Expression | Paul Hudak | Cambridge University Press , 2000 |
| An Introduction to Functional Programming Systems Using Haskell | Antony J. T. Davie | Cambridge University Press , 1992 |
| Functional Programming with Haskell | Michael G. Hinchey and Steven A. Jarvis | McGraw-Hill , 1997 |
Detailed Syllabus
- Introduction: aims of the module; structure and organisation of the module; assessment; teaching methods; style of presentation; useful books.
- Functional language paradigm: uses; implementation; history; main features; advantages and disadvantages; languages (e.g., Lisp, ML, OCAML, Haskell);
- Fundamental ideas (higher-order functions, currying, uncurrying, function composition, recursion, local definitions); programming style; literate scripts; type systems.
- Numbers: basic operations, basic numerical types, numerical type classes.
- Lists: basic operations.
- Advanced features: e.g., modules; monads; interactive programs; lazy evaluation; proving properties possessed by programs.
Last updated: 22 August 2013
Source file: /internal/modules/COMSCI/2013/xml/25344.xml
Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus