Computer Science BSc


Fact file - 2019 entry

BSc Hons Computer Science
UCAS code
3 years full-time
A level offer
Required subjects
Plus 5 GCSEs at grade 5 (B) or above including mathematics and minimum GCSE English grade 4 (C)
IB score
34-32 (5 in maths at Standard/Higher Level or GCSE maths, 5 (B) or above)
Course location
Jubilee Campus 
Course places
Approximately 115 places for all courses in the school


This course is designed to produce high-quality graduates who show independent thought, flexibility and maturity, and who command a sound technical knowledge of the broad aspects of computer science.
Read full overview

Compsci 450x250

  • Study in a UK top 10 computer science department for research*
  • Benefit from up-to-date software and dedicated computer labs
  • Gain hands on experience

* Research Excellence Framework, 2014


Our course is designed to produce high-quality graduates who show independent thought, flexibility and maturity, and who command a sound technical knowledge of the broad aspects of Computer Science. All our courses are compliant with the Association for Computing Machinery (ACM) and Institute of Electrical and Electronic Engineers (IEEE)

You will learn about 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, and research-level topics that will play an important role in future developments. The course also provides an understanding of the nature of computer science as an academic discipline.

Year one 

You will be introduced to key concepts and tools underpinning modern computer science as well as learning to work in a variety of programming paradigms including imperative, object oriented and functional languages such as C, Java and Haskell. You will also study the architecture of computers at the chip and system level, be introduced to artificial intelligence, and meet the areas of mathematics you will need later in the course.

Year two 

You will take part in a software engineering group project, many of which have an industry partner, that puts the theory and skills you have learned into practise. At the same time, you will study programming and the underlying theory of computation in greater depth, exploring more advanced algorithms and their use in operating systems. In the second semester, you can begin to shape your own course by choosing modules on topics in different areas of computer science. This includes human-computer interaction, image processing, C++ programming, functional programming, and advanced artificial intelligence.

Year three 

You will select the majority of your modules from an extensive list of options, alongside core modules in professional ethics and computer security. Options may include machine learning, mobile app development, intelligent agents, and computer graphics. You can also take part in a large individual dissertation project, agreed in discussion with a supervisor. This will allow you to further 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, and interaction design.


BCS Accredited Degree Logo

This degree has been accredited by the  British Computer Society (BCS). The BCS accreditation only applies to students who take the Individual Dissertation module in their third year and pass without compensation. Students must have spent the third taught year at either the Nottingham, Malaysia, or China campus.

Houman's story


Entry requirements

A levels: AAA (AAB if you have an A in computer science/computing)

(Please note, A level ICT or IT do not qualify for the lower entry requirements)

Required subjects: 5 GCSEs at grade 5 (B) or above including mathematics and minimum GCSE English grade 4 (C)

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


The following is a sample of the typical modules that we offer as at the date of publication 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. Due to the passage of time between commencement of the course and subsequent years of the course, modules may change due to developments in the curriculum and the module information in this prospectus is provided for indicative purposes only.

Typical year one 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 is 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 and statistics and matrices. You’ll spend around four hours per week in lectures and tutorials.

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.

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

Introduction to 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. You will spend around five hours per week in lectures and labs for this module.

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. 

Typical year two modules


Algorithms and Data Structures 

This module introduces you to the basics of how to specify abstract data types and use them to design programs. You’ll 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 select them appropriately for solving a given problem. You’ll spend around three hours per week in lectures and computer classes.  

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. 

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.

Languages and Computation

You’ll investigate classes of formal language and the practical uses of this theory, applying this to a series of abstract machines. You’ll focus in particular on language recognition, but will study a range of topics including: finite state machines; regular expressions; context-free grammars; and Turing machines. You’ll spend around two hours per week in lectures.

Software Maintenance 

This module builds on your basic Java programming developed in year one. Topics include: design diagrams and modelling; GUI programming; testing; software engineering methodologies (including agile development) in the context of understanding and refactoring other people's code. You will spend around two hours per week in lectures and two hours per week in computer classes. 



Graphical User Interfaces

This module will introduce you to programming concepts and structures by considering the Java Swing packages in depth. You’ll explore a wide range of components, and will consider the other APIs, which allows easy incorporation of high-quality 2D graphics, text, and images in applications, and the use of Integrated Development Environments (IDEs), which simplify the construction of graphical user interfaces. You’ll spend around four hours each week in lectures and computer classes.

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; and functional pearls. You’ll spend around four hours per week in lectures and computer classes. 

Introduction to Formal Reasoning

