Skip to main content Skip to navigation

Discrete Mathematics BSc (UCAS G190)

This image shows a class of students with their professor working outside on a desktop computer

Learn more about our Discrete Mathematics BSc at Warwick

Discrete Mathematics (BSc) draws on areas of both computer science and mathematics. You will acquire skills in software engineering, combinatorial analysis, formal proof and algorithmic analysis. Regular individual and group projects will consolidate what you have learned by applying it to practical problems.


General entry requirements header

A level typical offer

A*A*A to include A* in Mathematics or Further Mathematics.

A level additional information

Offers normally exclude General Studies and Critical Thinking at A level.

A level contextual offer

We welcome applications from candidates who meet the contextual eligibility criteria. The typical contextual offer is A*AB including A* in Mathematics or Further Mathematics. See if you’re eligible.

General GCSE requirements

Unless specified differently above, you will also need a minimum of GCSE grade 4 or C (or an equivalent qualification) in English Language and either Mathematics or a Science subject. Find out more about our entry requirements and the qualifications we accept.

We advise that you also check the English Language requirements for your course which may specify a higher GCSE English requirement. Please find the information about this below.

IB typical offer

39 with 6, 6, 6 in three Higher Level subjects to include 6 in Higher Level Mathematics ('Analysis and Approaches' only)

IB contextual offer

We welcome applications from candidates who meet the contextual eligibility criteria. The typical contextual offer is 38 including 6 in Higher Level Mathematics ('Analysis and Approaches' only). See if you’re eligible.

General GCSE requirements

Unless specified differently above, you will also need a minimum of GCSE grade 4 or C (or an equivalent qualification) in English Language and either Mathematics or a Science subject. Find out more about our entry requirements and the qualifications we accept.

We advise that you also check the English Language requirements for your course which may specify a higher GCSE English requirement. Please find the information about this below.

We welcome applications from students taking BTECs alongside A level Mathematics.

Applications are considered on an individual basis and subjects with overlapping curricula will only be counted once.

General GCSE requirements

Unless specified differently above, you will also need a minimum of GCSE grade 4 or C (or an equivalent qualification) in English Language and either Mathematics or a Science subject. Find out more about our entry requirements and the qualifications we accept.

We advise that you also check the English Language requirements for your course which may specify a higher GCSE English requirement. Please find the information about this below.


International qualifications header International qualifications standard dropdown
Language requirements header Language standard block
FAQs
Contextual offers and differential standard block
IFP standard block
Gap year standard block
Interview standard content block
Course overview header

This course draws on areas of both computer science and mathematics. You will acquire skills in software engineering, combinatorial analysis, formal proof and algorithmic analysis.

Regular individual and group projects will consolidate what you have learned by allowing you to apply it to practical problems.

Your learning experiences throughout the course will enable you to both analyse and solve problems in an abstract sense, and realise solutions through computer software. These abilities, alongside transferable skills in communication, planning, and self-organisation are highly valued by employers.

You may choose to spend a year in industry, research institutions, or study abroad between Years Two and Three of your degree. This will be reflected in your degree title.


Study abroad

You can spend a year at one of our partner institutions overseas.

We have an established exchange programme with the Hong Kong University of Science and Technology, which provides opportunities for our students to experience teaching and learning at another world-leading institution.

In addition to benefitting from a rich cultural experience, students returning from studying overseas exhibit an international profile that is attractive to potential employers.

Module header

Your first year will establish the foundations of Discrete Mathematics and its applications, covering proof, formal arguments, rigour and calculations, as well as mathematical reasoning, combinatorial analysis and discrete structures.

In your second year, you will develop a rigorous understanding of the subject's theoretical basis, which will prepare you for later specialisation.

In your third year, you will work alongside academics on an individual project as well as focusing on applications of Discrete Mathematics to Computer Science, and completing advanced modules on algorithms and computation.

In each year of your course, you are expected to study a core group of modules and make up the required normal load for the year by choosing a set of optional modules. There is a choice of optional modules available and there may be requirements to be satisfied by the choices: that a minimum number be chosen from a specific list.

All students complete Refresher Mathematics before the start of term, a 0 credit module designed to reinforce your existing mathematical knowledge.


Year One

Programming for Computer Scientists

In this module, whatever your starting point, you will begin your professional understanding of computer programming through problem-solving, and fundamental structured and object-oriented programming. You will learn the Java programming language, through practical work centred on the Warwick Robot Maze environment, which will take you from specification to implementation and testing. Through practical work in object-oriented concepts such as classes, encapsulation, arrays and inheritance, you will end the course knowing how to write programs in Java, and, through your ability to analyse errors and testing procedures, be able to produce well-designed and well-encapsulated and abstracted 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 2022/23 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 2022/23 year of study).

Discrete Mathematics and its Applications 1

