Department of Computer Science,
Faculty of Engineering
This course is designed for students with a numerate background (for example a first degree in mathematics, economics, engineering, physics or chemistry) as well as graduates already working in industry.
The course focuses on managing vast amounts of information and transforming it into actionable knowledge. It teaches the key skills that are required to carry out practical analysis of the types of data sets that need to be interpreted in the modern world. These include large data sets as well as structured and unstructured data. The course makes use of techniques developed within a range of disciplines, including computer science, artificial intelligence, mathematics and statistics.
- Scalable Machine Learning
This module will focus on technologies and algorithms that can be applied to data at a very large scale (e.g. population level). From a theoretical perspective it will focus on parallelisation of algorithms and algorithmic approaches such as stochastic gradient descent. There will also be a significant practical element to the module that will focus on approaches to deploying scalable ML in practice such as SPARK, programming languages such as Python/Scala and deployment on high performance computing platforms/clusters.15 credits
- Text Processing
This module introduces fundamental concepts and ideas in natural language text processing, covers techniques for handling text corpora, and examines representative systems that require the automated processing of large volumes of text. The module focusses on modern quantitative techniques for text analysis and explores important models for representing and acquiring information from texts. You should be aware that there are limited places available on this course15 credits
- Machine Learning and Adaptive Intelligence
The module is about core technologies underpinning modern artificial intelligence. The module will introduce statistical machine learning and probabilistic modelling and their application to describing real-world phenomena. The module will give you a grounding in modern state-of-the-art algorithms that allow modern computer systems to learn from data.15 credits
- Natural Language Processing
This module provides an introduction to the field of computer processing of written natural language, known as Natural Language Processing (NLP). We will cover standard theories, models and algorithms, discuss competing solutions to problems, describe example systems and applications, and highlight areas of open research.15 credits
You should be aware that there are limited places available on this module. The maximum number of students allowed on the module is 160.
- Professional Issues
This module aims to promote an awareness of the wider social, legal and ethical issues of computing. It describes the relationship between technological change, society and the law, emphasising the powerful role that computers and computer professionals play in a technological society. It also introduces the legal areas which are specific and relevant to the discipline of computing (e.g., intellectual property, liability for defective software, computer misuse, etc) and aims to provide an understanding of ethical concepts that are important to computer professionals, and experience of considering ethical dilemmas.15 credits
- Team Project
The Team Project provides the opportunity for you to engage in industry-inspired research work. It is undertaken in groups. Projects are suggested by industrial problems and supervised by Department of Computer Science staff or industry experts. You will form groups and together choose a project which interests you, then refine the scope of the research by conducting a thorough analysis of the topic area and formulating a solution, with the help of your supervisor; the project is developed under strong supervision. Your group will present your project overview within the first few weeks of the semester and submit a report on the work at the end of semester.15 credits
- Statistical Data Science in R
This module starts with some basic R, introduces further aspects of the R language, demonstrates how to use and write functions in R, introduces some programming tools and shows how R can be used to implement some Monte Carlo techniques. Alongside the programming aspects the module also illustrates basic exploratory data analysis in R and introduces the grammar of graphics employed in the ggplot2 graphics system. The R web application Shiny is also illustrated.15 credits
- Data Analytics Dissertation Project
For your individual project, you can choose from a wide range of possibilities in many different environments both within and outside the University. The project is completed during the summer, and you will have a personal academic supervisor to guide you during this period. The individual project is examined by a dissertation based on the project work and an oral examination.60 credits
- Modelling and Simulation of Natural Systems
This module will provide a practical introduction to techniques used for modelling and simulating dynamic natural systems. Many natural systems can be modelled appropriately using differential equations, or individual based methods. In this module, you will explore and understand both modelling approaches. You will gain knowledge of the assumptions underlying these models, their limitations, and how they are derived. You will learn how to simulate and explore the dynamics of computational models, using a variety of examples mostly drawn from natural systems. You should be aware that there are limited places available on this course.15 credits
- Computer Security and Forensics
This module provides, in general, an introduction into computer security and forensics. In particular, this module focuses on approaches and techniques for building secure systems and for the secure operation of systems.15 credits
The module complements the mathematics module MAS345 and requires a solid understanding of mathematical concepts (e.g., modulo-arithmetic, complex numbers, group theory) and logic (set theory, predicate logic, natural deduction) as, e.g., taught in the modules COM365, COM1001, and COM2003). Moreover, the module requires a solid understanding of a programming language (e.g., Java, Ruby, or C), basic software engineering knowledge and an understanding of database and Web systems, as, e.g., taught in the modules COM1003, COM1008, COM1009, COM2001, COM6471, and COM6102).
Students should be aware that there are limited places available on this course.
- Network Performance Analysis
This module considers the performance of computer networks from a statistical aspect, using queuing theory. It is shown that the performance of a computer network depends heavily on the traffic flow in the network, and different models of traffic and queues are used. These include single-server queues, multiple server queues, and the concept of blocking is discussed. Although the analysis is entirely statistical, all the relevant background is provided in the lectures, such that the course is entirely self-contained. Problem sheets are provided in order to assist you with the course material. You should be aware that there are limited places available on this module.15 credits
- Web Technologies
- Parallel Computing with Graphical Processing Units (GPUs)
Accelerator architectures are discrete processing units which supplement a base processor with the objective of providing advanced performance at lower energy cost. Performance is gained by a design which favours a high number of parallel compute cores at the expense of imposing significant software challenges. This module looks at accelerated computing from multi-core central processing units (CPUs) to graphics processing unit (GPU) accelerators with many TFlops of theoretical performance. The module will give insight into how to write high performance code with specific emphasis on GPU programming with NVIDIA CUDA GPUs. A key aspect of the module will be understanding what the implications of program code are on the underlying hardware so that it can be optimised. You should be aware that there are limited places available on this course.15 credits
The content of our courses is reviewed annually to make sure it's up-to-date and relevant. Individual modules are occasionally updated or withdrawn. This is in response to discoveries through our world-leading research; funding changes; professional accreditation requirements; student or employer feedback; outcomes of reviews; and variations in staff or student numbers. In the event of any change we'll consult and inform students in good time and take reasonable steps to minimise disruption. We are no longer offering unrestricted module choice. If your course included unrestricted modules, your department will provide a list of modules from their own and other subject areas that you can choose from.
We use lectures, tutorials and group work.
Assessment is by formal examinations, coursework assignments and a dissertation.
1 year full-time
Within 3 months of starting the course I secured a graduate placement as a Technology Analyst at Barclays for after my masters, which I would not have got if I had not studied this course!
Minimum 2:1 honours degree in a numerate discipline (computer science, mathematics, economics, engineering, physics, chemistry).
Overall IELTS score of 6.5 with a minimum of 6.0 in each component, or equivalent.
If you have any questions about entry requirements, please contact the department.
Fees and funding
+44 114 222 1800
Any supervisors and research areas listed are indicative and may change before the start of the course.
Recognition of professional qualifications: from 1 January 2021, in order to have any UK professional qualifications recognised for work in an EU country across a number of regulated and other professions you need to apply to the host country for recognition. Read information from the UK government and the EU Regulated Professions Database.