Students select one 30-credit specialist option from the following modules:
Functional Programming
This module introduces the principles and techniques of functional programming and how they are applied in modern software development. Students explore concepts such as higher-order functions, immutability, referential transparency, recursion, function composition, types, pattern matching, list processing and formal reasoning. Practical work develops the ability to solve programming problems using a functional approach.
OR
Advanced Web Development
This module develops advanced full-stack web development skills across front-end technologies, server-side development and data persistence. Students examine secure web application design, common browser-based attacks and defensive coding, alongside user-interface design, usability, user experience and evaluation. The module also considers web services and the integration of data from remote sources.
OR
Privacy and Data Protection
This module examines privacy and data protection from legal, social, professional and technological perspectives. Students consider the growth of personal and sensitive data, privacy threats, surveillance, data-protection frameworks, privacy-enhancing technologies and the responsibilities of computing professionals. Global and cross-cultural perspectives are considered throughout.
OR
Fuzzy Logic and Inference Systems
This module introduces fuzzy logic as a method for modelling uncertainty, vagueness and imprecision. Students study fuzzy sets, fuzzy inference systems, knowledge representation and different forms of fuzzy logic, and apply these ideas to the creation of a functioning inference system. The module also considers applications of fuzzy systems across different domains and the ethical implications of modelling subjective human concepts.