Computer Science and Mathematics BSc
AAA at A level, Mathematics; graduates earn a median £28,500 three years on.
Mathematics · 100% of entrants came with A levels · 100% stay on after year 1 · York course page, Discover Uni
What do you need to get in?
Typical offer — the grades most applicants are asked for. Contextual offer: ABB, for applicants from under-represented backgrounds.
York course page, read 19 September 2026 · Discover Uni entry profile
- 1Mathematics
- 2A in Mathematics
UCAS tariff points — a points scale for grades: A* = 56, A = 48, so A*A*A = 160. Entrants’ totals include extra subjects.
Other qualifications5
| Qualification | Typical offer | Required subjects |
|---|---|---|
| Access | We accept the Access to Higher Education Diploma. The syllabus must contain a siWe accept the Access to Higher Education Diploma. The syllabus must contain a significant portion of Mathematics that is considered equivalent to A level standard. Applications will be considered on a | — |
| BTEC | DDDDDD plus grade A in A level Mathematics (or equivalent qualification) We consider a range of BTEC qualifications equivalent to 3 A Levels, or in combination with A Levels or other qualifications. For | Mathematics Distinction, Distinction in 2 BTEC Level 3 National Extended Certificates plus A in A Level Mathematics |
| IB | 36 points36 points overall, including grade 6 in Higher Level Mathematics (either Analysis and Approaches or Applications and Interpretations). | 6 in Higher Level Mathematics |
| Scottish Highers | BBBB | — |
| Advanced Highers | A in Mathematics plus | — |
What do you study?
Compulsory modules this year: mathematics & statistics 49% · digital & ict skills 28% · natural sciences 13% · engineering & manufacturing 8%.
Module — one course unit, usually a term or a year long; “core” means everyone takes it. One UK credit is about ten hours of study; a full year is 120 credits.
York course page · optional modules vary by year
- Theory 2: Formal Languages and Automata
What you learn (18)
- describe formal languages, automata and grammars
- illustrate relationships between languages, automata and grammars
- construct finite automata including deterministic and non-deterministic forms
- construct pushdown automata including deterministic and non-deterministic forms
- construct turing machines
- distinguish classes of automata and their accepted languages
- apply operations to transform automata
- convert between different types of automata
- convert grammars into automata for regular languages
- convert grammars into automata for context-free languages
- demonstrate ambiguity in a given grammar
- apply the pumping lemma to prove a language is not regular
- apply the pumping lemma to prove a language is not context-free
- describe the structure of the chomsky hierarchy
- identify practical computing applications of regular languages
- identify practical computing applications of context-free languages
- use automata theory to build lexers
- use automata theory to build parsers
- Software 1: Foundations of Programming for Computer Science
What you learn (12)
- describe core concepts of procedural programming
- write small procedural programs to meet specified requirements
- relate program syntax to its semantics and analyse execution outcomes
- implement custom data structures to represent process states
- translate pseudocode algorithms into working code
- develop programs incrementally using tests to verify each stage
- store data using built-in collection types
- read and write data from CSV and JSON files
- use a software development environment to write and manage code
- identify and fix bugs in code using a debugging tool
- organise code according to software engineering principles
- document the design and implementation of code
- Software 2: Object Oriented Data Structures and Algorithms
What you learn (18)
- assemble data and methods into classes applying encapsulation
- integrate standard library code into own programs
- write code that satisfies given interface specifications
- test code to verify it meets interface requirements
- debug programs by identifying and fixing faults
- structure program code according to software engineering standards
- produce documentation explaining code design and implementation
- generate documentation automatically using programming tools
- analyse problems to design algorithms for simple tasks
- explain how algorithms and programs operate
- implement small programs based on algorithmic designs
- calculate worst-case running time using asymptotic analysis
- categorise sorting and searching algorithms by efficiency
- compare abstract data structures such as lists and graphs
- select appropriate data structures for design problems
- apply greedy and dynamic programming design paradigms
- justify choice of algorithmic paradigm for a problem
- explain the concept and benefit of approximation algorithms
- Foundations and Calculus
What you learn (8)
- prove elementary results concerning sets and their properties
- prove elementary results concerning functions and their properties
- apply differentiation techniques to solve calculus problems
- apply integration techniques to solve calculus problems
- perform calculations with vectors and complex numbers to solve problems
- prove rigorous statements about the behaviour of limits
- solve problems relating limits to derivatives and integrals
- use a computer algebra system to solve module-related mathematical problems
- Introduction to Pure Mathematics
What you learn (5)
- apply foundational pure mathematics concepts to solve problems
- use a range of mathematical proof techniques
- formulate precise mathematical statements
- construct rigorous mathematical proofs
- evaluate mathematical arguments for correctness and rigour
- Multivariable Calculus and Matrices
What you learn (9)
- solve second-order differential equations using standard techniques
- construct a Fourier series expansion of a function
- construct a Taylor series expansion of a function
- differentiate functions of several variables
- integrate functions of several variables
- perform algebraic operations on matrices
- apply matrix methods to solve systems of linear equations
- use computer algebra software to solve multivariable calculus problems
- use computer algebra software to solve matrix algebra problems
Year 2 · 6 core · 120 credits ≈ 1,200 hours
- Engineering 1: Software and Systems Engineering
What you learn (16)
- explain software engineering terminology and process models
- apply lifecycle and process models to support a project
- elicit user and system requirements from stakeholders
- document user and system requirements clearly
- design software architecture using object-oriented principles
- implement object-oriented software from a design
- estimate project risk to inform decision-making
- produce realistic project effort and time estimates
- use continuous integration tools in software development
- collaborate effectively within a team to complete a project
- apply software licensing models to project artefacts
- incorporate third-party software reuse into a project
- address cyber-security issues throughout the development lifecycle
- evaluate ethical considerations in software engineering practice
- write documentation for stages of the engineering lifecycle
- deliver presentations on project progress and outcomes
- Theory 3: Computability, Complexity and Logic
What you learn (14)
- design a turing machine to recognise a semi-decidable language
- compute a partial function using a turing machine
- prove unsolvability of a problem via reduction from a known unsolvable problem
- prove decidability of a problem by constructing a decision procedure
- analyse the time complexity of a turing machine
- analyse the space complexity of a turing machine
- construct proofs using natural deduction rules
- determine the truth value of a formula in a given model
- explain limitations of formal logic
- explain program behaviour using structural operational semantics
- reason about program correctness using preconditions and postconditions
- reason about loop behaviour using invariants in hoare logic
- distinguish between partial and total correctness of programs
- apply extended hoare logic laws to prove program termination
- Data: Introduction to Data Science or Intelligent Systems: Machine Learning and Optimisation
What you learn (12)
- distinguish between data types produced in science, engineering and design contexts
- apply strategies to ensure the quality of collected data
- retrieve data from diverse sources and file formats
- apply inferential statistical methods to test hypotheses about data
- analyse relationships and features within data sets using statistical procedures
- select suitable visualisations to present data findings
- use visual techniques to explore patterns within data sets
- use relational and non-relational databases to store data
- construct queries to retrieve data from different database systems
- identify ethical issues relating to data provenance and individual privacy
- evaluate the societal impact of data analytics practices
- apply principles from a professional data protection code of ethics
- Groups, Rings and Fields
What you learn (9)
- apply abstract algebraic concepts to specific groups, rings and fields
- explain the structure and purpose of mathematical proofs used in the module
- construct valid proofs for algebraic statements covered in the module
- apply the fundamental theorem of homomorphisms to familiar group examples
- apply the fundamental theorem of homomorphisms to unfamiliar group examples
- describe the construction of direct products of groups
- describe the construction of semidirect products of groups
- explain the division algorithm for polynomial rings
- apply the division algorithm to polynomials over a ring
- Linear Algebra
What you learn (13)
- identify whether a given subset forms a linear subspace
- apply subspace properties to solve algebraic problems
- determine a basis for a given vector space
- calculate the dimension of a vector space from a basis
- recognise whether a given map is linear
- determine the kernel and image of a linear map
- apply the rank-nullity theorem to solve problems
- calculate eigenvalues of a linear map or matrix
- calculate eigenvectors corresponding to given eigenvalues
- define real and Hermitian inner products
- apply inner products to determine orthogonality of vectors
- derive consequences of orthogonality in vector spaces
- perform matrix factorisation using computer algebra software
- Metric Spaces
What you learn (9)
- identify whether a given set with a distance function is a metric space
- perform calculations using the metric structure of a space
- determine whether a function between metric spaces is continuous
- apply continuity arguments to solve problems in metric spaces
- determine whether a sequence converges in an abstract metric space
- determine whether a metric space is complete
- apply the contraction mapping theorem to solve problems involving complete spaces
- demonstrate that a given space is compact
- prove results concerning compactness in abstract metric spaces
Year 3 · 1 core, 27 optional · 40 credits ≈ 400 hours
- Computer Science Project or Extended Independent Project in Mathematics
What you learn (15)
- apply advanced technical skills in a chosen specialist area building on theory
- design a computer systems engineering solution to a given problem
- implement a designed computer systems engineering solution
- evaluate the outcomes of an engineering project against its objectives
- apply established research methods to generate new knowledge
- interpret findings produced through recognised research techniques
- compare alternative approaches to a project problem
- justify the chosen approach at each project stage
- identify project tasks feasible within time and resource constraints
- structure a written project report clearly according to set criteria
- reference sources to a publishable academic standard
- critically evaluate the work undertaken and methods applied in the report
- explain legal, ethical, social and professional issues relevant to the project
- propose mitigation strategies for identified ethical or professional risks
- summarise the context, methods and results of a project for a general audience
27 optional modules
- Embedded Systems Design and Implementation
What you learn (16)
- explain why embedded computer systems are needed in various applications
- identify requirements imposed on a system by its application scenario
- implement an embedded system based on a design specification
- validate the functionality of an implemented embedded system
- describe different levels of abstraction used in embedded system design
- select appropriate abstraction levels for each design stage
- analyse hardware/software implementation trade-offs for a given application
- apply partitioning and mapping techniques to embedded system design
- evaluate design options using trade-off evaluation techniques
- write programs for platforms with constrained performance and energy resources
- optimise code for limited memory and storage capacity
- design a custom hardware architecture for a specific application
- evaluate the performance of a custom hardware architecture
- explain methods for improving and assuring timing properties of real-time systems
- apply priority assignment techniques to real-time task scheduling
- perform schedulability analysis for real-time tasks
- High-Performance Parallel and Distributed Systems
What you learn (10)
- write parallel programs for shared memory architectures
- apply common parallel programming paradigms to practical problems
- identify metrics suitable for evaluating application and system performance
- write parallel programs for distributed memory architectures
- apply parallel programming libraries to implement distributed solutions
- explore design choices available in parallel and distributed system architectures
- describe key issues in GPU programming for parallel computation
- describe considerations of high-speed networking and I/O in system design
- evaluate the performance of different HPC development approaches
- evaluate the portability and productivity trade-offs of HPC approaches
- High-Integrity Systems Engineering
What you learn (9)
- identify key challenges in designing critical systems
- explain issues arising when implementing critical systems
- apply fault-tree analysis to assess system safety
- apply failure analysis techniques to validate system designs
- discuss technical issues related to high-integrity engineering
- discuss social issues related to high-integrity engineering
- contribute ideas during brainstorming sessions on failure scenarios
- analyse documented examples of past system failures
- describe software engineering concepts used in critical system development
- Quantum Computation
What you learn (7)
- explain the potential advantages of quantum computation
- identify the limitations and constraints of quantum computation
- apply quantum gate operations to evolve quantum states
- calculate measurement outcomes for given quantum states
- design and analyse quantum computational circuits
- explain key quantum algorithms and their significance
- simulate quantum algorithms acting on quantum states
- Cryptography Theory and Practice
What you learn (8)
- explain core concepts of symmetric-key cryptography
- explain core concepts of public-key cryptography
- apply informal definitions of security properties to cryptographic constructions
- apply formal definitions of security properties to cryptographic constructions
- analyse the theoretical security of cryptographic constructions
- analyse the practical efficiency of cryptographic constructions
- assess whether a cryptographic algorithm meets specified security requirements
- assess whether a cryptographic protocol meets specified security requirements
- Deep Learning
What you learn (9)
- explain probability theory as a foundation for machine learning models
- describe manifold embedding techniques for dimensionality reduction
- apply kernel methods to transform data representations
- apply Bayesian regression methods to predict continuous outcomes
- apply Bayesian classification methods to categorise data
- apply Bayesian clustering methods to group unlabelled data
- identify key architectures used in deep learning
- apply gradient-based optimisation algorithms to train models
- compare variants of optimisation algorithms used in model training
- AI Search and Logic
What you learn (11)
- formulate a search problem using states, actions and a goal
- identify a suitable heuristic for a search problem
- translate a scenario into propositional logic statements
- apply logical inference to derive conclusions from encoded statements
- formulate a discrete optimisation problem as a constraint model
- solve a constraint model using a constraint programming tool
- justify the choice of search algorithm over alternatives
- select an adversarial search method suited to a given game
- design a heuristic to support adversarial search when required
- describe algorithms used in SAT, local search and constraint solvers
- apply solver algorithms to small worked examples
- Autonomous Robots
What you learn (7)
- describe levels of autonomy achievable in robotic systems
- discuss safety considerations in designing and deploying autonomous robots
- evaluate ethical implications of autonomous robotic system deployment
- explain methodologies used to engineer autonomous robotic systems
- describe how modern robotics middleware is applied in practice
- build an autonomous robotic system to solve a given task
- evaluate the strengths and weaknesses of a built robotic solution
- Engineering 2: Automated Software Engineering
What you learn (15)
- explain core concepts of modelling and metamodelling
- apply modelling practices to represent software systems
- build domain-specific models and metamodels for a given problem
- execute model management operations to coordinate models
- describe design principles underlying data-intensive software architectures
- evaluate architecture characteristics such as availability, scalability and security
- relate organisational characteristics to system architecture decisions
- structure data-intensive systems using independent microservices
- assess benefits and challenges of microservice-based architectures
- package system components as containers for reproducible deployment
- coordinate containers to operate together in a scalable system
- describe assurance practices for developing and deploying large systems
- identify testing and hardening techniques for data-intensive systems
- explain how model-driven engineering fits within broader system engineering processes
- relate model-driven engineering practices to organisational policies
- Network Security
What you learn (6)
- describe core principles underlying cyber security in networked systems
- identify strengths and weaknesses of network security mechanisms
- identify major threats and attacks affecting systems and networks
- analyse threats across different architectures and threat models
- design control solutions to mitigate network security risks
- evaluate alternative security solutions across different contexts
- Qualitative Approaches to Investigating UX
What you learn (11)
- select an appropriate qualitative methodology for a research question
- justify the choice of a qualitative methodology
- identify the epistemological assumptions underlying qualitative methods
- explain how epistemological positions shape qualitative research choices
- explain the influence of the researcher's position on the research process
- evaluate research methods against standards of rigour and validity
- compare methods used across different qualitative studies
- present findings from a qualitative analysis appropriate to the chosen method
- discuss the implications of analysis results for the research question
- describe key principles of ethical conduct in research
- describe key principles of data governance in research
- Ethical Hacking, Analysis and Investigation
What you learn (6)
- explain core principles underlying cyber security in computing systems
- identify strengths and weaknesses of network security mechanisms
- describe major threats and attacks affecting systems and networks
- relate attack types to different architectures and threat models
- analyse control solutions used to secure networks
- evaluate the merits of alternative security solutions across contexts
- Natural Language Processing
What you learn (13)
- describe the process of splitting text into tokens
- explain how part-of-speech tagging assigns grammatical categories to words
- explain how parsing determines the syntactic structure of sentences
- build a text classification pipeline using NLP techniques
- build a named entity recognition system
- build a sentiment analysis system using NLP methods
- apply word embedding techniques to represent language meaning numerically
- apply n-gram models to estimate word sequence probabilities
- apply recurrent neural networks to model sequential language data
- evaluate NLP model outputs using standard performance metrics
- assess the limitations of NLP models using benchmark datasets
- describe how classical statistical methods contributed to large language model development
- describe how neural approaches underpin modern large language models
- Large Language Models
What you learn (9)
- critically assess chain-of-thought reasoning methods in modern models
- describe training, fine-tuning and alignment techniques used to develop language models
- evaluate explainability approaches and evaluation metrics for language models
- use modern software frameworks to implement language model applications
- discuss scalability challenges of deploying large-scale language models
- measure the energy consumption of training and deploying language models
- interpret environmental impact data to inform sustainable model development decisions
- identify ethical concerns relating to bias and fairness in language models
- address ethical issues of language model use across real-world scenarios
- Engineering LLM-Based Agents and Applications
What you learn (13)
- describe common architectural patterns for combining LLMs with planning and memory modules
- compare design patterns integrating retrieval and external tool use in LLM agents
- build an intelligent software agent using LLM components
- deploy a functioning agent system to a working environment
- design an autonomous workflow combining LLM reasoning with retrieval mechanisms
- construct multi-step action plans that link reasoning to execution
- implement a practical agent application such as a task assistant or planner
- integrate external APIs and services into an agent application
- evaluate agent performance using qualitative and quantitative measures
- analyse limitations of agent systems relating to reliability and latency
- identify safety and ethical risks arising in agent design
- propose mitigations for hallucination and over-reliance on automated agents
- explain how systems thinking supports evaluation of LLM performance in practice
- Legal Practice, Technology and Computer Science
What you learn (15)
- analyse a real-world context to find where AI could improve outcomes for users
- apply design thinking methods to uncover procedural and technical issues in a problem
- identify legal, ethical and user-related issues within a given problem
- explain discipline-specific concepts clearly in writing to non-specialist colleagues
- present discipline-specific concepts verbally to colleagues from other fields
- collaborate with colleagues from different disciplines on a shared task
- combine principles from multiple disciplines to devise possible solutions
- evaluate proposed solutions against defined user requirements
- develop a budgeted plan for implementing an agreed solution
- produce a persuasive written report advocating a chosen solution
- deliver a persuasive oral presentation advocating a chosen solution
- describe how AI and technology can be applied to improve service delivery
- explain the potential benefits and harms arising from AI-driven technologies
- reflect on personal learning gains achieved during the module
- reflect on challenges encountered during cross-disciplinary collaboration
- Cryptography
What you learn (8)
- identify weaknesses in classical cryptosystems
- exploit identified weaknesses to break classical ciphers
- apply public key cryptographic protocols to solve numerical problems
- exploit weaknesses of public key protocols in simple scenarios
- perform calculations involving the mathematical structure of AES
- apply quantum information postulates to solve calculations
- describe the sequence of steps in the BB84 protocol
- explain why the BB84 protocol is secure
- Topology
What you learn (6)
- describe key examples of topological spaces
- analyse the properties of standard topological spaces
- apply topological invariants to characterise spaces
- distinguish topological spaces using their invariants
- apply path homotopy concepts to compare spaces
- analyse the structure of spaces using the fundamental group
- Operations Research
What you learn (15)
- state key terminology used in linear programming
- describe fundamental results of linear programming theory
- describe the stages of the simplex algorithm
- apply the simplex method to solve a linear program
- state the fundamental theorem of linear programming
- prove the fundamental theorem of linear programming
- state the duality theorem of linear programming
- formulate transportation problems as mathematical models
- solve transportation problems using appropriate methods
- model and solve network optimisation problems
- describe key results from game theory
- apply game theory results to operations research problems
- translate real-world problems into mathematical formulations
- solve mathematical models using suitable operations research techniques
- interpret mathematical solutions in the context of original problems
- Number Theory
What you learn (7)
- apply diverse proof methods used in number theory
- evaluate the suitability of different proof strategies for a given problem
- apply taught algorithms to solve specific numerical problems
- apply techniques of diophantine approximation to solve problems
- apply algebraic methods to number-theoretic problems
- apply probabilistic reasoning to number-theoretic problems
- apply the concept of fractal dimension to number-theoretic problems
- Measure and Integration
What you learn (6)
- apply properties of measures and measurable sets to solve examples
- explain Caratheodory's construction of measures
- describe the construction of Lebesgue measure
- identify key properties of the Lebesgue integral
- evaluate Lebesgue integrals using Monotone and Dominated Convergence Theorems
- evaluate multiple integrals using Tonelli and Fubini Theorems
- Numerical Analysis
What you learn (5)
- select a suitable numerical method for a given mathematical problem
- apply a numerical technique to approximate a solution
- analyse the error behaviour of a numerical method
- determine the stability region of a numerical method
- implement numerical methods using Python
- Groups, Actions and Galois Theory
What you learn (5)
- apply group actions to solve problems in group theory
- construct Sylow subgroups of a given group
- apply the Sylow theorems to analyse group structure
- construct different types of field extensions
- use the Galois correspondence to examine intermediate fields
- Differential Geometry
What you learn (7)
- classify curves geometrically using curvature and torsion
- define the concept of a smooth surface
- differentiate smooth functions defined on a surface
- identify the tangent space of a smooth surface
- compute fundamental forms using local coordinates
- define different measures of surface curvature
- classify surface points by their curvature type
- Communicating Mathematics in Education
What you learn (10)
- describe the main responsibilities of a class teacher in preparing and delivering lessons
- explain approaches used by teachers to manage pupil behaviour and engagement
- describe how teachers collaborate and interact with colleagues in a school setting
- design a lesson plan that meets specified teaching objectives
- create teaching materials suited to a defined educational purpose
- explain mathematical concepts clearly to an individual pupil
- present mathematical ideas and skills effectively to a group of pupils
- apply theoretical concepts of mathematics education to classroom practice
- evaluate personal classroom experience to identify areas for improvement
- incorporate feedback from pupils and teachers into future practice
- Lie Theory
What you learn (7)
- explain the correspondence between a Lie group and its Lie algebra
- state general structural properties of Lie algebras
- apply the concepts of solvable and semisimple Lie algebras to examples
- identify classical Lie groups from their defining properties
- define key properties of classical Lie groups
- identify linear representations of groups
- apply techniques for working with linear representations of groups
- Semigroup Theory
What you learn (3)
- explain fundamental concepts of semigroup theory
- apply Green's relations to analyse semigroup structure
- identify key examples of semigroups such as transformation and free semigroups
“What you learn” restates each module’s published learning outcomes in our own words, as short skill statements in the same form as the GCSE and A level curriculum, with the help of an AI model; fields of knowledge follow the twelve fields of the knowledge sphere. The university’s module page, linked from each title, is the authoritative description.
Where does it lead?
Median — the middle earner: half earned more, half less. Pay is for graduates of this subject at this university who finished in 2016-18, not adjusted for inflation; based on 190 graduates.
Discover Uni dataset (HESA and Office for Students, CC BY 4.0, contains HESA data); earnings from the Longitudinal Education Outcomes data (Department for Education) · aggregation level 13, 14, 24, 23
Half of graduates earned between £22,000 and £36,500. Five years on, the median is £36,000. 85% were in work or further study 15 months after finishing; 75% of those in work were in professional or managerial jobs.
All outcome figures7
| Measure | Value | Based on |
|---|---|---|
| Continue after year 10% left | 100% | 10 |
| In work or study, 15 months on13% studying | 85% | 65 |
| Professional or managerial job | 75% | 45 |
| Pay 15 months on, median | £31,500 | 30 |
| Pay 3 years on, median | £28,500 | 190 |
| Pay 5 years on, median | £36,000 | 215 |
What does it cost?
Tuition fee loan — paid straight to the university; repayments start the April after you leave, at 9% of income above the threshold. UK fees are capped by government and rise with inflation; placement and study-abroad years are usually charged at a lower rate.
York fees page · source
About £30,150 in fees over 3 years, covered by a tuition fee loan you repay only when earning above the threshold. International students: £33,500 a year (2027/28).
What do students say?
NSS — a yearly survey of final-year students at every UK university; 60% of this course’s final year answered. Small groups can swing a lot year to year.
National Student Survey, via Discover Uni · 125 students answered
Highest: 92% agreed on question 3; lowest: 54% on question 24.
All questions26
| Question | Agree |
|---|---|
| Question 1 | 83% |
| Question 2 | 68% |
| Question 3 | 92% |
| Question 4 | 91% |
| Question 5 | 86% |
| Question 6 | 78% |
| Question 7 | 79% |
| Question 8 | 80% |
| Question 9 | 77% |
| Question 10 | 75% |
| Question 11 | 85% |
| Question 12 | 69% |
| Question 13 | 90% |
| Question 14 | 63% |
| Question 15 | 92% |
| Question 16 | 81% |
| Question 17 | 74% |
| Question 18 | 75% |
| Question 19 | 88% |
| Question 20 | 91% |
| Question 21 | 92% |
| Question 22 | 90% |
| Question 23 | 71% |
| Question 24 | 54% |
| Question 25 | 67% |
| Question 26 | 82% |
Question texts are published by the Office for Students; the dataset carries only the question numbers.
Modules, entry requirements and fees are facts read from University of York’s course page on 2026-09-19 and may change; the university’s page is authoritative. Descriptions are not reproduced. Outcome figures are from the Discover Uni dataset. University of York is a trade mark of the university; sch.today is independent of it.