Triangle

Course overview

Discover computer science

Explore research-level topics and engage in professional software development with our four-year MSci course.

Join our world and be taught by research-active academics who are genuinely excited about what they teach.

Key facts

  • Gain hands-on experience with web and mobile applications, games, social networks, and artificial intelligence.
  • Access 24-hour dedicated computer labs, group and private study spaces, a pool of Linux workstations, virtual servers and more.
  • Study in a UK top 10 computer science department for research (Research Excellence Framework, 2014)
  • Study a course accredited by the BCS and compliant with the Association for Computing Machinery (ACM) and the Institute of Electrical and Electronic Engineers (IEEE) curriculum guidance.

Prior-programming experience

Programming experience is not compulsory for entry to any of our courses. The first year is designed to bring all students to the same level of knowledge and skill.

Unlock your potential

If you want to understand how to program today's computers and to design and implement the systems of the future, then computer science at Nottingham is for you. 

At Nottingham, you will learn:

  • current computing practice that can be applied immediately after graduation
  • foundational aspects of computing that will be of lasting value as technology changes over time
  • research-level topics that will play an important role in future developments

What's an MSci?

MSci degrees are undergraduate-level courses which last for four years and have an integrated masters qualification. They are the equivalent to a bachelors degree plus a masters level qualification. These courses usually provide additional industry and/or research experience to enhance your future prospects. An MSci is excellent preparation for further study such as a PhD.

If you choose to study an MSci, your student loan will cover tuition fees and living costs for the additional year too (home/EU students only).  If you are unsure about whether to choose an MSci or BSc, we recommend you choose the MSci to secure your funding. You can apply to transfer to the BSc subject to progression criteria. 

Jubilee Campus

Futuristic architecture, eco-friendly buildings and innovative technologies make Jubilee Campus an inspiring place to be. Highlights include a library on the lake and the Aspire sculpture, one of the tallest free-standing public works of art in the UK. 

Over 6,000 undergraduate and postgraduate students study on Jubilee Campus along with researchers working in our many centres and institutes. 

The campus has everything you need to experience student life. There are cafes, restaurants and halls of residences as well as a Students’ Union shop and a sports centre.

As Jubilee Campus is only a short walk or free hopper bus ride from University Park Campus, you can take advantage of social activities on both campuses. Jubilee is less than two miles away from the city centre. Regular bus connections make travelling to and from the city quick and easy.  

Take a look at the School of Computer Science Instagram to see what life on campus is like. 


Entry requirements

All candidates are considered on an individual basis and we accept a broad range of qualifications. The entrance requirements below apply to 2020 entry.

UK entry requirements
A level AAA (AAB if you have an A in computer science/computing)

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.

Required subjects

Five GCSEs including maths, 5 (B) or above

IB score 34 with 5 in maths at Standard/Higher Level or GCSE maths, 5 (B) or above. 32 with 6 in HL computer science, and 5 in maths at Standard/Higher Level or GCSE maths, 5 (B) or above

A levels and GCSEs

AAA (AAB if you have an A in computer science/computing); plus five GCSEs including maths, 5 (B) or above

English language requirements 

IELTS 6.5 (no less than 6.0 in any element)

For details of other English language tests and qualifications we accept, please see our entry requirements page.

If you require additional support to take your language skills to the required level, you may be able to attend a presessional course at the Centre for English Language Education, which is accredited by the British Council for the teaching of English in the UK. 

Students who successfully complete the presessional course to the required level can progress onto their chosen degree course without retaking IELTS or equivalent.

Alternative qualifications 

For details see the alternative qualifications page 

foundation year is available for all our courses

Flexible admissions policy

In recognition of our applicants’ varied experience and educational pathways, the University of Nottingham employs a flexible admissions policy. We may make some applicants an offer lower than advertised, depending on their personal and educational circumstances.

Please see the University’s admissions policies and procedures for more information.

Mature 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.

Learning and assessment

