Triangle Skip to content
Exit nav

Course overview

Big data is playing an increasingly important role in our society. The need for expert and ethical data analysis is in high demand across many industries. This course gives you the professional and problem-solving skills for a range of high-level careers.

This interdisciplinary masters will be taught by the Schools of Computer Science and Mathematical Sciences. Our academics conduct their own international-quality research. They use this to teach you the latest techniques and technologies in this field.

Develop your knowledge in key topics such as statistical modelling, machine learning and advanced algorithms. We offer a range of flexible optional modules. This allows you to study a topic that interests you.

You will undertake an individual research project in an area of your choice. This can be with industry partners or with one of our expert research groups. Past projects have included:

  • Development of location-based service for education
  • UK precipitation forecasting
  • The effect of virtual audiences on music performance anxiety

Why choose this course?

Scholarship available

There are three levels to the award which range from 10-50% off your tuition fees.

Top 10

University in the UK, ranked by research power

Research Excellence Framework 2014

Ranked 6th in the UK

For universities targeted by the largest number of top employers in 2019-2020

High Fliers Report The Graduate Market 2019-2020

96.4% of postgraduates

from the School of Computer Science secured work or further study within six months of graduation

HESA Graduate Outcomes 2020, using methodology set by The Guardian

Multiple pathways

No computer programming experience is needed.

Your modules will depend on your background in computer science and maths

Course content

You will study a total of 180 credits, split across 120 credits of compulsory and optional modules plus a 60-credit individual project.

No computer programming experience is needed. The modules you study will be partly tailored to your background. If you are from other subjects you will study modules in fundamental mathematics and computer science.

Modules

Core module for all students

Research Project

You will conduct a piece of empirical and/or theoretical research in data science, under the supervision of a member of academic staff. Where appropriate, your project may also be conducted in conjunction with an external organisation and may involve a substantial software implementation.

Students with background in Computer Science must take 60 credits from the following list of modules:

Machine Learning

Providing an introduction to machine learning, pattern recognition, and data mining techniques, this module will enable you to consider both systems which are able to develop their own rules from trial-and-error experience to solve problems as well as systems that find patterns in data without any supervision. 

You’ll cover a range of topics including:

  • machine learning foundations
  • pattern recognition foundations
  • artificial neural networks
  • deep learning
  • applications of machine learning
  • data mining techniques
  • evaluating hypotheses

You’ll spend around six hours each week in lectures and computer classes for this module.

Advanced Algorithms and Data Structures

This module covers data structures, efficient algorithms on them and ways to determine their complexity. You will study some modern algorithms that are widely used in contemporary software.

The topics covered can include:

  • binary search trees (red-black trees)
  • dynamic programming
  • graph-algorithms (eg shortest path, maximum flows)
  • amortized analysis
  • priority queues (binary, leftist and Fibonacci heaps)
  • string algorithms (string matching, longest common subsequence).

Among the special topics relevant to contemporary application, we can study:

  • public-key cryptography (the RSA cryptosystem)
  • the page-rank algorithm (from Google search)
  • neural networks.

The theory is practised in labs sessions where you will learn how to implement the algorithms and data structures as functional and imperative programs (using the languages Haskell and C), and apply these to solve large instances of real-world problems. The coursework consists of the implementation of some of the data types and algorithms on them.

Computer Vision

You will examine current techniques for the extraction of useful information about a physical situation from individual and sets of images. You will learn a range of methods and applications, with particular emphasis being placed on the detection and identification of objects, image segmentation, pose estimation, recovery of three-dimensional shape and analysis of motion. These problems will be approached with both traditional and modern computer vision approaches, including deep learning.

Simulation and Optimisation for Decision Support

This module offers insight into the applications of selected methods of decision support. The foundations for applying these methods are derived from:

  • operations research simulation
  • social simulation
  • data science
  • automated scheduling
  • decision analysis

Throughout the module, you will become more competent in choosing and implementing the appropriate method for the particular problem at hand. You will engage in a mixture of lectures, workshops, and computer classes.

Data Modelling and Analysis

This module will enable you to appreciate the range of data analysis problems that can be modelled computationally and a range of techniques that are suitable to analyse and solve those problems.

