Module Additional Assessment Details
50% 2 hour exam (learning outcomes 1 and 4)
50% practical assignment (learning outcomes 2 and 3)
Module Indicative Content
Comparison of imperative, logic and functional languages, especially with respect to types, classes, generics , lists, pattern matching and recursion. Queries, facts, rules in a logic language. Fundamental functional programming language paradigm characteristics: referential transparency, higher-order functions, functional composition. Modern functional programming language characteristics: Curried functions, lazy evaluation, polymorphism, algebraic types, list comprehension, mohads and input/output.
Module Learning Strategies
Use of examples to introduce salient concepts. Exercises used to re-enforce concepts and their application.
2 lectures and 1 practical per week.
The normal delivery pattern will be (1:n)2 (1:20)1.
However, for other non-traditional delivery such as the Fast-track MEng which will be delivered over the summer, the pattern will be (1:n)4 (1:20)2 for a 6 week period. This is exactly the same number of hours, although the timescale for delivery is reduced.
Module Resources
Prolog Environment
JDK (Java Development Environment)
Hugs 98 Environment
Module Special Admissions Requirements
Prior study of either CE00314-2 Further Programming in C++ or CE00527-2 Further Object Oriented and Event Driven Programming or equivalent.
Module Texts
Thompson S., Haskell: The Craft of Functional Programming, Addison-Wesley, 2nd edition, 1999, ISBN: 0201342758
Watt D.A, Programming Language Design Concepts, Wiley, 2004, ISBN: 0470853204
Clocksin and Mellish, Programming in Prolog, 5th Edition, Spring, 2003, ISBN: 3540006788