How you will learn

How you will be assessed

Teaching

You will learn through a wide variety of activities including formal lectures, small-group tutorials, practical computer labs, and self-directed study. 

Assessment

Lecture-based modules will typically be assessed at the end of each semester. 

A substantial number of computer science modules have an element of practical coursework. 

Study support

As well as receiving support from your personal tutor, you will also have access to our first-year Peer Mentoring Scheme.

Study abroad

The University offers a range of study abroad opportunities. Visit the Computer Science website to find out more. 

Study Abroad and the Year in Industry are subject to students meeting minimum academic requirements. Opportunities may change at any time for a number of reasons, including curriculum developments, changes to arrangements with partner universities, travel restrictions or other circumstances outside of the university’s control. Every effort will be made to update information as quickly as possible should a change occur.

Modules

Explore the key concepts and tools underpinning modern computer science and learn to work in a variety of programming paradigms including imperative, object-oriented and functional languages such as C, Java and Haskell.

  • Study the architecture of computers at the chip and system level
  • Explore the basics of artificial intelligence
  • Meet the areas of mathematics you will need later in the course

Core modules

Programming and Algorithms

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.

Computer Fundamentals

You will gain a basic understanding of the fundamental architecture of computers and computer networks.

You’ll learn how the simple building blocks of digital logic can be put together in different ways to build an entire computer.

You’ll also learn how modern computer systems and networks are constructed of hierarchical layers of functionality which build on and abstract the layers below.

You will spend five hours per week in tutorials, lectures and computer classes.

Systems and Architecture

This module runs alongside 'Computer Fundamentals' and provides an expanded view by considering how real computer systems (such as ARM, x86, Linux and *BSD) and networks work.

You’ll also cover the principles of the lower level implementation of I/O using polling and interrupts, and the use of exceptions; how memory and storage are organized as well addressing the issues arising from multicore systems. 

You’ll spend around five hours per week in tutorials, lectures and computer classes.

Mathematics for Computer Scientists

You’ll cover the basic concepts in mathematics which are of relevance to the computer scientists.

These include:

  • logic
  • sets
  • functions and relations
  • graphs
  • induction
  • basic probability
  • statistics and matrices
Database and Interfaces

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.

Software Engineering

You will focus on the fact that programming is only one step of the larger software engineering process. To develop good software, you must gather requirements, design it well, plan the development, do the programming, have a testing strategy, test the parts and the product as a whole, and have a maintenance strategy after it was delivered.

You will spend around two-three hours per week discussing the stages in lectures, whilst carrying out activities in labs that help you understand the underlying issues.

Programming Paradigms

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.

Fundamentals of Artificial Intelligence

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. 

The above is a sample of the typical modules we offer but is not intended to be construed and/or relied upon as a definitive list of the modules that will be available in any given year. Modules (including methods of assessment) may change or be updated, or modules may be cancelled, over the duration of the course due to a number of reasons such as curriculum developments or staffing changes. Please refer to the module catalogue for information on available modules. This content was last updated on Tuesday 11 August 2020.

Put the theory and skills you have learned in year one into practice by taking part in a software engineering group project, many of which have an industry partner.

Study programming and the underlying theory of computation in greater depth, exploring more advanced algorithms and their use in operating systems.

Begin to shape your own course in the second semester by choosing modules on topics in different areas of computer science, including:

  • human-computer interaction
  • image processing
  • C++ programming
  • functional programming
  • advanced artificial intelligence

Core modules

Algorithms, Correctness and Efficiency

This module covers important aspects of algorithms, namely their correctness and efficiency.

You’ll study topics such as:

  • proofs in propositional logic and predicate logic
  • classical vs. intuitionistic reasoning
  • basic operations on types
  • verification of list based programs
  • introduction to program specification and program correctness

To address the issue of efficiency we cover the use of mathematical descriptions of the computational resources needed to support algorithm design decisions. The emphasis is upon understanding data structures and algorithms so as to be able to design and select them appropriately for solving a given problem.

