- Student Records
Programme & Unit Catalogues

Department of Computer Science, Unit Catalogue 2007/08


CM20167 Programming III: functional programming

Credits: 6
Level: Intermediate
Semester: 1
Assessment: CW 25%, EX 75%
Requisites:
Before taking this unit you must (take CM10134 and take CM10135) or take CM10140
(or equivalent approved by Director of Studies). Aims: To illustrate how the logical and semantic foundations of programming languages are translated into usable programming languages. To give students practical experience of using a functional programming language.
Learning Outcomes:
1) To recognise the connections between mathematical logic and the development of programming languages;
2) To use the notion of reduction in the lambda calculus;
3) To be able to explain how the lambda calculus provides a foundation for the functional family of programming languages;
4) To be able to demonstrate practical competence with the Lisp family of languages, typed functional languages and lazy functional languages;
5) To be able to explain the key features of such languages.
Skills:
IT (T, A), Application of Number - inference (T, A).
Content:
From lambda calculus to Lisp and functional programming. The Church-Rosser theorem and applicative versus normal order evaluation. Typed lambda calculus and type inference. Combinatory logic. Lazy functional languages. Programming in a functional style. Other calculi.