D'Math University | Computing & Interdisciplinary Mathematics

BSc Mathematics & Computer Science

A rigorous joint honours programme uniting mathematical theory with computational practice — equipping graduates to design algorithms, build intelligent systems, and solve hard computational problems at the intersection of two disciplines.

Undergraduate 3–4 Years Joint Honours CS & Mathematics
36
Modules
£50k
Avg Graduate Salary
60+
Industry Partners
Dual
Degree Option

Programme Overview

What You Will Study

This programme bridges pure mathematics and computer science, giving you command of both theoretical foundations and practical engineering skills. You will develop fluency in mathematical proof, algorithm design, data structures, and artificial intelligence.

  • Mathematical Foundations: analysis, linear algebra, discrete mathematics, number theory
  • Core CS: programming, data structures, operating systems, databases
  • Advanced Topics: AI, machine learning, cryptography, computational theory
  • Capstone Project: original software or research artefact spanning both fields

Programme Highlights

Designed for students who refuse to choose between mathematical depth and technological breadth, this degree opens doors to the most sought-after roles in technology, finance, and research.

  • Dual Degree Option: graduate with separate BSc awards in Mathematics and CS
  • Industry Placement: structured year-in-industry with 60+ partner firms
  • Research Pathway: accelerated route to MSc/PhD programmes
  • Flexible Specialisation: choose AI, security, or computational science streams in Year 3
Course Catalogue

Click any course to view its objective and learning outcomes.

MCS 101 Discrete Mathematics for CS +

Objective

To master discrete structures fundamental to computer science.

Learning Outcomes

  • Apply propositional and predicate logic to verify programs.
  • Manipulate sets, functions and relations.
  • Solve combinatorial counting problems.
  • Analyse graph algorithms.
  • Use induction in correctness proofs.
Interactive Activity — Cayley Table Generator
Pick a group; the operation table generates instantly.
Group:
MCS 102 Programming Foundations +

Objective

To develop strong programming skills using Python and Java.

Learning Outcomes

  • Write structured programs using control flow and functions.
  • Apply object-oriented design in Java.
  • Implement and use core data structures.
  • Use version control and unit testing.
  • Debug and profile programs effectively.
MCS 103 Calculus +

Objective

To establish calculus skills required for ML and graphics.

Learning Outcomes

  • Compute derivatives and integrals.
  • Apply Taylor series approximations.
  • Solve simple ODEs.
  • Use multivariable calculus for optimisation.
  • Apply calculus to algorithm analysis.
Interactive Activity — Derivative as Slope of Tangent
Drag the slider to move point P along the curve. The tangent line updates — its slope is the derivative.
f(x): x = 1.00
Interactive Activity — Riemann Sum Approximation
Drag the slider to add more rectangles. Watch the approximation converge to the true integral.
Rectangles n = 8
MCS 104 Linear Algebra +

Objective

To establish vector-space theory underpinning graphics, ML and graphics.

Learning Outcomes

  • Solve linear systems via factorisation.
  • Compute eigenvalues and singular values.
  • Apply matrix transformations in computer graphics.
  • Use SVD and PCA for dimensionality reduction.
  • Implement matrix routines.
Interactive Activity — 2×2 Matrix Transformation
Set the entries of a 2×2 matrix. Watch how it transforms the unit square. Determinant = signed area of the transformed square.
a = 1.0 b = 0.5 c = -0.3 d = 1.0
MCS 201 Algorithms & Data Structures +

Objective

To design and analyse algorithms for efficiency and correctness.

Learning Outcomes

  • Apply Big-O notation to runtime analysis.
  • Implement classical sorting and graph algorithms.
  • Use trees, hash tables, heaps and graphs.
  • Apply dynamic programming and greedy methods.
  • Compare algorithms experimentally and theoretically.
MCS 202 Theory of Computation +

Objective

To formalise the limits of algorithmic computation.

Learning Outcomes

  • Construct finite automata and regular expressions.
  • Apply context-free grammars.
  • Discuss Turing machines and decidability.
  • Analyse P, NP and NP-Completeness.
  • Apply reductions between problems.
MCS 203 Logic & Boolean Algebra +

Objective

To apply formal logic to circuits and program verification.

Learning Outcomes

  • Manipulate propositional and predicate formulas.
  • Minimise Boolean expressions using K-maps.
  • Verify simple programs using Hoare logic.
  • Apply SAT solvers to logic problems.
  • Use temporal logic for system specification.
Interactive Activity — Truth Table Builder
Type a logical expression using p, q, r and operators (AND, OR, NOT). The truth table generates instantly.
Operators: AND OR NOT XOR -> <->
Interactive Activity — Set Venn Diagram
Click regions to build set expressions. The diagram updates instantly.
Click any region (A or B) or their intersection.
MCS 204 Cryptography & Coding Theory +

Objective

To secure communications using mathematical cryptography and error-correcting codes.

Learning Outcomes

  • Apply RSA, Diffie-Hellman and elliptic curve cryptography.
  • Encode and decode using Hamming codes.
  • Analyse cipher security.
  • Implement cryptographic primitives.
  • Discuss post-quantum cryptography.
MCS 301 Computer Graphics & Geometry +

Objective

To apply geometry and linear algebra to rendering and animation.