Software Application and Design

This module builds on and further develops basic software design practices. It covers design patterns, data processing, regression testing, networking, and GUI programming. You'll learn how to read, understand, modify and extend a large piece of software. You'll become familiar with GUI design guidelines and usability heuristics. You will spend around six hours per week in lectures, computer classes and tutorials.

Operating Systems

This module covers a range of issues relating to operating systems, and distributed and parallel computing. Topics in operating systems include the architecture of operating systems, process and memory management, storage, I/O, and virtualisation. Topics in parallel and distributed computing include parallelism vs concurrency, task and data-parallel based decomposition, parallel architectures, parallel algorithms and programming.

Software Engineering Group Project

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.

Languages and Computation

In this module you will 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 will focus in particular on language recognition, but will study a range of topics including: finite state machines, regular expressions, context-free grammars, Turing machines and Lambda calculus. 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.

Software Maintenance

This module builds on your basic Java programming and software engineering skills developed in year one, extending it to working with larger third-party software systems and the challenges associated with this.

Topic examples include:

  • design diagrams and modelling
  • GUI programming
  • testing software engineering methodologies (including agile development)

All in the context of understanding and refactoring third-party code.

You will spend around two hours per week in lectures, two hours per week in computer classes, and one hour per week in workshops studying for this module.

Optional modules

Advanced Functional Programming

Building upon the introductory Functional Programming module in year one, you’ll focus on a number of more advanced topics such as: 

  • programming with effects
  • reasoning about programs
  • control flow
  • advanced libraries
  • improving efficiency
  • type systems
  • functional pearls

You’ll spend around four hours per week in lectures and computer classes.

Introduction to Image Processing

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:

  • image processing and its applications
  • fundamentals of digital images
  • digital image processing theory and practice
  • applications of image processing

You’ll spend around three hours in lectures and computer classes each week.

C++ Programming

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 for this module and will be expected to take additional time to practice and to produce your coursework.

Artificial Intelligence Methods

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.

Operating Systems and Concurrency

This course covers the fundamentals of operating systems and concurrency.

Topics in operating systems include:

  • the architecture of operating systems
  • process management
  • memory management
  • file systems
  • a brief introduction to virtualisation and cloud computing

The principles of concurrency will be introduced from both the perspective of an operating system. Specific topics on concurrency include:

  • hardware support for concurrency
  • mutual exclusion
  • the use of threads
  • synchronisation
Introduction to Human Computer Interaction

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.

Operating Systems and Concurrency

 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.

Software Maintenance

This module builds on your basic Java programming and software engineering skills developed in year one, extending it to working with larger third-party software systems and the challenges associated with this.

Topic examples include:

  • design diagrams and modelling
  • GUI programming
  • testing software engineering methodologies (including agile development)

All in the context of understanding and refactoring third-party code.

You will spend around two hours per week in lectures, two hours per week in computer classes, and one hour per week in workshops studying for this module.

The above is a sample of the typical modules we offer but is not intended to be construed and/or relied upon as a definitive list of the modules that will be available in any given year. Modules (including methods of assessment) may change or be updated, or modules may be cancelled, over the duration of the course due to a number of reasons such as curriculum developments or staffing changes. Please refer to the module catalogue for information on available modules. This content was last updated on

Modules

Shape your degree to your own interests by selecting the majority of your modules from an extensive list of options including:

  • machine learning
  • mobile app development
  • intelligent agents
  • computer graphics

You will also take core modules in professional ethics and computer security. 

Dissertation project

Undertake a large individual dissertation project, agreed in discussion with a supervisor, allowing you to specialise in an area of interest related to the school’s world-leading research activities such as:

  • computer vision
  • artificial intelligence
  • robotics
  • virtual/mixed reality
  • interaction design 

Core module

Professional Ethics in Computing

The module 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.

Computer Security

