MSc Dissertation
Your MSc Dissertation is your chance to spend a full third of your study time working on a topic of interest to you, and producing something major as a result. You can design your own project, working with a member of staff to develop an idea. Perhaps you will develop an AI program, do some research in virtual reality, or build a new robot butler – the choice is yours.
With regular support from a supervisor, you’ll learn to create, undertake, evaluate and report on a significant individual project which you’ll be proud to show off to an employer or perhaps provide a stepping stone into further research.
Cutting Edge Concepts
This module enables review of cutting-edge and emerging concepts and methods across the spectrum of computer science. We will meet as a reading group to select, review and discuss academic publications of high quality, that take topics beyond the curriculum and into the current state of the art; students will learn how to read and review academic materials critically.
Compulsory•20 credits
Commercial Development Practice
CDP is a reach-out project of the School of Computer Science, where we work on real commercial software for real clients. With the support of academic and specialist staff, our software development teams provide commercial software development services to customers with bespoke software development needs.
This excellent opportunity gives you critical experience of working professionally with clients across the entire software project lifecycle from customer brief through to specifying, designing, developing and testing software using industry-standard technologies and techniques. Employers tell us they are actively looking for candidates with experience applying the project management methodologies, frameworks and tools that you will explore, use and hone during your time in CDP.
Graduates tell us that their experiences are highly sought after in industry, and you will certainly end up with lots to put on your CV and talk about in job interviews!
Compulsory•40 credits
Trustworthy Computing
Given how much we depend on networked digital technologies, cybersecurity is a threat that can impact us all at any time. In this module you will explore how simple mistakes can make a software system exploitable and insecure and demonstrate how these flaws can be fixed to make a system cybersecure.
C++ Programming and Design
Explore how to create efficient, robust, interactive graphics applications in C++ on modern CPUs. By linking with Real-time Graphics, you will gain the opportunity to development larger and more interesting applications, which will form the centre piece of any personal portfolio.
Real-Time Graphics
In this module you will gain practical experience of writing programmes that run on dedicated graphics hardware, that enables huge amounts of data to be processed at the same time in a highly parallelised architecture. You will write software from the ground up, setting up the pipeline, loading data into the buffers, writing shader code and making render calls that result in 3D environments that are commonplace in the modern games industry.
Object Oriented Design and Development Using C#
The aim of this module is to give the student a good grounding in the design and implementation of software using a modern, object-oriented programming language. On successful completion of this module, students will be able to demonstrate knowledge and understanding of object-oriented design and development in the C# programming language.
Component Based Software Engineering Practice
Modern large scale software development can be improved through utilising advanced approaches such as component based development. Reliable and secure software can be supported through managed programming environments. This module will be your chance to look deeper at these virtual machines beneath and see what makes it all work, and to develop solutions utilising component libraries.
Dependable Reactive Real-time Systems
Complex new technological systems including robotic and autonomous systems are employed in tasks that have high dependability requirements, i.e. require the system to be safe and perform its tasks uninterrupted by failures. Dependability, therefore, is a property that must be designed well. These systems are typically reactive, i.e. they respond to changes in the environment, and use concurrency and parallelism to achieve their tasks.
The module focuses on these specific aspects of dependable, reactive, and real-time design, and introduces students to the appropriate concepts and design methods. It focuses on design of single systems and goes further to discuss specific challenges encountered today in the design of cooperative and multi-robot systems, i.e. system teams and swarms that use collaborative and social intelligence to carry out tasks beyond the competency of a single system.
Robotic Systems and AI
This module highlights the computing and development issues faced when creating new robotic solutions and discusses new research ideas which can be used to build solutions for existing problems. You will apply Artificial Intelligence techniques to build useful behaviour in robotic systems.
Simulation and Concurrency
You will learn about physically based modelling (PBM) to create simulations that include a variety of physically based objects. You will also develop advanced practical skills and domain knowledge that will include networking and, concurrency. These skills and knowledge with further increase your professional job market.
Autonomous Robots
In this module you will explore advanced techniques building autonomous robots and understand the complexities and interactions between computation and design of such systems.
Advanced AI
Module will be available for 25/26
The advances made in computing technology and our understanding of intelligence through collaboration (collective or competitive) actions has led to a whole range of possibilities for Artificial Intelligence. Such techniques will be at the core of Autonomous (self-driving cars) and Digital Health.