Comparative Programming (G6021)
15 credits, Level 6
Autumn teaching
On this module you’ll learn the basic techniques of declarative and functional programming, using languages such as Prolog and Haskell.
You’ll consider the suitability of these paradigms in addressing various problems in AI, data processing, and mathematical reasoning.
You’ll look at issues including:
- data representation
- algorithm design
- efficiency
- clarity and tool support when comparing declarative, functional and imperative paradigms.
Learning new languages and styles will help you see how to choose the right language for a task. While studying Haskell, we’ll also look at wider ideas in programming languages, using examples from Java, C, assembler, Haskell, PHP, and SQL.
Teaching
67%: Lecture
33%: Practical (Laboratory)
Assessment
100%: Examination (Unseen examination)
Contact hours and workload
This module is approximately 150 hours of work. This breaks down into about 33 hours of contact time and about 117 hours of independent study. The University may make minor variations to the contact hours for operational reasons, including timetabling requirements.
We regularly review our modules to incorporate student feedback, staff expertise, as well as the latest research and teaching methodology. We鈥檙e planning to run these modules in the academic year 2026/27. However, there may be changes to these modules in response to feedback, staff availability, student demand or updates to our curriculum.
We鈥檒l make sure to let you know of any material changes to modules at the earliest opportunity.
Courses
This module is offered on the following courses:
- Computer Science (with an industrial placement year) BSc
- Computer Science (with an industrial placement year) MComp
- Computer Science BSc
- Computer Science MComp
- Data Science (with an industrial placement year) BSc
- Data Science BSc
- Finance and Technology (FinTech) (with a professional placement year) BSc
- Finance and Technology (FinTech) BSc
- Software Engineering BSc