In this foundation module, you’ll learn the basic language, concepts and methods of discrete mathematics, while developing your appreciation of how these are used in algorithms and data structures. By the end, you should be able to appreciate the role of formal definitions, mathematical proofs and underlying algorithmic thinking in practical problem-solving. You’ll acquire knowledge of logic, sets, relations and functions, and learn summation techniques (manipulations and finite calculus) and concepts including asymptotics and the big-O notation to prepare you for more advanced techniques in computer science.

Read more about the Discrete Mathematics and its Applications 1 moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2022/23 year of study).

Discrete Mathematics and its Applications 2

During this module, you will build on your foundations in discrete mathematics through the study of concepts such as discrete probability and number theory; learning how to apply these methods in problem-solving. By the end of your course, you’ll be able to use algebraic techniques (including linear and matrix algebra) to analyse basic discrete structures and algorithms, and understand the importance of asymptotic notation, and be able to use it to analyse asymptotic performance for some basic algorithmic examples. Also, you will study the properties of graphs and related discrete structures, and be able to relate these to practical examples.

Read more about the Discrete Mathematics and its Applications 2 moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2022/23 year of study).

Linear Algebra

Linear algebra addresses simultaneous linear equations. You will learn about the properties of vector spaces, linear mappings and their representation by matrices. Applications include solving simultaneous linear equations, properties of vectors and matrices, properties of determinants and ways of calculating them. You will learn to define and calculate eigenvalues and eigenvectors of a linear map or matrix. You will have an understanding of matrices and vector spaces for later modules to build on.

Read more about the Linear Algebra moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2022/23 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 2022/23 year of study):

Sets and Numbers

It is in its proofs that the strength and richness of mathematics is to be found. University mathematics introduces progressively more abstract ideas and structures, and demands more in the way of proof, until most of your time is occupied with understanding proofs and creating your own. Learning to deal with abstraction and with proofs takes time. This module will bridge the gap between school and university mathematics, taking you from concrete techniques where the emphasis is on calculation, and gradually moving towards abstraction and proof.

Read more about the Sets and Numbers moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2022/23 year of study).

Introduction to Probability

This module takes you further in your exploration of probability and random outcomes. Starting with examples of discrete and continuous probability spaces, you will learn methods of counting (inclusion-exclusion formula and multinomial coefficients), and examine theoretical topics including independence of events and conditional probabilities. You will study random variables and their probability distribution functions. Finally, you will study variance and co-variance, including Chebyshev’s and Cauchy-Schwarz inequalities. The module ends with a discussion of the celebrated Central Limit Theorem.

Read more about the Introduction to Probability moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2022/23 year of study).

Year Two

Combinatorics

In this module you learn the basics about discrete structures that lie at the heart of many real-world problems. A key notion is that of a graph, which is an abstract mathematical model for a network, such as a street network, a computer network, or a network of friendships. You learn to argue about these structures formally, and to prove interesting theorems about them. This will train your ability to think outside of the box.

Read more about the Combinatorics moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2023/24 year of study).

Algorithmic Graph Theory

This module is concerned with studying properties of graphs and digraphs from an algorithmic perspective. The focus is on understanding basic properties of graphs that can be used to design efficient algorithms. The problems considered will be typically motivated by algorithmic/computer science/IT applications.

Read more about the Algorithmic Graph Theory moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2022/23 year of study).

Formal Languages

You will gain a fundamental understanding of formal languages and how the Chomsky hierarchy classifies them. You’ll study techniques for exploring the regularity of languages using closure properties and pumping lemmas, whilst also considering automata models, alongside the notion of computability. These concepts are central to computer science, and completion will see you able to specify between, and translate, various forms of formal language descriptions. You’ll learn methods of lexical analysis and parsing, and be able to argue whether a formal language is regular or context free. The teachings will discuss Turing machines and philosophical concepts such as decidability, reducibility and the halting problem.

Read more about the Formal Languages moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2022/23 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 2022/23 year of study).

Year Three

Discrete Mathematics Project

Through this practical module, you’ll gain experience in undertaking a significant individual design and development exercise in discrete mathematics, from conception through to design, implementation and delivery. Starting with the selection of a topic and location of a suitable supervisor, you’ll be responsible for regular progress reports, and a presentation of your final results alongside a detailed written report. In addition to enhancing your technical knowledge, this process will help you develop important skills such as self-discipline, time management, organisation and professional communications.

Read more about the Discrete Mathematics Project moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2022/23 year of study).

Complexity of Algorithms

Are you ready for a challenge? In this module, you’ll learn to analyse the intrinsic difficulty of various computational challenges, and to specify variations that may be more tractable. This will require you to learn notions of the complexity of algorithms, and what makes some computational problems harder than others. You’ll undertake a close study of what makes an algorithm efficient, and study various models of computation, in particular, models of classical deterministic and non-deterministic computations.

Read more about the Complexity of Algorithms moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2022/23 year of study).

Approximation and Randomised Algorithms