Developing the themes of the year one module Mathematics for Computer Scientists, you’ll be introduced to a mathematically rigorous approach to program construction. 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; and introduction to program specification and program correctness. You’ll spend around five hours per week in lectures, tutorials 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; and applications of image processing. You’ll spend around three hours in lectures and computer classes each week.

Planning and Search 

You’ll be introduced to artificial intelligence (AI) algorithms and programming techniques for search and planning. Topics covered include: classical search; search with non-determinism and partial observability; local search; classical planning; reasoning about actions; planning under uncertainty; conditional planning; planning with time and resources; other typical AI problems and how to implement them in an AI programming language.

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

Introduction to Human Computer Interaction

Through two hours of lectures each week, you’ll be given an overview of the field of human computer interaction, which aims to understand people's interaction with technology and 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.


Typical year three 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.

Computers in the World 

The module looks broadly into the impact that computer systems have in society and the implications of this from the perspective of a computer scientist, while considering a range of legal, ethical, professional and social issues. The module covers topics such as ethics, critical thinking, professionalism, privacy, intellectual and intangible property, cyber-behaviour, accountability, safety, dependability and reliability, all within the context of computer systems development. You will spend one hour per week in lectures and one hour per week in group-based workshops for this module.




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


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; and basic cryptography.

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.

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. 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 for this module.

Machine Learning

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.This is now fashionable termed 'big data' science. 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 and evaluating hypotheses. You’ll spend around six hours each week in lectures and computer classes for this module.

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. 

Computer Graphics

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 two hours per week of lectures and laboratory sessions, you’ll explore various methods and requirements in 3D computer graphics, balancing efficiency and realism.

Autonomous Robotic Systems

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. Spending around three to four hours each week in lectures and practicals, you’ll cover a range of topics including basic behavioural control architectures, programming of multiple behaviours, capabilities and limitations of sensors and actuators and filtering techniques for robot localisation.

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

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.

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.



You will graduate with: general knowledge and understanding of computers and computer science; specialised knowledge of the theoretical foundations of computer science and other selected topics within the discipline; experience in a variety of techniques and tools needed to solve the different types of problems encountered in the discipline; and an understanding of the professional, legal and ethical aspects of the discipline.

Ben's journey after graduation

Professional accreditation

BCS Accredited Degree Logo 

This degree has been accredited by the British Computer Society (BCS) and exemption is granted from Parts 1 and 2 of the BCS examination. The BCS accreditation only applies to students who take the Individual Dissertation module in their final year and pass without compensation. Students must have spent the third taught year at either the Nottingham, Malaysia, or China campus.

careers 450x200

Average starting salary and career progression

In 2017, 92.3% of undergraduates in the school who were available for employment had secured work or further study within six months of graduation. The average starting salary was £27,500 with the highest being £60,000.*

* Known destinations of full-time home undergraduates 2016/17. Salaries are calculated based on the median of those in full-time paid employment within the UK.

Careers support and advice

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-2017, High Fliers Research).


Fees and funding

Scholarships and bursaries

The University of Nottingham offers a wide range of bursaries and scholarships. These funds can provide you with an additional source of non-repayable financial help. For up to date information regarding tuition fees, visit our fees and finance pages.

Home students*

Over one third of our UK students receive our means-tested core bursary, worth up to £2,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/EU students

Our International Baccalaureate Diploma Excellence Scholarship is available for select students paying overseas fees who achieve 38 points or above in the International Baccalaureate Diploma. We also offer a range of High Achiever Prizes for students from selected countries, schools and colleges to help with the cost of tuition fees. Find out more about scholarships, fees and finance for international students.

School scholarships

Here is an example of some scholarships which have been offered in previous years, 2019 scholarships will be confirmed shortly:

  • A Level Achievement Award (£3000)
  • Undergraduate Summer School Participant Scholarships (£1000)
  • Undergraduate International Scholarships (£2000)
  • Women in Computer Science Scholarship (£3000)
  • Undergraduate Students Exceptional Achievement Award (£1000)

See full details and eligibility criteria on our website



Key Information Sets (KIS)

KIS is an initiative that the government has introduced to allow you to compare different courses and universities.

How to use the data

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.


finding the perfect course
+44 (0) 115 951 5559 Make an enquiry


Admissions and Communications Officer






Student Recruitment Support Hub

The University of Nottingham
King's Meadow Campus
Lenton Lane
Nottingham, NG7 2NR

t: +44 (0) 115 951 5559
w: Frequently asked questions
Make an enquiry