Home Admissions Students Careers Research Business People Help
Text size A A A A A

| STUDENTS > Functional Programming |

Functional Programming

Note: Whilst every effort is made to keep the syllabus and assessment records correct for this course, the precise details must be checked with the lecturer(s).


Code: 3011 (Also taught as: GC16)
Year:3
Prerequisites:Successful completion of 1st and 2nd year core Computer Science courses
Term: 2
Taught By: Chris Clack (100%)
Aims:This course introduces the functional programming paradigm and the implementation technology for functional programming languages. It aims to develop a broad understanding of the benefits of the functional programming style, together with an understanding of implementation issues that are relevant not only to functional languages but also to other systems that require automatic dynamic memory management.
Learning Outcomes:To be able to: understand the basics of the lambda calculus and combinators and how they are used in the implementation of functional languages; understand the main features of a modern lazy functional language; write non-trivial functional programs; understand the computation, synchronisation and memory management issues affecting the sequential and parallel implementation of lazy functional languages; read and understand the research and technical literature on functional programming.

Content:

ContextClassification of Programming Languages
Distinctive Features of Functional Programming Languages
The Lambda Calculus and CombinatorsVersions of the Lambda Calculus - syntax and semantics
Reduction orders, strong normalisation
Combinators - computationally complete sets
A Modern Functional LanguageProgramming Environment
Types
Recursion
Pattern-Matching
Lists
Higher-Order Functions
User-Defined Types
Recursive Programming Techniques
Introduction to Implementation TechniquesStrict Evaluation and the SECD Machine
Lazy Evaluation and Graph Reduction
The Need for Automatic Memory Management
Parallel Graph Reduction
Automatic Memory ManagementMemory Allocation and Garbage Collection
Memory Allocation Techniques
Garbage Collection Techniques

Method of Instruction:

Lecture presentations with associated class problems.

Assessment:

The course has the following assessment components:

  • Written Examination (2.5 hours, 90%)
  • Coursework Section (1 piece, 10%)
To pass this course, students must:
  • Obtain an overall pass mark of 40% for all sections combined
The examination rubric is:
Answer any 3 questions out of 5. All questions carry equal marks.

Resources:

Programming with Miranda, Clack, Myers and Poon, Prentice-Hall 1994 ISBN 0-13-192592-X.

The Implementation of Functional Programming Languages, Peyton-Jones, Prentice-Hall 1986

Garbage Collection: Algorithms for Automatic Dynamic Memory Management, Jones and Lins, Wiley 1996 ISBN 0 471 94148 4

Research Directions in Parallel Functional Programming, Hammond and Michaelson (Eds.), Springer, ISBN 1-85233-092-9, 1999

Web resources

This page last modified: 26 May, 2010 by Nicola Alexander

Computer Science Department - University College London - Gower Street - London - WC1E 6BT - Telephone: +44 (0)20 7679 7214 - Copyright © 1999-2007 UCL


Search by Google
Link to UCL home page