Topics covered include:

  • basic statistics
  • types of data
  • data visualisation techniques
  • data modelling
  • data pre-processing methods including data imputation
  • forecasting methods
  • clustering and classification methods (decision trees, naīve bayes classifiers, k-nearest neighbours)
  • data simulation
  • model interpretation techniques to aid decision support

Spending around four hours each week in lectures and computer classes, appropriate software (eg. R, Weka) will be used to illustrate the topics you'll cover.

Professional Ethics in Computing

This module looks broadly into professional ethics within the scope of the computing discipline. It covers a range of professional, ethical, social and legal issues in order to study the impact that computer systems have in society and the implications of this from the perspective of the computing profession. In particular, the module covers topics such as introduction to ethics, critical thinking, professionalism, privacy, intellectual and intangible property, cyber-behaviour, safety, reliability accountability, all these within the context of computer systems development.

Computability

You will begin by considering the attempts to characterise the problems that can theoretically be solved by physically possible computational processes, along with the practical implications. You will then consider the area of complexity theory, looking at whether or not problems can be solved under limitations on resources such as time or space. You will examine the classes P and NP, and how to show problems are NP-complete. You will also consider other practically important classes such as: PSPACE, and its relevance to adversarial games, ontologies, and the semantic web; and also complexity classes such as NC relevant to understanding of parallel computation and the limitations of its effectiveness.

Parallel Computing

A simple sequential computer program effectively executes one instruction at a time on individual data items. Various strategies are used in CPU design to increase the speed of this basic model but at the cost of CPU complexity and power consumption. To further increase performance the task must be re-organised to explicitly execute on multiple processors and/or on multiple data items simultaneously.

This module charts the broad spectrum of approaches that are used to increase the performance of computing tasks by exploiting parallelism and/or distributed computation. It then considers in more detail a number of contrasting examples. The module deals mainly with the principles involved, but there is a chance to experiment with some of these approaches in the supporting labs.

Topics covered include:

  • common applications of parallel computing
  • parallel machine architectures including Single Instruction Multiple Data (SIMD) or short-vector processing
  • multi-core and multi-processor shared memory
  • custom co-processors including DSPs and GPUs, and cluster and grid computing
  • programming approaches including parallelising compilers
  • explicit message-passing (such as MPI); and specialised co-processor programming (such as for GPUs)
Project in Advanced Algorithms and Data Structures

This project involves a self-guided study of a selected advanced algorithm or data structure. The outcome of the project is an analysis and implementation of the algorithm or data structure, as well as an empirical evaluation, preferably on a real-world data set of significant size.

Linear and Discrete Optimisation

This module provides an entry point to computational optimisation techniques, in particular for modelling and solving linear and discrete optimisation problems like diet optimisation, network flows, task assignment, scheduling, bin-packing, travelling salesmen, facility location, vehicle routing and related problems.

In this module, you will learn to interpret and develop algebraic models for a variety of real-world linear and discrete optimisation problems to then use powerful optimization software (linear, integer and mixed-integer solvers) to produce a solution.

The module covers topics such as:

  • linear programming
  • integer programming
  • combinatorial optimisation
  • modelling and optimisation software
  • multi-objective optimisation 

Optimisation technology is ubiquitous in today's world, for applications in logistics, finance, manufacturing, workforce planning, product selection, healthcare, and any other area where the limited resources must be used efficiently. Optimisation enables prescriptive analytics in order to support and automate decision-making.

Fuzzy Logic and Fuzzy Systems

This module aims to provide a thorough understanding of fuzzy sets and systems from a theoretical and practical perspective.

Topics commonly include:

  • type-1 fuzzy sets
  • type-1 fuzzy logic systems
  • type-1 fuzzy set based applications
  • type-2 fuzzy sets
  • type-2 fuzzy logic systems
  • type-2 fuzzy set based applications.

You will also be exposed to some of the cutting-edge research topics in uncertain data and decision making, e.g., based on type-2 fuzzy logic as well as other fuzzy logic representations. You will develop practical systems and software in a suitable programming language.

Fundamentals of Information Visualisation