Spending four hours a week in lectures and computer classes, you’ll cover the following topics:

  • security of the computer
  • security of networks
  • security and the internet
  • software and hardware security
  • mobile security
  • basic cryptography

Optional modules

Individual Dissertation Single Honours

Through a one hour lecture and a tutorial with your supervisor each week, you’ll develop your own independent research project and written report. Topics can range from purely theoretical studies to practical work building a system for a third party.

Computability

You’ll begin by considering the attempts to characterise the problems that can theoretically be solved by physically-possible computational processes.

You’ll 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. A key topic is an examination of the classes P and NP and the definition of the term NP-complete.

Software Quality Management

Through a two hour lecture each week, you’ll be introduced to concepts and techniques for software testing and will be given an insight into the use of artificial and computational intelligence for automated software testing. You’ll also review recent industry trends on software quality assurance and testing.

Computer Security

Spending four hours a week in lectures and computer classes, you’ll cover the following topics:

  • security of the computer
  • security of networks
  • security and the internet
  • software and hardware security
  • mobile security
  • basic cryptography
Machine Learning

Providing 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. 

You’ll cover a range of topics including:

  • machine learning foundations
  • pattern recognition foundations
  • artificial neural networks
  • deep learning
  • applications of machine learning
  • data mining techniques
  • evaluating hypotheses

You’ll spend around six hours each week in lectures and computer classes for this module.

Knowledge, Representation and Reasoning

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: first order logic; resolution; description logic; default reasoning; rule-based systems; belief networks and fuzzy logic. You’ll have two hours of lectures each week.

Collaboration and Communication Technologies

In this module you’ll consider the design of collaboration and communication technologies used in a variety of different contexts including workplace, domestic and leisure environments.

You’ll 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 spend around two hours per week in lectures for this module. 

Compilers

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. 

Development Experience

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.

Designing Intelligent Agents

You’ll be given a basic introduction to the analysis and design of intelligent agents, software systems which perceive their environment and act in that environment in pursuit of their goals.

You’ll cover topics including:

  • task environments
  • reactive, deliberative and hybrid architectures for individual agents
  • architectures and coordination mechanisms for multi-agent systems

You will spend around four hours each week in lectures and tutorials for this module.

As part of the assessment of this module you will produce a research paper-style report, and deliver a conference-style presentation.

Industrial Experience

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.

Mobile Device Programming

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.

Operating Systems and Concurrency

This course covers the fundamentals of operating systems and concurrency.

Topics in operating systems include:

  • the architecture of operating systems
  • process management
  • memory management
  • file systems
  • a brief introduction to virtualisation and cloud computing

The principles of concurrency will be introduced from both the perspective of an operating system. Specific topics on concurrency include:

  • hardware support for concurrency
  • mutual exclusion
  • the use of threads
  • synchronisation
Professional Ethics in Computing

The module 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.

Schools Experience

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.

Computer Vision

You’ll examine current techniques for the extraction of useful information about a physical situation from individual and sets of images.

You’ll cover a range of methods and applications, with particular emphasis being placed on the identification of objects, recovery of three-dimensional shape and motion, and the recognition of events.

You’ll learn how to implement some of these methods in the industry-standard programming environment MATLAB.

You’ll spend around three hours a week in lectures and laboratory sessions.

The above is a sample of the typical modules we offer but is not intended to be construed and/or relied upon as a definitive list of the modules that will be available in any given year. Modules (including methods of assessment) may change or be updated, or modules may be cancelled, over the duration of the course due to a number of reasons such as curriculum developments or staffing changes. Please refer to the module catalogue for information on available modules. This content was last updated on

In your final year, you can undertake a more advanced project, whether individually or as a group, focusing on advanced software development or research.

You will also have the freedom to develop your expertise from a range of modules on topics including fuzzy logic, data modelling and analysis, game design, design ethnography, autonomous robotic systems, and advanced computer networks.

Optional modules

Advanced Algorithms and Data Structures

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. 

