Comparative Programming (G6021)
15 credits, Level 6
This module introduces you to the basic techniques of declarative and functional programming, using languages such as Prolog and Haskel as a practical basis. You will consider the suitability of these paradigms - and those already learnt on the course - in addressing various problems; in AI, data processing, mathematical reasoning, etc. You will consider issues including data representation, algorithm design, efficiency, clarity and tool support in comparisons between the declarative, functional and imperative paradigms. This module introduces you to the basic techniques of functional programming, using a language such as Haskell as a practical basis. Additional paradigms, such as declarative programming, are briefly introduced. The process of learning a new language and paradigm will allow you to explore the process of choosing a language based on its fit to issues and of the learning of languages. Alongside the particular issues in Haskell, we will discuss more general issues in programming languages through illustrations of various languages including Java, C, assembler, Haskell, PHP and SQL.
Teaching and assessment
We’re currently reviewing teaching and assessment of our modules in light of the COVID-19 situation. We’ll publish the latest information as soon as possible.
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.
This module is running in the academic year 2020/21. We also plan to offer it in future academic years. It may become unavailable due to staff availability, student demand or updates to our curriculum. We’ll make sure to let our applicants know of such changes to modules at the earliest opportunity.
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
- Computing for Digital Media (with an industrial placement year) BSc
- Computing for Digital Media BSc
- Games and Multimedia Environments (with an industrial placement year) BSc
- Games and Multimedia Environments BSc