Information Visualisation is the process of extracting knowledge from complex data, and presenting it to a user in a manner that this appropriate to their needs. This module provides a foundational understanding of some important issues in information visualisation design. You will learn about the differences between scientific and creative approaches to constructing visualisations, and consider some important challenges such as the representation of ambiguous or time-based data. You will also learn about psychological theories that help explain how humans process information, and consider their relevance to the design of effective visualisations.

If you want to learn how to design and implement your own interactive information visualisation, you should also take the linked module G53IVP (Information Visualisation Project). Together, these two modules form an integrated 20 credit programme of study.

Big Data

This module will cover four main concepts.

It will start with an introduction to big data. You’ll find out about the main principles behind distributed/parallel systems with data intensive applications, identifying key challenges such as capture, store, search, analyse and visualise the data. 

We’ll also look at SQL Databases verses NoSQL Databases. You will learn:

  • the growing amounts of data
  • the relational database management systems (RDBMS)
  • an overview of Structured Query Languages (SQL)
  • an introduction to NoSQL databases
  • the difference between a relational DBMS and a NoSQL database
  • how to identify the need to employ a NoSQL database

Another concept is big data frameworks and how to deal with big data. This includes the MapReduce programming model, as well as an overview of recent technologies (Hadoop ecosystem, and Apache Spark). Then, you will learn how to interact with the latest APIs of Apache Spark (RDDs, DataFrames and Datasets) to create distributed programs capable of dealing with big datasets (using Python and/or Scala).  

Finally, we will cover the data mining and machine learning part of the course. This will include data preprocessing approaches, distributed machine learning algorithms and data stream algorithms. To do so, you will use the machine learning library of Apache Spark to understand how some machine learning algorithms can be deployed at a scale. 

Advanced Algorithms and Data Structures can be taken as a 20 credit module that includes a group project, or as a 10 credit module without a group project.

Students without a background in Computer Science must start with:

Programming

This module will give you a comprehensive overview of the principles of programming, including procedural logic, variables, flow control, input and output and the analysis and design of programs. Instruction will be provided in an object-oriented programming language.

And are then required to obtain 40 credits from the remaining list of Computer Science modules:

Data Modelling and Analysis

This module will enable you to appreciate the range of data analysis problems that can be modelled computationally and a range of techniques that are suitable to analyse and solve those problems.

Topics covered include:

  • basic statistics
  • types of data
  • data visualisation techniques
  • data modelling
  • data pre-processing methods including data imputation
  • forecasting methods
  • clustering and classification methods (decision trees, naīve bayes classifiers, k-nearest neighbours)
  • data simulation
  • model interpretation techniques to aid decision support

Spending around four hours each week in lectures and computer classes, appropriate software (eg. R, Weka) will be used to illustrate the topics you'll cover.

Computer Vision

You will examine current techniques for the extraction of useful information about a physical situation from individual and sets of images. You will learn a range of methods and applications, with particular emphasis being placed on the detection and identification of objects, image segmentation, pose estimation, recovery of three-dimensional shape and analysis of motion. These problems will be approached with both traditional and modern computer vision approaches, including deep learning.

Machine Learning

Providing an introduction to machine learning, pattern recognition, and data mining techniques, this module will enable you to consider both systems which are able to develop their own rules from trial-and-error experience to solve problems as well as systems that find patterns in data without any supervision. 

You’ll cover a range of topics including:

  • machine learning foundations
  • pattern recognition foundations
  • artificial neural networks
  • deep learning
  • applications of machine learning
  • data mining techniques
  • evaluating hypotheses

You’ll spend around six hours each week in lectures and computer classes for this module.

Simulation and Optimisation for Decision Support

This module offers insight into the applications of selected methods of decision support. The foundations for applying these methods are derived from:

  • operations research simulation
  • social simulation
  • data science
  • automated scheduling
  • decision analysis

Throughout the module, you will become more competent in choosing and implementing the appropriate method for the particular problem at hand. You will engage in a mixture of lectures, workshops, and computer classes.

Databases, Interfaces and Software Design Principles

This module considers both the structure of databases, including how to make them fast, efficient and reliable and the appropriate user interfaces which will make them easy to interact with for users. You will start by looking at how to design a database, gaining an understanding of the standard features that management systems provide and how they can best utilise them, then develop an interactive application to access their database.