In this module, you will gain an introductory understanding of approximation and randomised algorithms, which often provide a simple, viable alternative to standard algorithms. You’ll learn the mathematical foundations underpinning the design and analysis of such algorithms. Whilst gaining experience of using suitable mathematical tools to design approximation algorithms and analyse their performance. You’ll also learn techniques for designing faster but weaker algorithms for particular situations, such as large running times. You can expect to cover important concepts, including linearity of expectation, Chernoff bounds, and deterministic and randomised rounding of linear programs.

Read more about the Approximation and Randomised Algorithms moduleLink opens in a new window, including the methods of teaching and assessment (content applies to 2022/23 year of study).


Optional module header

Optional modules can vary from year to year. Example optional modules may include:

  • Professional Skills
  • Functional Programming
  • Computer Security
  • Logic and Verification
  • Groups and Rings
  • Combinatorial Optimisation
  • Introduction to Number Theory
  • Metric Spaces
  • Stochastic Processes
  • Introduction to Mathematical Statistics

The precise modules available to students may depend on module prerequisites (i.e. for some module choices it is necessary for you to have taken a particular module in a previous year).

Assessment

Your performance on most modules will be assessed by a combination of coursework and written examination.

The coursework may be individual or group work involving programming, research, writing, and presentation.

The final-year project work is fully assessed by a presentation and project reports. Each year contributes to the final degree classification, typically in the ratio of 10:30:60 for a BSc degree.

Teaching header

Our courses offer a balance of core material delivered through lectures, small-group seminars and hands-on laboratory sessions.

Approximately a quarter of your time is spent in timetabled classes, with the remainder being used for private study, completing assignments and projects, and practical work in the dedicated computing laboratories, which are open 24/7.


Contact hours header

On average, a student will have 20 hours of contact time a week, which should be supplemented by 20 hours of independent study.

These contact hours will include between 2-3 hours of lectures for each module, each week, and 1-2 hours of labs and seminars for each module, each week.

Fees header
Funding header

Placements and work experience

We provide support for students wanting to spend a year in the industry by promoting opportunities, hosting departmental careers fairs, and offering one-to-one sessions with our departmental careers advisor.

Intercalated year students are supported by their personal tutor and our Industrial Liaison Team during their year in the industry. Students working in the UK are visited by academic representatives to review their development during the year.


Your career

Graduates from the Department of Computer Science in the past have entered careers in these industries and companies:

Automobiles and Aviation

  • British Airways
  • Ford Motor Company
  • Jaguar Land Rover

Computer Security

  • BAE
  • GCHQ

Computer Systems

  • ARM
  • Citrix
  • IBM

Consulting:

  • Accenture
  • Deloitte
  • EY
  • KPMG

Consumer goods

  • M&S
  • Tesco
  • Unilever

Finance

  • Barclays
  • Bloomberg
  • Goldman Sachs
  • JPMorgan
  • Morgan Stanley

Research

  • CERN
  • Mintel
  • The University of Warwick

Software Development

  • Apple
  • Amazon
  • D.E.Shaw
  • Microsoft
  • Google
  • Sega

They have pursued roles such as:

  • Software engineer
  • Systems analyst
  • Investment analyst
  • Web designer/developer
  • Business analyst
  • Actuary
  • Economist and statistician
  • Computer science researcher
  • University academic
  • Teacher
  • Entrepreneur
  • Start-up owner

Helping you find the right career

Our department has a dedicated professionally qualified Senior Careers Consultant to support you. They offer impartial advice and guidance, together with workshops and events throughout the year. Previous examples of workshops and events include:

  • Computing Your Career
  • Technology in Professional Services
  • Warwick careers fairs throughout the year
  • Working in the Computer Games industry
  • Computer Science Alumni Event

Find out more about careers support at WarwickLink opens in a new window.

Computer Science at Warwick

What are computers capable of? How do we use them to solve major world problems? What are their limitations?

Computer Science at Warwick offers you a community of excellence across the breadth of computer science. Join like-minded thinkers and friends who relish the challenges of shaping future technology.

You will study the theoretical foundation in established areas of the discipline. You will then apply your learning to industrially relevant problems, developing technical and transferable skills which will position you excellently for your future career.

We play a leading role in five interdisciplinary research centres and are one of the founding partners of the prestigious Alan Turing Institute for Data Science. This institute – a £42 million collaboration between UK leaders in Computer Science and Mathematics – will shape policy in the UK and stimulate research activity in data science for decades to come, creating unique opportunities for all of our students.

Find out more about us on our websiteLink opens in a new window


Our courses


Related degrees

Life at Warwick standard content block
Next steps standard content block
Accommodation standard block
Campus life standard block
Food standard block
Societies standard block
Sports standard block
Study standard block
Travel standard block
Wellbeing standard block
How to apply standard block
Talk to us standard block
Virtual Tours standard block
Open Days standard block

Sign up for updates

Discover more about our courses and campus life with our helpful information and timely reminders.

Let us know you agree to cookies