Learning Outcomes

  • Apply transformations and projections to 3D scenes.
  • Compute lighting and shading models.
  • Apply rasterisation and ray tracing.
  • Use Bezier and spline curves.
  • Implement basic 3D rendering pipelines.
MCS 302 Numerical Methods +

Objective

To compute approximate solutions to mathematical problems.

Learning Outcomes

  • Implement numerical algorithms in Python.
  • Apply iterative methods for linear systems.
  • Solve ODEs numerically.
  • Estimate error and conditioning.
  • Compare algorithms for stability and speed.
Interactive Activity — Vector Field & Gradient Visualizer
Pick a scalar field f(x,y). Gradient arrows point in the direction of steepest ascent. Click anywhere to drop a particle that follows the gradient.
f(x,y) =
Click on the plot to drop a particle.
MCS 303 Machine Learning Foundations +

Objective

To build core ML algorithms from mathematical first principles.

Learning Outcomes

  • Apply supervised learning algorithms.
  • Train neural networks via gradient descent.
  • Use cross-validation and regularisation.
  • Evaluate models with appropriate metrics.
  • Implement algorithms from scratch.
Interactive Activity — 2×2 Matrix Transformation
Set the entries of a 2×2 matrix. Watch how it transforms the unit square. Determinant = signed area of the transformed square.
a = 1.0 b = 0.5 c = -0.3 d = 1.0
Interactive Activity — Vector Field & Gradient Visualizer
Pick a scalar field f(x,y). Gradient arrows point in the direction of steepest ascent. Click anywhere to drop a particle that follows the gradient.
f(x,y) =
Click on the plot to drop a particle.
Interactive Activity — Gradient Descent on a 2D Loss Surface
Click anywhere on the surface to drop a starting point. Animation traces the descent path on the chosen loss function. Adjust the learning rate to see how step size affects convergence.
Loss: η = 0.10
Click on the loss surface to drop a starting point.
Interactive Activity — Linear Classifier Decision Boundary
Click to add red or blue points. Adjust weights w₁, w₂, b to position the decision line w₁x + w₂y + b = 0. Misclassified points highlight red.
w₁ = w₂ = b =
MCS 304 Capstone Project (Maths + CS) +

Objective

To undertake an interdisciplinary capstone combining mathematical theory and software engineering.

Learning Outcomes

  • Frame a problem requiring mathematical and computational solutions.
  • Design and implement a substantial software artefact.
  • Document code, mathematics and design decisions.
  • Present and defend the project.
  • Reflect on the interdisciplinary process.

Core Modules

💻

Programming Fundamentals

Python and Java from first principles — data types, control flow, OOP, testing, and software design patterns.

🔢

Discrete Mathematics

Sets, logic, relations, combinatorics, graph theory, and proof techniques essential for computer science.

📊

Algorithms & Complexity

Design and analysis of algorithms; sorting, searching, dynamic programming; P vs NP and complexity classes.

🧮

Linear Algebra for CS

Matrices, eigenvalues, singular value decomposition, and their applications in graphics, ML, and networks.

🤖

Artificial Intelligence

Search, knowledge representation, probabilistic reasoning, neural networks, and ethical AI considerations.

🌐

Data Structures

Trees, heaps, hash tables, graphs — implementation, complexity analysis, and practical applications.

📐

Computational Theory

Turing machines, automata, formal grammars, decidability, and the theoretical limits of computation.

🔐

Cryptography Foundations

Symmetric and asymmetric encryption, RSA, elliptic curves, hash functions, and protocol security.

🏗️

Software Engineering

Agile methods, version control, software architecture, testing frameworks, and large-scale system design.

🌍

Database Systems

Relational algebra, SQL, NoSQL, indexing, transactions, query optimisation, and distributed databases.

Career Outcomes

💻

Software Engineer

Design and build large-scale software systems at technology companies, applying mathematical rigour to system architecture and performance.

📊

Data Scientist

Extract insight from complex datasets using statistical modelling, machine learning, and mathematical analysis across industries.

🔢

Algorithm Developer

Devise and implement efficient algorithms for optimisation, search, and AI products in technology and finance firms.

🔐

Cybersecurity Analyst

Protect digital infrastructure using cryptographic protocols, threat modelling, and mathematical security analysis.

📈

Quantitative Developer

Combine mathematical modelling with programming expertise to build trading systems and financial analytics platforms.

🏗️

Systems Architect

Design the high-level structure of complex software and computing systems, balancing correctness, scalability, and performance.

MIT Carnegie Mellon Stanford Oxford Imperial College London ETH Zürich University of Toronto NUS Singapore University of Waterloo University of Edinburgh

Why D'Math University — Our 4-Step Approach

01

Mathematical Rigour First

Every computational concept is grounded in formal mathematics — you understand the why, not just the how.

02

Hands-On Engineering

Weekly lab sessions in Python, Java, and C++ build practical programming skills alongside theoretical study.

03

Industry Integration

Live projects with 60+ partner companies embed real-world problem-solving from Year 1.

04

Research & Innovation

A final-year capstone or research project prepares you for postgraduate study or a leading technology role.

Enrol in BSc Mathematics & Computer Science →

Applications open year-round — join the next cohort of mathematical engineers.