Advanced Computer Communications

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 protocol, routing, presentation coding, services and security. You’ll spend around three hours per week in lectures and computer classes. 

Autonomous Robotic Systems

This module introduces the main concepts of autonomous mobile robotics, providing an understanding of the hardware and software principles appropriate for control, spatial localisation and navigation. The module consists of theoretical concepts around robotic sensing and control in the lectures, together with a strong practical element for robot programming in the laboratory sessions

Development Experience

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.

Fuzzy Sets and Fuzzy Logic Systems

You’ll review classical Boolean logic and set theory, including the common operations of union, intersection and complement.

Fuzzy Logic Systems (FLSs) will be introduced and illustrated in conjunction with examples of real-world applications in industrial control and other areas.

You’ll spend around four hours each week in lectures and workshops, and will be given the opportunity to design, programme and deploy a fuzzy logic system, providing a tangible real-world example of some underlying concepts of FLSs.

Group Programming Project

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.

Individual Programming Project

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.

Individual Research Project

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. 

Industrial Experience

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.

Schools Experience

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.

Selected Topics in Artificial Intelligence

Artificial intelligence is the science and engineering of making intelligent machines, especially intelligent computer programs, and covers a variety of topics including, agents, bio-inspired computational systems, computer vision, data mining, fuzzy logic, machine learning, modelling and optimization, operational research, pattern recognition, scheduling, and simulation. The module will introduce students to the latest developments and technological trends in selected topics in artificial intelligence, offered by staff in the school who are world leading researchers. 

Simulation for Decision Support

This module introduces you to three broad simulation paradigms commonly used in operations research and management science: system dynamics, discrete event, and agent-based. Covering topics such as the introduction to the principles of modelling and simulation, conceptual modelling, model implementation, and output analysis, you will become competent in choosing and implementing the correct method for your particular problem. You will spend around four hours per week in lectures and computer classes. 

The above is a sample of the typical modules we offer but is not intended to be construed and/or relied upon as a definitive list of the modules that will be available in any given year. Modules (including methods of assessment) may change or be updated, or modules may be cancelled, over the duration of the course due to a number of reasons such as curriculum developments or staffing changes. Please refer to the module catalogue for information on available modules. This content was last updated on

Fees and funding

UK students

£9250
Per year

International students

£23760*
Per year

*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) .

Additional costs

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.

Scholarships and bursaries

Home students*

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.

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.

International scholarships

Careers

Skills and employability

As well as engaging with cutting-edge research in computer science through our MSci, you will graduate with:

  • an understanding of computers and computer science
  • specialised knowledge of the theoretical foundations of computer science and other selected topics
  • experience in a variety of techniques needed to solve problems encountered in the discipline
  • an understanding of the professional, legal and ethical aspects

Destinations of our graduates

From the smallest start-up to the largest multinational, our students are reshaping the world—are you ready to join them?

Recent graduate destinations include: 

  • software and hardware development
  • financial sector
  • business sector
  • set up your own business
  • teaching
  • industrial research
  • academic research 

Average starting salary and career progression

91.8% 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 £32,104.*

* HESA Graduate Outcomes Survey 2020 data extracted from the University of Nottingham Graduate Outcomes dashboard.

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).

British Computer Society

Accredited by BCS, The Chartered Institute for IT for the purposes of fully meeting the academic requirement for registration as a Chartered IT Professional. 

Students must have spent the penultimate year (part 2 of the programme) at either the Nottingham, Malaysia, or China campus as evidenced by a letter from the University confirming location of study to be supplied with the transcript. 

Dummy placeholder image

Related courses

Important information

This online prospectus has been drafted in advance of the academic year to which it applies. Every effort has been made to ensure that the information is accurate at the time of publishing, but changes (for example to course content) are likely to occur given the interval between publishing and commencement of the course. It is therefore very important to check this website for any updates before you apply for the course where there has been an interval between you reading this website and applying.