Individual engineering systems are increasingly a component with a system of systems, where individual systems interact to provide the overall functionality, e.g. in the control and operation of national infrastructure. At the heart of many systems there are complex algorithms processing sensor and operational data to deliver the required outcomes, e.g. to manage the supply and frequency stability of electricity supply.
This module develops the central concepts and skills required to design, implement and analyse algorithms for solving engineering problems and the security issues that can arise from poor implementations. It also examines how algorithms are used to identify and analyse anomalous network or communications behaviour that may be an indicator of a security compromise or cyber attack.
Algorithms are essential in all advanced areas of technical cyber security and related subjects, including artificial intelligence, databases, data science, distributed computing, graphics, networking, operating systems, programming languages and security. An important part of using them well is the ability to select algorithms appropriate to particular purposes and to apply them, recognising the possibility that no suitable algorithm may exist. This facility relies on understanding the range of algorithms that address an important set of well- defined problems, recognising their strengths and weaknesses, and their suitability in particular contexts in combination with complementary data structures. Efficiency is a pervasive theme and a clear understanding of algorithmic complexity is essential if efficient algorithms are to be designed and used.