Core modules
You will learn through a combination of lectures, small-group tutorials and practical sessions based in the Department's well-equipped undergraduate computing laboratory. A central part of learning in Data Science is problem solving.
The curriculum is built on the principle that module choices get more and more flexible as you progress through the degree. On top of that, you may choose to study additional options from an even wider range of modules.
- Year One: 100% core
- Year Two: about 20% optional modules
- Year Three: about 60% optional modules
- Year Four: about 75% optional modules
Year One
Refresher Mathematics
This is a pre-sessional course for incoming first-year undergraduates from mathematics and joint-mathematics courses. The aim is to refresh A Level mathematics and certain core items from further mathematics in preparation for starting their degree.
Read more about the Refresher Mathematics module,Link opens in a new window including the methods of teaching and assessment (content applies to 2024/25 year of study).
Programming for Computer Scientists
This module aims to help you develop your programming skills, regardless of your starting skill level. You will develop problem solving skills through the lens of procedural and object-oriented programming. Using the Java programming language, you will engage with practical work that shall enable you to learn concepts such as classes, encapsulations, arrays, inheritance and advanced topics such as multi-threading and reflection. By engaging with the Warwick Robot Maze environment, you can expect to gain skills in errors analysis and debugging that will help you produce well-designed and well-tested code.
Read more about the Programming for Computer Scientists moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2024/25 year of study).
Design of Information Structures
Following on from Programming for Computer Scientists, on the fundamentals of programming, this module will teach you all about data structures and how to program them. We will look at how we can represent data structures efficiently and how we can apply formal reasoning to them. You will also study algorithms that use data structures. Successful completion will see you able to understand the structures and concepts underpinning object-oriented programming, and able to write programs that operate on large data sets.
Read more about the Design of Information Structures moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2024/25 year of study).
Mathematical Programming I
Operational Research is concerned with advanced analytical methods to support decision making, for example for resource allocation, routing or scheduling. A common problem in decision making is finding an optimal solution subject to certain constraints. Mathematical Programming I introduces you to theoretical and practical aspects of linear programming, a mathematical approach to such optimisation problems.
Read more about the Mathematical Programming I moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2022/23 year of study).
Vectors and Matrices
Many problems in maths and science are solved by reduction to a system of simultaneous linear equations in a number of variables. Even for problems which cannot be solved in this way, it is often possible to obtain an approximate solution by solving a system of simultaneous linear equations, giving the "best possible linear approximation''.
The branch of maths treating simultaneous linear equations is called linear algebra. The module contains a theoretical algebraic core, whose main idea is that of a vector space and of a linear map from one vector space to another. It discusses the concepts of a basis in a vector space, the dimension of a vector space, the image and kernel of a linear map, the rank and nullity of a linear map, and the representation of a linear map by means of a matrix.
These theoretical ideas have many applications, which will be discussed in the module. These applications include:
Solutions of simultaneous linear equations. Properties of vectors. Properties of matrices, such as rank, row reduction, eigenvalues and eigenvectors. Properties of determinants and ways of calculating them.
Read more about the Vectors and Matrices moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2024/25 year of study).
Calculus 1/2
Calculus is the mathematical study of continuous change. In this module there will be considerable emphasis throughout on the need to argue with much greater precision and care than you had to at school. With the support of your fellow students, lecturers and other helpers, you will be encouraged to move on from the situation where the teacher shows you how to solve each kind of problem, to the point where you can develop your own methods for solving problems. By the end of the year you will be able to answer interesting questions like, what do we mean by `infinity’?
Read more about these modules, including the methods of teaching and assessment (content applies to 2024/25 year of study):
Sets and Numbers
Mathematics can be described as the science of logical deduction - if we assume such and such as given, what can we deduce with absolute certainty? Consequently, mathematics has a very high standard of truth - the only way to establish a mathematical claim is to give a complete, rigorous proof. Sets and Numbers aims to show students what can be achieved through abstract mathematical reasoning.
Read more about the Sets and Numbers moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2024/25 year of study).
Introduction to Statistical Modelling
This module is an introduction to statistical thinking and inference. You’ll learn how the concepts you met from Probability can be used to construct a statistical model – a coherent explanation for data. You’ll be able to propose appropriate models for some simple datasets, and along the way you’ll discover how a function called the likelihood plays a key role in the foundations of statistical inference. You will also be introduced to the fundamental ideas of regression. Using the R software package you’ll become familiar with the statistical analysis pipeline: exploratory data analysis, formulating a model, assessing its fit, and visualising and communicating results. The module also prepares you for a more in-depth look at Mathematical Statistics in Year Two.
Read more about the Introduction to Statistical Modelling moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2024/25 year of study).
Probability 1
Probability is a foundational module that will introduce you both to the important concepts in probability but also the key notions of mathematical formalism and problem-solving. Want to think like a mathematician? This module is for you. You will learn how to express mathematical concepts clearly and precisely and how to construct rigorous mathematical arguments through examples from probability, enhancing your mathematical and logical reasoning skills. You will also develop your ability to calculate using probabilities and expectations by experimenting with random outcomes through the notion of events and their probability. You’ll learn counting methods (inclusion–exclusion formula and binomial co-efficients), and study theoretical topics including conditional probability and Bayes’ Theorem.
Read more about the Probability 1 moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2024/25 year of study).
Probability 2
This module continues from Probability I, which prepares you to investigate probability theory in further detail here. Now you will look at examples of both discrete and continuous probability spaces. You’ll scrutinise important families of distributions and the distribution of random variables, and the light this shines on the properties of expectation. You’ll examine mean, variance and co-variance of distribution, through Chebyshev's and Cauchy-Schwarz inequalities, as well as the concept of conditional expectation. The module provides important grounding for later study in advanced probability, statistical modelling, and other areas of potential specialisation such as mathematical finance.
Read more about the Probability 2 moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2024/25 year of study).
Year Two
Software Engineering
Centred on teamwork, you will concentrate on applying software engineering principles to develop a significant software system with your peers from feasibility studies through modelling, design, implementation, evaluation, maintenance and evolution. You’ll focus on design quality, human–computer interaction, technical evaluation, teamwork and project management. With a deeper appreciation of the stages of the software life-cycle, you’ll gain skills to design object-oriented software using formal modelling and notation. You will be taught the principles of graphical user interface and user-centred design, and be able to evaluate projects in the light of factors ranging from technical accomplishment and project management, to communication and successful teamwork.
Read more about the Software Engineering moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2024/25 year of study).
Database Systems
During this module, you will learn how relational database theory can be used to efficiently organise and retrieve large amounts of data. This includes a study of different relational query languages and practical experience of the SQL language that is widely used in industry. Successful completion will see you equipped to create appropriate, efficient database designs for a range of applications and to translate informal queries into formal notation. You will have learned to identify appropriate data constraints to ensure the integrity of the database and to mitigate various common security threats.
Read more about the Database Systems moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2024/25 year of study).
Algorithms
Data structures and algorithms are fundamental to programming and to understanding computation. In this module, you will be using sophisticated tools to apply algorithmic techniques to computational problems. By the close of the course, you’ll have studied a variety of data structures and will be using them for the design and implementation of algorithms, including testing and proofing, and analysing their efficiency. This is a practical course, so expect to be working on real-life problems using elementary graph, greedy, and divide-and-conquer algorithms, as well as gaining knowledge on dynamic programming and network flows.
Read more about the Algorithms moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2024/25 year of study).
Stochastic Processes
The concept of a stochastic (developing randomly over time) process is a useful and surprisingly beautiful mathematical tool in economics, biology, psychology and operations research. In studying the ideas governing stochastic processes, you’ll learn in detail about random walks – the building blocks for constructing other processes as well as being important in their own right, and a special kind of ‘memoryless’ stochastic process known as a Markov chain, which has an enormous range of application and a large and beautiful underlying theory. Your understanding will extend to notions of behaviour, including transience, recurrence and equilibrium, and you will apply these ideas to problems in probability theory.
Read more about the Stochastic Processes moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2024/25 year of study).
Mathematical Methods for Statistics and Probability
Following the mathematical modules in Year One, you’ll gain expertise in the application of mathematical techniques to probability and statistics. For example, you’ll be able to adapt the techniques of calculus to compute expectations and conditional distributions relating to a random vector, and you’ll encounter the matrix theory needed to understand covariance structure. You’ll also gain a grounding in the linear algebra underlying regression (such as inner product spaces and orthogonalization). By the end of your course, expect to apply multivariate calculus (integration, calculation of under-surface volumes, variable formulae and Fubini’s Theorem), to use partial derivatives, to derive critical points and extrema, and to understand constrained optimisation. You’ll also work on eigenvalues and eigenvectors, diagonalisation, orthogonal bases and orthonormalisation.
Read more about the Mathematical Methods for Statistics and Probability moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2024/25 year of study).
Probability for Mathematical Statistics
If you have already completed Probability in Year One, on this module you’ll have the opportunity to acquire the knowledge you need to study more advanced topics in probability and to understand the bridge between probability and statistics. You’ll study discrete, continuous and multivariate distributions in greater depth, and also learn about Jacobian transformation formula, conditional and multivariate Gaussian distributions, and the related distributions Chi-squared, Student’s and Fisher. You will also cover more advanced topics including moment-generating functions for random variables, notions of convergence, and the Law of Large Numbers and the Central Limit Theorem.
Read more about the Probability for Mathematical Statistics moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2024/25 year of study).
Mathematical Statistics
If you’ve completed “Probability for Mathematical Statistics”, this second-term module is your next step, where you’ll study in detail the major ideas behind statistical inference, with an emphasis on statistical modelling and likelihoods. You’ll learn how to estimate the parameters of a statistical model through the theory of estimators, and how to choose between competing explanations of your data through model selection. This leads you on to important concepts including hypothesis testing, p-values, and confidence intervals, ideas widely used across numerous scientific disciplines. You’ll also discover the ideas underlying Bayesian statistics, a flexible and intuitive approach to inference which is especially amenable to modern computational techniques. Overall this module will provide you a very firm foundation for your future engagement in advanced statistics – in your final years and beyond.
Read more about the Mathematical Statistics moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2024/25 year of study).
Linear Statistical Modelling with R
This module runs in parallel with Mathematical Statistics and gives you hands-on experience in using some of the ideas you saw there. The centrepiece of this module is the notion of a linear model, which allows you to formulate a regression model to explain the relationship between predictor variables and response variables. You will discover key ideas of regression (such as residuals, diagnostics, sampling distributions, least squares estimators, analysis of variance, t-tests and F-tests) and you will analyse estimators for a variety of regression problems. This module has a strong practical component and you will use the software package R to analyse datasets, including exploratory data analysis, fitting and assessing linear models, and communicating your results. The module will prepare you for numerous final years modules, notably the Year Three module covering the (even more flexible) generalised linear models.
Read more about the Linear Statistical Modelling with R moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2024/25 year of study).
Year Three
BSc and MSci in Data Science are the same during the first two years, making it easy to reconsider your preference. Differences become apparent in the final years. The third year of MSci involves a module whose aim is to prepare you for the statistical investigative cycle from problem formulation to the communication of conclusions. The fourth (final) year of MSci offers a range of advanced modules from across Data Science, and you also choose a Master's level dissertation project from a wide selection of topics.
Optional modules
Optional modules can vary from year to year. Example optional modules may include:
- Artificial Intelligence
- Games and Decisions
- Neural Computing
- Machine Learning
- Approximation and Randomised Algorithms
- Mobile Robotics
- Computer Graphics
- Professional Practice of Data Analysis