# data[].attributes.body
Summary of aims: (~25 words) | Teaches students to adapt their software development practice to take account of the general criticality and the specific risks of the specific software they are developing.
NB this not a pure“safety critical systems” module

# data[].attributes.headline
CYBER 1: Fundamental Concepts of Cyber Security

# data[].attributes.subject
CYBER 1: Fundamental Concepts of Cyber Security

# data[].attributes.body
Summary of aims: (~25 words) | Understand the basic concepts of cyber security (confidentiality, integrity and availability), how these are modeled (importance of identity, trust, reputation), threat models (adversary capabilities and goals), and basic control mechanisms to enforce security policies (e.g. access control).

# data[].attributes.body
Summary of aims: (~25 words) | Understanding the fundamentals of network security and aspects of security in different networked systems (TCP/IP, 4/5G, IoT, SDN), main network attacks and defence mechanisms and components.

# data[].attributes.body
Summary of aims: (~25 words) | Introduce foundational concepts and results in modern cryptography and develop a firm understanding of fundamental symmetric and asymmetric cryptographic mechanisms, including various security models, and how to prove security.

# data[].attributes.headline
MALF or FACI (Teaching shared with MSc Cyber)

# data[].attributes.subject
MALF or FACI (Teaching shared with MSc Cyber)

# data[].attributes.body
Summary of aims: (~25 words) | Introduce the student to the main concepts of feedforward neural networks, from the simplest sum-and-threshold units through to application of networks to real problems. The student will learn about training paradigms for artificial neural networks. The aim is to equip the student to use artificial neural networks appropriately to solve a range of problems and to evaluate the results appropriately.

# data[].attributes.body
Summary of aims: (~25 words) | Dealing with big data and distributed data. Learning about the frameworks for dealing with big data. Hive/hadoop. (advancing these topics from data1 and data2, actually implementing a system). Drawing on SWE from other streams. Data management and data governance.

# data[].attributes.body
Summary of aims: (~25 words) | GLMs, mixture models, survival analysis,(and Bayesian variants thereof), datasets with mixed data types,

# data[].attributes.body
Summary of aims: (~25 words) | Focus on interaction with real-world problems. SVMs, trees and random forests, ensemble methods. Data management and data governance. Meta-analysis (learning from various datasets). Evaluation of confidence about results, how to convey to clients

# data[].attributes.body
Summary of aims: (~25 words) | Domain-specific languages, graphical and textual syntaxes for DSLs, model transformation, validation and code generation

# data[].attributes.body
Summary of aims: (~25 words) | - Web services/REST APIs- Messaging- Containers

# data[].attributes.headline
Adaptive and Autonomous Systems Engineering

# data[].attributes.subject
Adaptive and Autonomous Systems Engineering

# data[].attributes.body
Summary of aims: (~25 words) | Students will learn state-of-the art techniques, and gain skills required for the engineering of adaptive and autonomous systems ranging from autonomous software agents to autonomous mobile robots.

# data[].attributes.body
Summary of aims: (~25 words) | Social implications, ethics, responsible/inclusive design, linking HCI to industry context

# data[].attributes.body
Summary of aims: (~25 words) | Teach more about a range of evaluation methods, understanding pros/cons, and provide opportunities to practice these

# data[].attributes.body
Summary of aims: (~25 words) | Design of games for applied purposes, how games can be used in beneficial ways

# data[].attributes.body
Summary of aims: (~25 words) | Develop an understanding of key player experience concepts, methods of evaluation

# data[].attributes.body
Summary of aims: (~25 words) | Develop an understanding of game AI as applied in competitive and cooperative environments (i.e. game theory / reinforcement learning). This would bring students (relatively) up to date with current industry practice around RL application in (e.g.) financial trading, robotics, autonomous cars.

# data[].attributes.body
Summary of aims: (~25 words) | Introduce modern computer vision, the main applications and challenges, and learning-based (e.g. CNN) versus model-based (e.g. structure-from-motion) approaches.

# data[].attributes.headline
Evolutionary and Bio-inspired Agents and Algorithms

# data[].attributes.subject
Evolutionary and Bio-inspired Agents and Algorithms

# data[].attributes.body
Summary of aims: (~25 words) | Understand the principles underlying natural selection and apply them to function optimisation, and the evolution of behaviour in multi-agent systems.

# data[].attributes.body
Summary of aims: (~25 words) | Understand the central methods for discrete optimisation, and be able to apply them to realistic problems such as resource allocation, scheduling, routing, and packing.

# data[].attributes.headline
Introduction to Software Assurance [autumn term]

# data[].attributes.subject
Introduction to Software Assurance [autumn term]

# data[].attributes.body
Summary of aims: (~25 words) | An introduction to contemporary approaches in formal software specification and verification. Methods based on both theorem proving and model checking will be covered.

# data[].attributes.headline
Advanced Software Assurance [spring/sum]   

# data[].attributes.subject
Advanced Software Assurance [spring/sum]   

# data[].attributes.body
Summary of aims: (~25 words) | Prerequisite = Intro to sw assurance

# data[].attributes.body
Summary of aims: (~25 words) | Introducing both the promise and limitations of quantum computation.

# data[].attributes.headline
Advanced Algorithms: design and analysis [Theory according to ACM classification] cross over with Software stream?

# data[].attributes.subject
Advanced Algorithms: design and analysis [Theory according to ACM classification] cross over with Software stream?

# data[].attributes.body
Summary of aims: (~25 words) | Contents: Algorithm design techniques (backtracking, branch and bound, dynamic programming, etc); distributed/parallel/concurrent ; graph/network algorithms ; approximation algorithms ; probabilistic/metaheuristic algs ;  [need to have something that one person can teach]

# data[].attributes.body
Summary of aims: (~25 words) | This should be a kind of SOTE 2.0. We should be able to revisit more formally and more theoretically what students have seen in stage 1 (SOF1 & 2) and stage 2 (Engineering 1). At the end of this module, the student should be able to plan, conduct and evaluate testing on a wide variety of software systems.

# data[].attributes.headline
Advanced Functional Programming [Also Theory & Engineering]

# data[].attributes.subject
Advanced Functional Programming [Also Theory & Engineering]

# data[].attributes.body
Summary of aims: (~25 words) | See topics taught in FUNC; depends on what gets into SOF3

# data[].attributes.body
Summary of aims: (~25 words) | Apply Hoare/Dijkstra/Morgan theory to development of algorithms

# data[].attributes.headline
Logic programming & Constraint Programming (Also IS)

# data[].attributes.subject
Logic programming & Constraint Programming (Also IS)

# data[].attributes.body
Summary of aims: (~25 words) | Currently what is taught in CONS (new module started this year). Learn a new programming paradigm to complete the one seen in year 1 and 2 (namely, procedural, functional, object oriented).

# data[].attributes.body
Summary of aims: (~25 words) | Development of embedded systems, covering modelling, debugging, interfacing, and comms.

# data[].attributes.body
Summary of aims: (~25 words) | Real-time analysis, scheduling, timing, fault tolerance. The programming of such systems, and associated LSEPI.

# data[].attributes.headline
High-performance Parallel and Distributed Systems [HPDS]

# data[].attributes.subject
High-performance Parallel and Distributed Systems [HPDS]

# data[].attributes.body
Summary of aims: (~25 words) | HPC and related technologies, covering on and off node parallelism, accelerators, clouds.

# data[].attributes.body
Summary of aims: (~25 words) | Aspects of networking, pushing in to IoT, wireless networking etc.