Curious about studying Computer Science and Mathematics - BSc (Hons)at Royal Holloway, University of London? We've gathered all the key details—entry requirements, modules, fees, and more. Hear from real students by checking out reviews, or take the next step by booking an open day to explore it for yourself.
Bachelor of Science (with Honours) - BSc (Hons)
Main Site
Full Time
Sep 2026
3 Year
Computing has always relied on mathematical models and algorithms but mathematics also relies heavily on computers for exploring concepts, modelling ideas, problem-solving and even generating proofs. Both mathematics and computer science inform almost every aspect of our modern lives and this three-year joint honours course allows you to immerse yourself in both and combine abstract concepts and fascinating theories with hands-on practical experience.Our progressive curriculum is delivered by inspiring mathematicians and computer scientists and informed by input from industry. You will gain a solid grounding in all the fundamentals of pure and applied mathematics, whilst learning about computer programming, software engineering, algorithms and complexity. In computer science our focus is on contemporary technologies such as Web 2.0 and distributed and embedded systems. You will have the chance to experiment in well-equipped laboratories with cutting-edge technologies that are transforming the way we live and work. You will also gain transferrable skills such as project management, time management, team working, data handling, research and presentation. The course's modular structure means you can tailor your studies to your own interests, whilst maintaining an equal split between the two disciplines.Duration: 3 years full time
This module will describe the key principles of academic integrity, focusing on university assignments. Plagiarism, collusion and commissioning will be described as activities that undermine academic integrity, and the possible consequences of engaging in such activities will be described. Activities, with feedback, will provide you with opportunities to reflect and develop your understanding of academic integrity principles.
In this module, you will develop an understanding of the key concepts in Calculus, including differentiation and integration. You will learn how to factorise polynomials and separate rational functions into partial fractions, differentiate commonly occurring functions, and find definite and indefinite integrals of a variety of functions using substitution or integration by parts. You will also examine how to recognise the standard forms of first-order differential equations, and reduce other equations to these forms and solve them.
In this module you will develop an understanding of the calculus functions of more than one variable and how it may be used in areas such as geometry and optimisation. You learn how to manipulate partial derivatives, construct and manipulate line integrals, represent curves and surfaces in higher dimensions, calculate areas under a curve and volumes between surfaces, and evaluate double integrals, including the use of change of order of integration and change of coordinates.
In this module you will develop an understanding of basic linear algebra, in particular the use of matrices and vectors. You will look at the basic theoretical and computational techniques of matrix theory, examining the power of vector methods and how they may be used to describe three-dimensional space. You will consider the notions of field, vector space and subspace, and learn how to calculate the determinant of an n x n matrix.
In this module you will develop an understanding of the fundamental algebraic structures, including familiar integers and polynomial rings. You will learn how to apply Euclid's algorithm to find the greatest common divisor of two integers, and use mathematical induction to prove simple results. You will examine the use of arithmetic operations on complex numbers, extract roots of complex numbers, prove De Morgan's laws, and determine whether a given mapping is bijective.
In this module you will develop an understanding of programming and object-orientation concepts. You will learn about program basics, control flow, data structures, objects, exceptions, and file input and output. You will consider how to solve basic programming tasks and the need for program documentation, testing, readability and modifiability.
In this module you will develop an understanding of the design of algorithms, with a focus on time and space complexity. You will examine basic algorithms, looking at the implementation and analysis of linear search, binary search, and basic sorting, including insertion sort, selection sort, merger sort, quick sort, and heap sort. You will consider alternative data structure representations, such as binary search trees, hash tables, and binary heaps, and will gain an insight into the basics of graph algorithms.
In this module you will develop an understanding of vectors and matrices within the context of vector spaces, with a focus on deriving and using various decompositions of matrices, including eigenvalue decompositions and the so-called normal forms. You will learn how these abstract notions can be used to solve problems encountered in other fields of science and mathematics, such as optimisation theory.
In this module you will develop an understanding of the basic principles of the mathematical theory of probability. You will use the fundamental laws of probability to solve a range of problems, and prove simple theorems involving discrete and continuous random variables. You will learn how to formulate an explain fundamental limit theorems, such as the weak law of large numbers and the central limit theorem.
In this module you will develop an understanding of software engineering techniques and the managerial discipline required to work as part of a team. You will look at basic object-oriented concepts and consider the need for effective program documentation, testing, readability, and modifiability. You will consider the tools used to support software development, such as version controllers, debuggers, and code style checkers, and see how these are integrated into an industry-standard development environment (IDE). You will deliver a small-scale project using test-driven development.
In this module you will develop an understanding of the role of the computer professional, gaining practical experience in developing medium scale software as part of a team using Scrum-based Agile development. You will apply managerial discipline and learn about the software lifecycle, team development, standard industrial software engineering, project management, use of version control, and integrated development environments (IDEs). You will see why project cost and effort is hard to estimate, and consider why project quality is hard to prescribe.
In this year, students will study optional modules.
Royal Holloway, University of London was founded over 170 years ago. Since then, it has been at the forefront of social ...