Database/software design principles will be introduced with an emphasis on the importance of understanding user requirements and specifications. Throughout the lectures and computing sessions, you will learn how to design and implement systems using a standard database management system, web technologies and GUI interfaces through practical programming/system examples.

Fuzzy Logic and Fuzzy Systems

This module aims to provide a thorough understanding of fuzzy sets and systems from a theoretical and practical perspective.

Topics commonly include:

  • type-1 fuzzy sets
  • type-1 fuzzy logic systems
  • type-1 fuzzy set based applications
  • type-2 fuzzy sets
  • type-2 fuzzy logic systems
  • type-2 fuzzy set based applications.

You will also be exposed to some of the cutting-edge research topics in uncertain data and decision making, e.g., based on type-2 fuzzy logic as well as other fuzzy logic representations. You will develop practical systems and software in a suitable programming language.

Fundamentals of Information Visualisation

Information Visualisation is the process of extracting knowledge from complex data, and presenting it to a user in a manner that this appropriate to their needs. This module provides a foundational understanding of some important issues in information visualisation design. You will learn about the differences between scientific and creative approaches to constructing visualisations, and consider some important challenges such as the representation of ambiguous or time-based data. You will also learn about psychological theories that help explain how humans process information, and consider their relevance to the design of effective visualisations.

If you want to learn how to design and implement your own interactive information visualisation, you should also take the linked module G53IVP (Information Visualisation Project). Together, these two modules form an integrated 20 credit programme of study.

Big Data

This module will cover four main concepts.

It will start with an introduction to big data. You’ll find out about the main principles behind distributed/parallel systems with data intensive applications, identifying key challenges such as capture, store, search, analyse and visualise the data. 

We’ll also look at SQL Databases verses NoSQL Databases. You will learn:

  • the growing amounts of data
  • the relational database management systems (RDBMS)
  • an overview of Structured Query Languages (SQL)
  • an introduction to NoSQL databases
  • the difference between a relational DBMS and a NoSQL database
  • how to identify the need to employ a NoSQL database

Another concept is big data frameworks and how to deal with big data. This includes the MapReduce programming model, as well as an overview of recent technologies (Hadoop ecosystem, and Apache Spark). Then, you will learn how to interact with the latest APIs of Apache Spark (RDDs, DataFrames and Datasets) to create distributed programs capable of dealing with big datasets (using Python and/or Scala).  

Finally, we will cover the data mining and machine learning part of the course. This will include data preprocessing approaches, distributed machine learning algorithms and data stream algorithms. To do so, you will use the machine learning library of Apache Spark to understand how some machine learning algorithms can be deployed at a scale. 

Mathematical Sciences modules

Students without a background in Mathematical Sciences must start with:

Statistical Foundations

In this module, the fundamental principles and techniques underlying modern statistical and data analysis will be introduced. You will gain experience in using a statistical package and interpreting its output.The course will cover a 'common core' consisting of:

  • statistical concepts and methods
  • linear models
  • probability techniques
  • Markov chains

And are then required to obtain 40 credits from the following list of Mathematical Science modules:

Applied Statistical Modelling

This module extends the theoretical aspects of statistical inference by developing the theory of the generalised linear model and its practical implementation. Initially, designing of experiments in order to explore relationship between factors and a response is viewed within the context of Linear models.

The module then extends the understanding and application of statistical methodology established in previous courses to the analysis of discrete data and survival, which frequently occur in diverse applications. You will be trained in the use of an appropriate high-level statistical package.

Time Series and Forecasting

This module will provide a general introduction to the analysis of data that arise sequentially in time. Several commonly occurring models will be discussed and their properties derived. Methods for model identification for real-time series data will be considered. Techniques for estimating the parameters of a model, assessing its fit and forecasting future values will be developed. You will gain experience of using a statistical package and interpreting its output.

Applied Multivariate Statistics

During this module you will explore the analysis of multivariate data, in which the response is a vector of random variables rather than a single random variable. A theme running through the module is that of dimension reduction. Key topics to be covered include: principal components analysis, whose purpose is to identify the main modes of variation in a multivariate dataset; modelling and inference for multivariate data, including multivariate regression data, based on the multivariate normal distribution; classification of observation vectors into subpopulations using a training sample; canonical correlation analysis, whose purpose is to identify dependencies between two or more sets of random variables. Further topics to be covered include methods of clustering and multidimensional scaling.

