Teaching methods
- Computer labs
- Lectures
- Tutorials
- Workshops
Teaching is delivered through a mix of in-person and online methods. The majority of your teaching will be in-person.
Jubilee Campus, Nottingham, UK
Qualification | Entry Requirements | Start Date | UCAS code | Duration | Fees |
---|---|---|---|---|---|
MSci Hons | A*AA (AAA if you have an A in computer science/computing) | September 2025 | G409 | 4 years full-time | £9,535 |
Qualification | Entry Requirements | Start Date | UCAS code | Duration | Fees |
---|---|---|---|---|---|
MSci Hons | A*AA (AAA if you have an A in computer science/computing) | September 2025 | G409 | 4 years full-time | £9,535 |
5 in maths at Standard/Higher Level or GCSE maths, 5 (B) or above. 36 with 6 in computer science at Higher Level, and 5 in maths at Standard/Higher Level or GCSE maths, 5 (B) or above
6.5 (6.0 in each element)
As well as IELTS (listed above), we also accept other English language qualifications. This includes TOEFL iBT, Pearson PTE, GCSE, IB and O level English. Check our English language policies and equivalencies for further details.
For presessional English or one-year foundation courses, you must take IELTS for UKVI to meet visa regulations.
If you need support to meet the required level, you may be able to attend a Presessional English for Academic Purposes (PEAP) course. Our Centre for English Language Education is accredited by the British Council for the teaching of English in the UK.
If you successfully complete your presessional course to the required level, you can then progress to your degree course. This means that you won't need to retake IELTS or equivalent.
Check our country-specific information for guidance on qualifications from your country
GCSE Maths at grade B and GCSE English at grade C
A level ICT or IT do not qualify for the lower level
All candidates are considered on an individual basis and we accept a broad range of qualifications. The entrance requirements below apply to 2023 entry.
Please note: Applicants whose backgrounds or personal circumstances have impacted their academic performance may receive a reduced offer. Please see our contextual admissions policy for more information.
RQF BTEC Nationals
RQF Level 3 BTEC National Extended Diploma D*DD
RQF Level 3 BTEC National Diploma and 1 A level DD + A* or D*D + A in A level Computer Science
RQF Level 3 BTEC National Extended Certificate and 2 A level D + A*A or D + AA including A level Computer Science
Access to HE Diploma
Pass Access to HE Diploma with 42 Level 3 graded credits at Distinction and 3 Level 3 graded at Merit
GCSE English
GCSE English grade 4/C
Due to the volume of applications we receive to our Computer Science courses from highly qualified candidates we operate a ‘gathered field’ selection process. This involves holding applications received by the UCAS equal consideration deadline 31st January 2024 and assessing them in one go. It will take us a bit longer to make decisions on applications, but this ensures that we are able treat all applications fairly and make offers to the most suitable applicants. We aim to make decisions as soon as possible and applicants should expect to hear from us by 31 March at the very latest.
International students must have valid UK immigration permissions for any courses or study period where teaching takes place in the UK. Student route visas can be issued for eligible students studying full-time courses. The University of Nottingham does not sponsor a student visa for students studying part-time courses. The Standard Visitor visa route is not appropriate in all cases. Please contact the university’s Visa and Immigration team if you need advice about your visa options.
At the University of Nottingham, we have a valuable community of mature students and we appreciate their contribution to the wider student population. You can find lots of useful information on the mature students webpage.
Please note that A level ICT or IT do not qualify for the lower level.
GCSE Maths at grade B and GCSE English at grade C
A level ICT or IT do not qualify for the lower level
5 in maths at Standard/Higher Level or GCSE maths, 5 (B) or above. 36 with 6 in computer science at Higher Level, and 5 in maths at Standard/Higher Level or GCSE maths, 5 (B) or above
All candidates are considered on an individual basis and we accept a broad range of qualifications. The entrance requirements below apply to 2023 entry.
Please note: Applicants whose backgrounds or personal circumstances have impacted their academic performance may receive a reduced offer. Please see our contextual admissions policy for more information.
We recognise that applicants have a wealth of different experiences and follow a variety of pathways into higher education.
Consequently we treat all applicants with alternative qualifications (besides A-levels and the International Baccalaureate) on an individual basis, and we gladly accept students with a whole range of less conventional qualifications including:
This list is not exhaustive. The entry requirements for alternative qualifications can be quite specific; for example you may need to take certain modules and achieve a specified grade in those modules. Please contact us to discuss the transferability of your qualification. Please see the alternative qualifications page for more information.
RQF BTEC Nationals
RQF Level 3 BTEC National Extended Diploma D*DD
RQF Level 3 BTEC National Diploma and 1 A level DD + A* or D*D + A in A level Computer Science
RQF Level 3 BTEC National Extended Certificate and 2 A level D + A*A or D + AA including A level Computer Science
Access to HE Diploma
Pass Access to HE Diploma with 42 Level 3 graded credits at Distinction and 3 Level 3 graded at Merit
GCSE English
GCSE English grade 4/C
We make contextual offers to students who may have experienced barriers that have restricted progress at school or college. Our standard contextual offer is usually one grade lower than the advertised entry requirements, and our enhanced contextual offer is usually two grades lower than the advertised entry requirements. To qualify for a contextual offer, you must have Home/UK fee status and meet specific criteria – check if you’re eligible.
Due to the volume of applications we receive to our Computer Science courses from highly qualified candidates we operate a ‘gathered field’ selection process. This involves holding applications received by the UCAS equal consideration deadline 31st January 2024 and assessing them in one go. It will take us a bit longer to make decisions on applications, but this ensures that we are able treat all applications fairly and make offers to the most suitable applicants. We aim to make decisions as soon as possible and applicants should expect to hear from us by 31 March at the very latest.
If you don't meet our entry requirements there is the option to study the engineering and physical sciences foundation programme. If you successfully pass the year, you can progress to any of our computer science courses. There is a course for UK students and one for EU/international students.
At the University of Nottingham, we have a valuable community of mature students and we appreciate their contribution to the wider student population. You can find lots of useful information on the mature students webpage.
Please note that A level ICT or IT do not qualify for the lower level.
On this course, you can apply to study abroad at one of our partner institutions or at University of Nottingham China or University of Nottingham Malaysia. If you are successful in applying to study abroad, you will get the opportunity to broaden your horizons and enhance your CV by experiencing another culture. Teaching is typically in English, but there may be opportunities to study in another language if you are sufficiently fluent. You can choose to study similar modules to your counterparts in the UK or expand your knowledge by taking other options. The school you are joining may also have additional study abroad options available. Please visit the school website for more information.
Please note: In order to study abroad you will need to achieve the relevant academic requirements as set by the university and meet the selection criteria of both the university and the partner institution. The partner institution is under no obligation to accept you even if you do meet the relevant criteria.
On this course you may be able to spend a year working in industry where you could gain first-hand experience of exciting challenges and refine the skills you have built so far in the course. While it is the student’s responsibility to find and secure a year in industry host, the university will support you throughout this process.
Please note: In order to undertake an integrated year in industry, you will have to achieve the relevant academic requirements as set by the University and meet any requirements specified by the industry host. There is no guarantee that you will be able to undertake an integrated year in industry as part of your course. If you are studying a course with an integrated year in industry and you do not secure an integrated year in industry opportunity, you will be required to transfer to the version of the course without an integrated year in industry. This will be reflected in the title of your degree when you graduate.
On this course, you can apply to study abroad at one of our partner institutions or at University of Nottingham China or University of Nottingham Malaysia. If you are successful in applying to study abroad, you will get the opportunity to broaden your horizons and enhance your CV by experiencing another culture. Teaching is typically in English, but there may be opportunities to study in another language if you are sufficiently fluent. You can choose to study similar modules to your counterparts in the UK or expand your knowledge by taking other options. The school you are joining may also have additional study abroad options available. Please visit the school website for more information.
Please note: In order to study abroad you will need to achieve the relevant academic requirements as set by the university and meet the selection criteria of both the university and the partner institution. The partner institution is under no obligation to accept you even if you do meet the relevant criteria.
On this course you may be able to spend a year working in industry where you could gain first-hand experience of exciting challenges and refine the skills you have built so far in the course. While it is the student’s responsibility to find and secure a year in industry host, the university will support you throughout this process.
Please note: In order to undertake an integrated year in industry, you will have to achieve the relevant academic requirements as set by the University and meet any requirements specified by the industry host. There is no guarantee that you will be able to undertake an integrated year in industry as part of your course. If you are studying a course with an integrated year in industry and you do not secure an integrated year in industry opportunity, you will be required to transfer to the version of the course without an integrated year in industry. This will be reflected in the title of your degree when you graduate.
*For full details including fees for part-time students and reduced fees during your time studying abroad or on placement (where applicable), see our fees page.
If you are a student from the EU, EEA or Switzerland, you may be asked to complete a fee status questionnaire and your answers will be assessed using guidance issued by the UK Council for International Student Affairs (UKCISA) .
As a student on this course, you should factor some additional costs into your budget, alongside your tuition fees and living expenses.
You should be able to access most of the books you’ll need through our libraries, though you may wish to purchase your own copies. If you do these would cost around £40.
Due to our commitment to sustainability, we don’t print lecture notes but these are available digitally. You will be given £5 worth of printer credits a year. You are welcome to buy more credits if you need them. It costs 4p to print one black and white page.
If you study abroad, you need to consider the travel and living costs associated with your country of choice. This may include visa costs and medical insurance.
Personal laptops are not compulsory as we have computer labs that are open 24 hours a day but you may want to consider one if you wish to work at home.
International students
We offer a range of international undergraduate scholarships for high-achieving international scholars who can put their Nottingham degree to great use in their careers.
The UK Government has confirmed that the maximum tuition fee for full time UK undergraduate and Initial Teacher Training students studying in England will increase to £9,535 for the 2025/26 academic year. The university will charge the maximum approved fee, which is an increase of £285 per year. For more information, please read our FAQs.
As a student on this course, you should factor some additional costs into your budget, alongside your tuition fees and living expenses.
You should be able to access most of the books you’ll need through our libraries, though you may wish to purchase your own copies. If you do these would cost around £40.
Due to our commitment to sustainability, we don’t print lecture notes but these are available digitally. You will be given £5 worth of printer credits a year. You are welcome to buy more credits if you need them. It costs 4p to print one black and white page.
If you study abroad, you need to consider the travel and living costs associated with your country of choice. This may include visa costs and medical insurance.
Personal laptops are not compulsory as we have computer labs that are open 24 hours a day but you may want to consider one if you wish to work at home.
Over one third of our UK students receive our means-tested core bursary, worth up to £1,000 a year. Full details can be found on our financial support pages.
* A 'home' student is one who meets certain UK residence criteria. These are the same criteria as apply to eligibility for home funding from Student Finance.
Cyber physical systems is an area of computer science that is growing. Our course combines computer science knowledge with specialist skills in how software is combined with hardware to make systems that can sense the world and move and act within it.
Cyber physical systems integrate computation with physical objects and processes. Examples of cyber physical systems are:
driverless vehicles and autonomous transport systems
remote medical monitoring equipment integrated into medical service provision
‘smarthome’ devices for domestic environments
wearables and on-body devices
robotic assistants for e.g., manufacturing or agriculture
Cyber physical systems is an area of computer science that is growing. Our course combines computer science knowledge with specialist skills in how software is combined with hardware to make systems that can sense the world and move and act within it.
Cyber physical systems integrate computation with physical objects and processes. Examples of cyber physical systems are:
driverless vehicles and autonomous transport systems
remote medical monitoring equipment integrated into medical service provision
‘smarthome’ devices for domestic environments
wearables and on-body devices
The key topics covered will include:
machine learning
neural networks
cybersecurity
human-AI interaction
You'll take part in a group project in year two which prepares you for designing and creating the computer systems of the future. Many projects are in collaboration with industry. Previous students have worked with Capital One, Experian, IBM and UniDays. All these companies have offices in Nottingham. This project is great for your CV and can help you make contacts ready for when you start your career.
You may recognise some of our tutors from the Computerphile YouTube series. It is this inspiring teaching that you can expect at Nottingham.
All industries can benefit from cyber physical systems. It can help us grow better crops, improve traffic, simplify management of health conditions and save energy.
Mandatory
Year 1
Assembly Language Programming
Mandatory
Year 1
Computer Architecture
Mandatory
Year 1
Networks
Mandatory
Year 1
Database and Interfaces
Mandatory
Year 1
Fundamentals of Artificial Intelligence
Mandatory
Year 1
Introduction to Software Engineering
Mandatory
Year 1
Mathematics for Computer Scientists
Mandatory
Year 1
Mathematics for Computer Scientists 2
Mandatory
Year 1
Programming and Algorithms
Mandatory
Year 1
Programming Paradigms
Mandatory
Year 2
Algorithms, data structures and efficiency
Mandatory
Year 2
Introduction to Formal Reasoning
Mandatory
Year 2
Developing Maintainable Software
Mandatory
Year 2
Introduction to Cyber Physical Systems
Mandatory
Year 2
Languages and Computation
Mandatory
Year 2
Operating Systems and Concurrency
Mandatory
Year 2
Software Engineering Group Project
Optional
Year 2
Advanced Functional Programming
Optional
Year 2
Artificial Intelligence Methods
Optional
Year 2
C++ Programming
Optional
Year 2
Distributed Systems
Optional
Year 2
Introduction to Human Computer Interaction
Optional
Year 2
Introduction to Image Processing
Optional
Year 2
Software Specification
Optional
Year 2
Introduction to Cyber Physical Systems
Mandatory
Year 3
Computer Security
Mandatory
Year 3
Cyber Physical Systems Dissertation
Mandatory
Year 3
Human-AI Interaction
Mandatory
Year 3
Machine Learning and Inference for Differential Equations
Mandatory
Year 3
Professional Ethics in Computing
Optional
Year 3
Symbolic artificial intelligence
Optional
Year 3
Collaboration and Communication Technologies
Optional
Year 3
Compilers
Optional
Year 3
Computability and Computational Complexity
Optional
Year 3
Computer Graphics
Optional
Year 3
Development Experience
Optional
Year 3
Data Visualisation
Optional
Year 3
Industrial Experience
Optional
Year 3
Data Visualisation Project
Optional
Year 3
Mobile Device Programming
Optional
Year 3
Schools Experience
Optional
Year 3
Software in Society
Optional
Year 3
Music and Mixed Reality
Mandatory
Year 4
Autonomous Robotic Systems
Mandatory
Year 4
Designing Sensor-Based Systems
Mandatory
Year 4
Malware Analysis
Mandatory
Year 4
Topical Trends in Cyber Security
Optional
Year 4
Advanced Algorithms and Data Structures
Optional
Year 4
Advanced Computer Networks
Optional
Year 4
Big Data Learning and Technologies
Optional
Year 4
Development Experience
Optional
Year 4
Games
Optional
Year 4
Industrial Experience
Optional
Year 4
Linear and Discrete Optimisation
Optional
Year 4
Mixed Reality
Optional
Year 4
Group Programming Project
Optional
Year 4
Individual Research Project
Optional
Year 4
Individual Programming Project
Optional
Year 4
Programs, Proofs and Types
Optional
Year 4
Project in Advanced Algorithms and Data Structures
Optional
Year 4
Schools Experience
Optional
Year 4
Simulation and Optimisation for Decision Support
Optional
Year 4
Software Engineering Management
Optional
Year 4
Handling Uncertainty with Fuzzy Sets and Fuzzy Systems
Optional
Year 4
Schools Experience
Optional
Year 4
Data science with machine learning
Optional
Year 4
Simulation and Optimisation for Decision Support
The above is a sample of the typical modules we offer, but is not intended to be construed or relied on as a definitive list of what might be available in any given year. This content was last updated on Tuesday 4 March 2025. Due to timetabling availability, there may be restrictions on some module combinations.
This module takes a practical approach to give students a basic understanding of the fundamental architecture of computers and software.
It will introduce low-level machine code instructions and show how these can be combined to form programs. We then look at higher-level programming structures, like conditional statements, loops, arrays and functions, to show how they’re implemented at machine code level.
This module shows how modern computer systems are made of hierarchical layers of functionality which build on and abstract the layers below.
You’ll begin by learning how the simple building blocks of digital logic can be put together in different ways to build an entire computer. Then we’ll go on to consider how the design can improve performance, how multicore/ multiprocessor systems are programmed and the how the software in an operating systems manages computing resources.
You’ll learn how a computer communicates with other computers at a fundamental level. This will help you to build an understanding of the fundamental architecture of computer networks.
We’ll examine how the layers of modern computer systems are implemented in practice, by comparing and contrasting different approaches to solve common problems.
You’ll also discover how modern IP networks can be programmed using the sockets API.
This module considers both the structure of databases, including how to make them fast, efficient and reliable, and the appropriate user interfaces which will make them easy to interact with for users. You will start by looking at how to design a database, gaining an understanding of the standard features that management systems provide and how you can best utilise them, then develop an interactive application to access your database.
Through the lectures and computing sessions you will learn how to design and implement systems using a standard database management system, web technologies and GUI interfaces through practical programming/system examples.
You will gain a broad overview of the fundamental theories and techniques of artificial intelligence (AI).
You’ll explore how computers can produce intelligent behaviour, and will consider topics such as the history of AI, AI search techniques, neural networks, data mining, philosophical and ethical issues, and knowledge representation and reasoning.
You will spend two hours per week in lectures for this module.
You will be introduced to the concept of software engineering and will be taken through the software development process: deciding exactly what should be built (requirements and specification), designing how it should be built (software architecture), development strategies (implementation and testing), and maintaining change (software evolution and maintenance).
You’ll cover the basic concepts in mathematics which are of relevance to the computer scientists.
These include:
You'll cover the following basic concepts in mathematics which are of relevance to the development of computer software. Topics which will be covered include linear algebra and calculus.
The module introduces basic principles of programming and algorithms. It covers fundamental programming constructs, such as types and variables, expressions, control structures, and functions.
You'll learn how to design and analyse simple algorithms and data structures that allow efficient storage and manipulation of data. You'll also become familiar with basic software development methodology.
You will spend around six hours per week in lectures, computer classes and tutorials.
In this module you will learn the basic principles of the object-oriented and functional approaches to programming, using the languages Java and Haskell. You will also see how they can be used in practice to write a range of different kinds of programs.
This module covers important aspects of algorithms and data structures. You will study the general principles along with their efficiencies. You will learn the mathematical terms of the computational resources used to support algorithm design decisions.
You'll study topics such as:
sorting algorithms
heaps
binary search trees
hashmaps
graph algorithms
There is emphasis on understanding data structures and algorithms. This will enable you to design and use them for problem-solving. You will develop the mathematical and formal reasoning skills required to understand software systems, in particular their efficiency.
The module will give you a good working knowledge of some common algorithms and data structures. You will gain an understanding of the issues involved in designing a program for a specific task.
This module is an introduction to formal reasoning with applications in program verification and Mathematics. Students will use an interactive proof system like Lean or Coq to learn how to make precise statements and how to verify them using formal proofs. Topics covered include propositional logic, classical principles, predicate logic, the theories of Booleans, natural numbers, lists and trees, and verification of simple algorithms.
To build on first year programming modules and further develop programming ability and experience, including ability to develop and understand a large piece of software, build user interfaces and follow a realistic design and testing procedure.
Topic examples include: design diagrams and modelling; GUI programming; testing software engineering methodologies (including agile development and tools), refactoring; design patterns and SOLID principles; all in the context of understanding anddeveloping maintainable third-party code. You will spend around three hours per week in lectures and two hours per week in computer classes studying for this module.
You will gain a broad overview of the fundamental theories and techniques of cyber physical systems. You’ll explore the architecture of cyber physical systems as a network of interacting elements with physical input and output and intelligent mechanisms, increasing their adaptability, autonomy, efficiency, reliability, safety, and usability. You will gain an understanding of the various potential applications of cyber physical systems including autonomous automotive systems, medical monitoring and process control systems.
You'll investigate classes of formal language and the practical uses of this theory, applying this to a series of abstract machines ultimately leading to a discussion on what computation is and what can and cannot be computed.
You'll focus in particular on language recognition, but will study a range of topics including:
This module builds on parts of the ACE module addressing data structures and formal reasoning and introduces concepts which are important to understand the analysis of algorithms in terms of their complexity.
This course covers the fundamental principles that underpin operating systems and concurrency. Topics covered include the architecture of operating systems, process and memory management, storage, I/O, and virtualisation. The principles of concurrency will be introduced from both the perspective of an operating system and user applications. Specific topics on concurrency include: hardware support for concurrency; mutual exclusion and condition synchronisation; monitors; safety and liveness properties of concurrent algorithms, and the use of threads and synchronisation.
Working in groups of around five to six people, you’ll be assigned a supervisor who will provide you with a short written description of a computer application to be designed, programmed, and documented during the course of the module. Each group will meet twice a week, once with your supervisor and once without; you’ll also have four introductory one hour lectures.
Building upon the introductory Functional Programming module in year one, you’ll focus on a number of more advanced topics such as:
You’ll spend around four hours per week in lectures and computer classes.
This module builds on the Fundamentals of Artificial Intelligence module. The emphasis is on building on the AI research strengths in the School.
You will be introduced to key topics such as AI techniques, fuzzy logic and planning, and modern search techniques such as Iterated Local Search, Tabu Search, Simulated Annealing, Genetic Algorithms, and Hyper-heuristics, etc.
You will also explore the implementation of some AI techniques.
You will cover the programming material and concepts necessary to obtain an understanding of the C++ programming language. You will spend around four hours per week in lectures and computer classes and will be expected to take additional time to practice and to produce your coursework.
This module covers the following topics:
An overview of the field of human computer interaction which aims to understand people's interactions with technology and how to apply this knowledge in the design of usable interactive computer systems.
The module will introduce the concept of usability and will examine different design approaches and evaluation methods.
This module introduces the field of digital image processing, a fundamental component of digital photography, television, computer graphics and computer vision.
You’ll cover topics including:
You’ll spend around three hours in lectures and computer classes each week.
You will cover two main aspects of the software engineering process in depth: requirements and design. This will cover modern approaches to large scale requirements and engineering and specification and approaches to systems and architectural design.
In this module you will gain a broad overview of the fundamental theories and techniques of cyber-physical systems. You will explore the architecture of cyber physical systems as a network of interacting elements with physical input and output and intelligent mechanisms, and develop an understanding of how to increase their adaptability, autonomy, efficiency, reliability, safety, and usability in different contexts of use.
You will explore the various potential applications of cyber-physical systems including autonomous automotive systems, assistive robots to support health and well-being, medical monitoring and process control systems.
Spending four hours a week in lectures and computer classes, you’ll cover the following topics:
You’ll perform an individual project on a topic in computer science with emphasis on cyber physical. You’ll produce a 15-25,000 word project report under the guidance of your supervisor. The topic can be any area of the subject which is of mutual interest to both you and your supervisor, but should involve a substantial cyber physical component.
This module is an introduction to the design of human-AI interaction to ensure the AI-driven systems we build are beneficial and useful to people.
The module will cover practical design topics including methods and techniques such as natural language processing and human-robot interaction. The module will also consider societal and theoretical concerns of human-AI interaction, including the ethics of AI, responsible innovation, trust, accountability and explainable AI.
The practical component of the module will involve building AI-driven systems that drive conversational experiences, such as a text-based ‘chatbots’ and speech-controlled services/ ‘skills’, involving automatic speech recognition and natural language processing.
Providing you with an introduction to machine learning, pattern recognition, and data mining techniques, this module will enable you to consider both systems which are able to develop their own rules from trial-and-error experience to solve problems, as well as systems that find patterns in data without any supervision. In the latter case, data mining techniques will make the generation of new knowledge possible, including very big data sets. This is now fashionably termed 'big data' science.
You'll cover a range of topics including:
This module looks broadly into professional ethics within the scope of the computing discipline. It covers a range of professional, ethical, social and legal issues in order to study the impact that computer systems have in society and the implications of this from the perspective of the computing profession. In particular, the module covers topics such as introduction to ethics, critical thinking, professionalism, privacy, intellectual and intangible property, cyber-behaviour, safety, reliability accountability, all these within the context of computer systems development.
This module examines how knowledge can be represented symbolically and how it can be manipulated in an automated way by reasoning programs.
Some of the topics you’ll cover include:
In this module, you will consider the design of collaboration and communication technologies used in a variety of different contexts including workplace, domestic and leisure environments. You will consider the basic principles of such technologies, explore the technologies from a social perspective, consider their impact on human behaviour and critically reflect on their design from a human-centred perspective.
You’ll examine aspects of language and compiler design by looking at the techniques and tools that are used to construct compilers for high level programming languages. Topics covered include: parsing; types and type systems; run-time organisation; memory management; code generation; and optimisation. You’ll spend around four hours each week in lectures and computer classes.
You will begin by considering the attempts to characterise the problems that can theoretically be solved by physically possible computational processes, along with the practical implications. You will then consider the area of complexity theory, looking at whether or not problems can be solved under limitations on resources such as time or space. You will examine the classes P and NP, and how to show problems are NP-complete. You will also consider other practically important classes such as: PSPACE, and its relevance to adversarial games, and NC, and its relevance to understanding of parallel computation and the limitations of its effectiveness. You will also consider classes BPP for probabilistic computation, and BQP for quantum computing, along with ideas of post-quantum cryptography based on NP-hard problems. You will look at the practical implications of computability and complexity in the context of real-world problems, such as vehicle routing, scheduling, timetabling, machine learning, and quantum computing.
You’ll examine the principles of 3D computer graphics, focusing on modelling the 3D world on the computer, projecting onto 2D display and rendering 2D display to give it realism.
Through weekly lectures and laboratory sessions, you’ll explore various methods and requirements in 3D computer graphics, balancing efficiency and realism.
Students taking part in activities relating to programming experience such as developing apps in their spare time, contributing to open source projects, or building things in hackathons may receive academic credit for showing they have experience and excellent development skills. The emphasis of this module is that you provide evidence of your significant extra-curricular software development experience. Students will only be able to register for this module with the approval of the convenor/school, once the material for assessment has been checked.
Data Visualisation is the process of extracting knowledge from complex data, and presenting it to users in a manner that is appropriate to their needs. This module provides the foundation for effective Data Visualisation design. You will learn about the different approaches to constructing visualisations, including the representation of ambiguous and time-series data. You will also learn about cognitive and visual perception theories that help explain how humans process information visually, and how to apply these to the design of effective visualisations.
If you want to learn advanced design and implementation of interactive Data Visualisation, you should consider taking the linked module COMP3022 Data Visualisation Project, of which this module is a pre-requisite. Together, these two modules form an integrated 20 credit programme of study.
Students taking part in activities relating to industrial experience in a computer science or software engineering enterprise may obtain academic credit for them. A full list of approved activities is available from the School Office. Activities will be related to demonstration of involvement in development of complex software in a team situation, subject to quality control procedures of an industrial or business practice. Evidence of working to and completing tasks relating to targets set by an employer and directly related to software development/programming will be required. Students will have undertaken an agreed number of hours on the activities, identified personal goals and targets in relation to these activities and maintained a reflective portfolio as a record of evidence of their competence and achievements. The nature of the activities undertaken will be subject to the approval of the module convenor before acceptance on the module.
This module provides an opportunity to put into practice knowledge and understanding that you have developed through the linked module COMP3021. You will gain practical experience of how to design and evaluate a distinctive interactive visualisation which presents information gathered from a complex and interesting data source.
Your project will be supported by seminars that introduce practical topics that are essential to effective visualisation design, and which have not been considered in COMP3021, including specific algorithms for extracting information from data, structured processes for designing visualisations and selected elements of design aesthetics (such as colour choice and typography). You will gain experience in web-based technologies that enable the implementation of multi-layered and interactive data visualisations.
You’ll look at the development of software applications for mobile devices, with a practical focus on the Android operating system. You’ll consider and use the software development environments for currently available platforms and the typical hardware architecture of mobile devices. You’ll spend around three hours per week in lectures and computer classes.
Students taking part in approved activities, such as running code clubs in schools, organising school computing activity days, or becoming active STEM ambassadors, may receive academic credit for demonstrating they have actively contributed to the development of younger students. Students will have undertaken an agreed number of hours on the activities, identified personal goals and targets in relation to these activities and maintained a reflective portfolio as a record of evidence of their competence and achievements. Students will only be able to register for this module with the approval of the convenor/school, once the material for assessment has been discussed.
The aim of module is to promote understanding of the relationships between software and society. We will cover key historical and contemporary developments in software to develop a holistic perspective of the role software plays in the wider social world. We will also consider how current research and theory can help us understand the impacts of software, including how impacts differ across different demographics. In addition, the module will explore how software can benefit social good, for instance through quality and sustainability, and by addressing social problems.
This module will introduce music and computer science students to diverse approaches to combining music/audio with mixed reality (immersive technologies, AI, VR) in a series of lectures by Music and Computer Science staff/specialists. Students will form groups to develop collaborative projects that explore the creative meeting point of technology, music and interactivity.
This module introduces you to the computer science of robotics, giving you an understanding of the hardware and software principles appropriate for control and localisation of autonomous mobile robots. A significant part of the module is laboratory-based, utilising physical robotic hardware to reinforce the theoretical principles covered. You will cover a range of topics including basic behavioural control architectures, multi-source data aggregation, programming of multiple behaviours, capabilities and limitations of sensors and actuators, and filtering techniques.
You will gain knowledge and hands-on experience of design and technical development of sensor-based systems. You will learn about the human-computer interaction challenges that need to be considered when creating ubiquitous computing systems along with strategies for addressing them, so as to create effective, appropriate and compelling user experiences.
This module looks at the practice of malware analysis, looking at how to analyse malicious software to understand how it works, how to identify it, and how to defeat or eliminate it.
You will look at how to set up a safe environment in which to analyse malware, as well as exploring both static and dynamic malware analysis. Although malware takes many forms, the focus of this module will primarily be on executable binaries. This will cover object file formats and the use of tools such as debuggers, virtual machines, and disassemblers to explore them. Obfuscation and packing schemes will be discussed, along with various issues related to Windows internals.
The module is practical with encouragement to safely practice the skills you're taught.
This module involves discussing current topics relating to computer security. Each week, as individuals or as a group, you will make a presentation on an assigned topic in computer security followed by a discussion. You will meet with a member of staff to discuss and plan the form of the presentation. You'll also prepare questions for the audience and write a concise (10 page) summary of the material.
The aim of the module is to gain a deeper understanding of the important topics in computer security. You'll learn how to summarise research and present it to a peer audience.
You'll study the theory used in the design and analysis of advanced algorithms and data structures. Topics covered include string algorithms (such as for string matching, longest common subsequence), graph algorithms (such as for minimum cuts and maximum flows, and Google's pagerank algorithm), advanced data structures (such as Fibonacci heaps and Bloom filters), and randomised search heuristics (evolutionary algorithms). You'll learn all the necessary probability theory will be introduced, including random variables and concentration inequalities.
The theory is practiced in weekly labs where we learn how to implement the algorithms and data structures as functional and imperative programs (using the languages Haskell and C), and apply these to solve large instances of real-world problems.
This module will provide you with an advanced knowledge of computer communications networks, using examples from all-IP core telecommunications networks to illustrate aspects of transmission coding, error control, media access, internet protocols, routing, presentation coding, services and security.
The module will describe Software Defined Networks (SDNs) and provide examples of using them to enable very large scale complex network control. It will also provide advanced knowledge of various routing and query protocols in:
'Big Data' involves data whose volume, diversity and complexity requires new technologies, algorithms and analyses to extract valuable knowledge, which go beyond the normal processing capabilities of a single computer. The field of Big Data has many different faces such as databases, security and privacy, visualisation, computational infrastructure or data analytics/mining.
'Big Data' involves data whose volume, diversity and complexity requires new technologies, algorithms and analyses to extract valuable knowledge, which go beyond the normal processing capabilities of a single computer. The field of Big Data has many different faces such as databases, security and privacy, visualisation, computational infrastructure or data analytics/mining.
This module will provide the following concepts:
Students taking part in activities relating to programming experience such as developing apps in their spare time, contributing to open source projects, or building things in hackathons may receive academic credit for showing they have experience and excellent development skills. The emphasis of this module is that you provide evidence of your significant extra-curricular software development experience. Students will only be able to register for this module with the approval of the convenor/school, once the material for assessment has been checked.
This module covers the history, development and state-of-the-art in computer games and technological entertainment.
You will gain an appreciation of the range of gaming applications available and be able to chart their emergence as a prevalent form of entertainment. You will study the fundamental principles of theoretical game design and how these can be applied to a variety of modern computer games.
In addition, you will study the development of games as complex software systems. Specific software design issues to be considered will include the software architecture of games, and the technical issues associated with networked and multiplayer games.
Finally, you will use appropriate software environments to individually develop a number of games to explore relevant theoretical design and practical implementation concepts.
Students taking part in activities relating to industrial experience in a computer science or software engineering enterprise may obtain academic credit for them. A full list of approved activities is available from the School Office. Activities will be related to demonstration of involvement in development of complex software in a team situation, subject to quality control procedures of an industrial or business practice. Evidence of working to and completing tasks relating to targets set by an employer and directly related to software development/programming will be required. Students will have undertaken an agreed number of hours on the activities, identified personal goals and targets in relation to these activities and maintained a reflective portfolio as a record of evidence of their competence and achievements. The nature of the activities undertaken will be subject to the approval of the module convenor before acceptance on the module.
This module provides an entry point to computational optimisation techniques, in particular for modelling and solving linear and discrete optimisation problems like diet optimisation, network flows, task assignment, scheduling, bin-packing, travelling salesmen, facility location, vehicle routing and related problems.
In this module, you will learn to interpret and develop algebraic models for a variety of real-world linear and discrete optimisation problems to then use powerful optimization software (linear, integer and mixed-integer solvers) to produce a solution.
The module covers topics such as:
Optimisation technology is ubiquitous in today's world, for applications in logistics, finance, manufacturing, workforce planning, product selection, healthcare, and any other area where the limited resources must be used efficiently. Optimisation enables prescriptive analytics in order to support and automate decision-making.
This module focuses on the possibilities and challenges of interaction beyond the desktop. Exploring the 'mixed reality continuum' - a spectrum of emerging computing applications that runs from virtual reality (in which a user is immersed into a computer-generated virtual world) at one extreme, to ubiquitous computing (in which digital materials appear embedded into the everyday physical world - often referred to as the 'Internet of Things') at the other. In the middle of this continuum lie augmented reality and locative media in which the digital appears to be overlaid upon the physical world in different ways.
You will gain knowledge and hands-on experience of design and development with key technologies along this continuum, including working with both ubiquitous computing based sensor systems and locative media. You will learn about the Human-Computer Interaction challenges that need to be considered when creating mixed reality applications along with strategies for addressing them, so as to create compelling and reliable user experiences.
Students undertake a programming project for an external client in self-formed groups of two to four students under the supervision of an academic member of staff. The client, which can be a company, charity, research group etc., but not the supervisor, provides a problem that requires a sufficiently challenging piece of software to be developed. The client and project idea could be provided by the students or the supervisor. However, projects must have aspects that are relevant to each student's programme of study; eg, there needs to be an artificial intelligence (AI) aspect if any AI students are involved.
The main assessed outputs are the developed software, including any end-user documentation, along with a 5,000-word document that outlines the development, design and implementation of the software, highlighting the most interesting aspects. The software must be developed in a professional and systematic manner appropriate for the problem domain. The assessment is informed by a statement from the external client on how well the developed software addresses the problem. Additionally, each student submits an individual 5,000-word report explaining his or her own contributions and giving a critical appraisal of how the project went, including group dynamics and the contributions of others.
Students undertake a research project in computer science supervised by an academic member of staff. The topic should fall within the supervisor's research interests and must further be relevant to the student's programme of study; in particular, projects undertaken by artificial intelligence (AI) students must have a strong AI focus. The project may be proposed by either the supervisor or the student, and may be theoretical, empirical, or even of survey type depending on what is appropriate and feasible for the area and topic. Projects, however, must ultimately be agreed with the supervisor concerned.
The results from the project are to be distilled into a conference-format research paper, authored by the student and constituting the main assessed output. There may, however, be further deliverables as dictated by the nature of the project. Any such deliverables are to be submitted (electronically) as supplementary material. A revised version of the paper, possibly co-authored with the supervisor, may subsequently be submitted for publication to an external venue, such as a conference or journal, if the work is judged to be of sufficiently high standard.
You will undertake a programming project relevant for AI for an External Client under the supervision of an academic member of staff.
The client, which can be a company, charity, research group etc., provides a problem that requires a sufficiently challenging piece of software to be developed. The client and project idea could be provided by the students or the supervisor. Each project must ultimately be agreed with the concerned Supervisor.
The main assessed outputs are the developed software, including any end-user documentation, along with a 15,000-word document that outlines the development, design and implementation of the software, highlighting the most interesting aspects.
The software must be developed in a professional and systematic manner appropriate for the problem domain.
The assessment is informed by a statement from the External Client on how well the developed software addresses the problem.
This module focuses on some of the fundamental mathematical concepts that underlie modern programming and programming languages emphasizing the role of types. We will use a dependently typed programming language/interactive proof system (eg Agda) to implement some concepts on a computer.
Example topics include
You will engage in a mix of lectures and working in the lab with an interactive proof system.
This project involves a self-guided study of a selected advanced algorithm or data structure. The outcome of the project is an analysis and implementation of the algorithm or data structure, as well as an empirical evaluation, preferably on a real-world data set of significant size.
Students taking part in approved activities, such as running code clubs in schools, organising school computing activity days, or becoming active STEM ambassadors, may receive academic credit for demonstrating they have actively contributed to the development of younger students. Students will have undertaken an agreed number of hours on the activities, identified personal goals and targets in relation to these activities and maintained a reflective portfolio as a record of evidence of their competence and achievements. Students will only be able to register for this module with the approval of the convenor/school, once the material for assessment has been discussed.
This module offers insight into the applications of selected methods of decision support.
The foundations for applying these methods are derived from:
Throughout the module, you will become more competent in choosing and implementing the appropriate method for the particular problem at hand. You will spend five hours per week in lectures, workshops, and computer classes for this module.
This module is part of the software engineering theme.
This module covers the following topics:
In this module, you’ll learn how to handle uncertainty, particularly focusing on the vagueness associated with using fuzzy sets and similar approaches. You will gain a thorough understanding of a range of key topics, including:
You’ll also be exposed to some of the cutting-edge research topics in uncertain data and decision-making, e.g., capturing uncertainty in real-world scenarios, modelling it, and aggregating (uncertain) information from multiple sources.
Students taking part in approved activities, such as running code clubs in schools, organising school computing activity days, or becoming active STEM ambassadors, may receive academic credit for demonstrating they have actively contributed to the development of younger students. Students will have undertaken an agreed number of hours on the activities, identified personal goals and targets in relation to these activities and maintained a reflective portfolio as a record of evidence of their competence and achievements. Students will only be able to register for this module with the approval of the convenor/school, once the material for assessment has been discussed.
This module will enable you to appreciate the range of data analysis problems that can be modelled computationally and a range of techniques that are suitable to analyse and solve those problems.
Topics covered include:
Spending around four hours each week in lectures and computer classes, appropriate software (eg. R, Weka) will be used to illustrate the topics you'll cover.
This module offers insight into the applications of selected methods of decision support.
The foundations for applying these methods are derived from:
Throughout the module, you will become more competent in choosing and implementing the appropriate method for the particular problem at hand. You will spend five hours per week in lectures, workshops, and computer classes for this module.
Teaching methods
Teaching is delivered through a mix of in-person and online methods. The majority of your teaching will be in-person.
You will be given a copy of our marking criteria which provides guidance on how your work is assessed. Your work will be marked in a timely manner and you will receive regular feedback. The pass mark for each module is 40%.
Your final degree classification will be based on marks gained for your second, third and fourth years of study. Year two is worth 20%, year three is worth 40% and year four is worth 40%.
Assessment methods
As a guide, one credit equals approximately 10 hours of work. You will spend around half of your time in lectures, tutorials, mentoring sessions and computer labs. The remaining time is spent in independent study. Tutorial groups are usually made up of eight students. They meet every other week during term-time. Core modules are taught by a mixture of professors, associate/assistant professors and teaching associates together with PhD students and research staff.
This is a new course for 2022 entry so we don't have any graduates yet. However, we know that graduates from our other courses have worked in all types of companies and industries. Typical roles include:
Others choose to continue studying for a PhD.
Graduates with skills in cyber physical systems could expect to work in jobs or industries such as:
Other opportunities to help your employability
The Nottingham Internship Scheme provides a range of work experience opportunities and internships throughout the year.
The Nottingham Advantage Award is our free scheme to boost your employability. There are over 200 extracurricular activities to choose from.
92.70% of undergraduates from the School of Computer Science secured employment or further study within 15 months of graduation. The average annual salary for these graduates was £33,082.
HESA Graduate Outcomes (2017-2021 cohorts). The Graduate Outcomes % is calculated using The Guardian University Guide methodology. The average annual salary is based on graduates working full-time within the UK.
Studying for a degree at the University of Nottingham will provide you with the type of skills and experiences that will prove invaluable in any career, whichever direction you decide to take.
Throughout your time with us, our Careers and Employability Service can work with you to improve your employability skills even further; assisting with job or course applications, searching for appropriate work experience placements and hosting events to bring you closer to a wide range of prospective employers.
Have a look at our careers page for an overview of all the employability support and opportunities that we provide to current students.
The University of Nottingham is consistently named as one of the most targeted universities by Britain’s leading graduate employers.*
*Ranked in the top ten in The Graduate Market in 2013-2020, High Fliers Research.
Jubilee Campus has eco-friendly buildings, alongside green spaces, wildlife and a lake. You can walk to University Park Campus in around 20 minutes or catch a free hopper bus. Nottingham city centre is 20 minutes away by public bus.
Jubilee Campus has eco-friendly buildings, alongside green spaces, wildlife and a lake. You can walk to University Park Campus in around 20 minutes or catch a free hopper bus. Nottingham city centre is 20 minutes away by public bus.
Faculty of Science
Qualification
BSc Hons
Entry requirements
A*AA (AAA if you have an A in computer science/computing)
UCAS code
G400
Duration
3 years full-time
Start date
Sep 2025
Faculty of Science
Qualification
MSci Hons
Entry requirements
A*AA/AAA
UCAS code
G404
Duration
4 years full-time
Start date
Sep 2025
Faculty of Science
Qualification
MSci Hons
Entry requirements
A*AA/AAA
UCAS code
G406
Duration
4 years full-time
Start date
Sep 2025
Faculty of Science
Qualification
BSc Hons
Entry requirements
A*AA/AAA
UCAS code
G407
Duration
4 years full-time
Start date
Sep 2025
Faculty of Science
Qualification
MSci Hons
Entry requirements
A*AA - AAA
UCAS code
G4G1
Duration
4 years full-time
Start date
Sep 2025
Faculty of Science
Qualification
BSc Hons
Entry requirements
A*AA - AAA
UCAS code
G4G7
Duration
3 years full-time
Start date
Sep 2025
Faculty of Science
Qualification
MSci Hons
Entry requirements
A*AA - AAA
UCAS code
G4GA
Duration
4 years full-time
Start date
Sep 2025
If you’re looking for more information, please head to our help and support hub, where you can find frequently asked questions or details of how to make an enquiry.
If you’re looking for more information, please head to our help and support hub, where you can find frequently asked questions or details of how to make an enquiry.