SUBJECT: Functional Programming TIME: 40 hours (20 hours of lectures, 20 hours of practicals) AIM: To give the student an appreciation of functional programming in general, its theoretical background, and competence in the functional programming language ml. LEARNING OBJECTIVES: Upon completion of this subject, the student should: (1) Be able to program in ml (2) Be competent in list processing, recursive programming, using and defining higher order functions. (3) Have a knowledge of the Lambda Calculus CONTENT: (1) Introduction to functional programming and ml (2) Functions, Polymorphism, List Processings (3) Currying, and higher order functions (4) Recursion and iteration (5) Types, Exceptions, Imperatives (6) The Lambda Calculus