Students with a background in Mathematical Sciences must start with:

Statistical Machine Learning

This module is a topic at the interface between statistics and computer science, concerning models that can adapt to and make predictions based on data. This module builds on the principles of statistical inference and linear regression to introduce a variety of methods of clustering, dimension reduction, regression and classification.

Much of the focus is on the bias-variance trade-off and on methods to measure and compensate for overfitting. The learning approach is hands-on; you will be using R extensively in studying contemporary statistical machine learning methods, and in applying them to tackle challenging real-world applications.

And are then required to obtain 40 credits from the following list of Mathematical Science modules:

Applied Multivariate Statistics

During this module you will explore the analysis of multivariate data, in which the response is a vector of random variables rather than a single random variable. A theme running through the module is that of dimension reduction. Key topics to be covered include: principal components analysis, whose purpose is to identify the main modes of variation in a multivariate dataset; modelling and inference for multivariate data, including multivariate regression data, based on the multivariate normal distribution; classification of observation vectors into subpopulations using a training sample; canonical correlation analysis, whose purpose is to identify dependencies between two or more sets of random variables. Further topics to be covered include methods of clustering and multidimensional scaling.

Applied Statistical Modelling

This module extends the theoretical aspects of statistical inference by developing the theory of the generalised linear model and its practical implementation. Initially, designing of experiments in order to explore relationship between factors and a response is viewed within the context of Linear models.

The module then extends the understanding and application of statistical methodology established in previous courses to the analysis of discrete data and survival, which frequently occur in diverse applications. You will be trained in the use of an appropriate high-level statistical package.

Computational Statistics

This module explores how computers allow the easy implementation of standard, but computationally intensive, statistical methods and also explores their use in the solution of non-standard analytically intractable problems by innovative numerical methods. Particular topics covered include a selection from simulation methods, Markov chain Monte Carlo methods, the bootstrap and nonparametric statistics, statistical image analysis, and wavelets. You will gain experience of using a statistical package and interpreting its output.

Statistical Inference

This course is concerned with the two main theories of statistical inference, namely classical (frequentist) inference and Bayesian inference. 

Topics such as sufficiency, estimating equations, likelihood ratio tests and best-unbiased estimators are explored in detail. There is special emphasis on the exponential family of distributions, which includes many standard distributions such as the normal, Poisson, binomial and gamma.

In Bayesian inference, there are three basic ingredients: a prior distribution, a likelihood and a posterior distribution, which are linked by Bayes' theorem. Inference is based on the posterior distribution, and topics including conjugacy, vague prior knowledge, marginal and predictive inference, decision theory, normal inverse gamma inference, and categorical data are pursued.

Common concepts, such as likelihood and sufficiency, are used to link and contrast the two approaches to inference. You will gain experience of the theory and concepts underlying much contemporary research in statistical inference and methodology.

Time Series and Forecasting

This module will provide a general introduction to the analysis of data that arise sequentially in time. Several commonly occurring models will be discussed and their properties derived. Methods for model identification for real-time series data will be considered. Techniques for estimating the parameters of a model, assessing its fit and forecasting future values will be developed. You will gain experience of using a statistical package and interpreting its output.

The above is a sample of the typical modules we offer but is not intended to be construed and/or relied upon as a definitive list of the modules that will be available in any given year. Modules (including methods of assessment) may change or be updated, or modules may be cancelled, over the duration of the course due to a number of reasons such as curriculum developments or staffing changes. Please refer to the module catalogue for information on available modules. This content was last updated on Wednesday 25 November 2020.

Learning and assessment

How you will learn

  • Lectures
  • Tutorials
  • Seminars
  • Computer labs
  • Practical classes
  • Project work
  • Supervision

You will work in lecture theatres, seminar rooms and labs to develop a theoretical and practical understanding of this subject.

Teaching is typically delivered by professors, associate and assistant professors. Some practical laboratory sessions and research projects may be supported by postgraduate research students or postdoctoral research fellows.

How you will be assessed

  • Coursework
  • Written exam
  • Project work

Modules are assessed using a variety of individual assessment types which are weighted to calculate your final mark for each module. In many modules, assessments are mixed with 75/25 or 25/75 coursework/exam.

The final degree classification will be the average of all credits, e.g. an average of 120 taught credits and 60 credits on your project. To pass a module you’ll need at least 50%.

Contact time and study hours

The class size depends on each module. In 2019/2020 class sizes ranged from 25 to 110 students.

All students meet their tutors in the Induction week. Students are then encouraged to make individual arrangements to discuss any issues during the study. Some staff offer weekly drop-in time for students.

Entry requirements

All candidates are considered on an individual basis and we accept a broad range of qualifications. The entrance requirements below apply to 2021 entry.

Undergraduate degree2:1 (or international equivalent) with evidence of an interest or aptitude in mathematics and computing. Graduates from other fields, with strong mathematics and/or computation background will be considered with 60% average mark.

Applying

Our step-by-step guide covers everything you need to know about applying.

How to apply

Fees

Qualification All
Home / UK To be confirmed in 2020
International To be confirmed in 2020

If you are a student from the EU, EEA or Switzerland starting your course in the 2021/22 academic year, you will pay international tuition fees.

This does not apply to Irish students, who will be charged tuition fees at the same rate as UK students. UK nationals living in the EU, EEA and Switzerland will also continue to be eligible for ‘home’ fee status at UK universities until 31 December 2027.

For further guidance, check our Brexit information for future students.

Additional costs

We do not anticipate any extra significant costs. You should be able to access most of the books you’ll need through our libraries, though you may wish to purchase your own copies which you would need to factor into your budget.

Funding

To help support our students, we offer an Excellence in Computer Science scholarship. There are three levels to the award which range from 10-50% off your tuition fees. You will also receive a tablet to use for the duration of your study.

There are many ways to fund your postgraduate course, from scholarships to government loans.

The University also offers masters scholarships for international and EU students. Our step-by-step guide contains everything you need to know about funding postgraduate study.

Postgraduate funding

Careers

We offer individual careers support for all postgraduate students.

Expert staff can help you research career options and job vacancies, build your CV or résumé, develop your interview skills and meet employers.

More than 1,500 employers advertise graduate jobs and internships through our online vacancy service. We host regular careers fairs, including specialist fairs for different sectors.

Graduate destinations

This course prepares you for careers in advanced software development, particularly where reliability and efficiency are vital requirements. Graduates are likely to assume leading roles in major software-development projects in one of the areas of specialisation.

This course also provides an excellent foundation for further study and you may decide to progress to a PhD in order to continue your research.

Our graduates have lots of great job opportunities. Computer science-related skills make up 4 of the top 5 'most in-demand skills for employers in 2020’ according to linked in.

Career progression

96.4% of undergraduates from the School of Computer Science secured graduate level employment or further study within 15 months of graduation. The average annual salary for these graduates was £28,895.*

* HESA Graduate Outcomes 2020. The Graduate Outcomes % is derived using The Guardian University Guide methodology. The average annual salary is based on graduates working full-time within the UK.

Two masters graduates proudly holding their certificates
" I'm an Associate Professor in the School of Computer Science. I teach modules related to artificial intelligence including Fundamentals of AI and Topics in AI. My main research interests include artificial intelligence algorithms (eg computational optimisation algorithms with machine learning) for intelligent transport systems (eg vehicle routing and connected vehicles) and optimisation problems in workforce scheduling, telecommunication network routing and timetabling. "
Rong Qu, School of Computer Science

Related courses

The University has been awarded Gold for outstanding teaching and learning (2017/18). Our teaching is of the highest quality found in the UK.

The Teaching Excellence Framework (TEF) is a national grading system, introduced by the government in England. It assesses the quality of teaching at universities and how well they ensure excellent outcomes for their students in terms of graduate-level employment or further study.

This content was last updated on Wednesday 25 November 2020. Every effort has been made to ensure that this information is accurate, but changes are likely to occur given the interval between the date of publishing and course start date. It is therefore very important to check this website for any updates before you apply.