Triangle

Course overview

Cyber physical systems is an area of computer science that is growing. Our course combines computer science knowledge with specialist skills in cyber physical systems. The key topics covered will include:

  • machine learning
  • neural networks
  • cybersecurity
  • human artificial intelligence 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.

What are cyber physical systems?

Cyber physical systems integrate computation with physical objects and processes. Examples of cyber physical systems are:

  • 'smart' devices in the home such as a smart meter or fridge
  • voice assistant devices
  • driverless vehicles
  • medical monitoring equipment 
  • wearable devices
  • robotic assistants 

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. 

Why choose this course?

  • Scholarships available which give up to 50% off your tuition fees
  • Flexibility to transfer between computer science degrees during year one
  • No prior programming experience is needed
  • Able to choose from a wide range of option modules from within computer science
  • Range of project topics in computer science with cyber physical systems, from purely theoretical studies to practical work building a system

Entry requirements

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

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

GCSE Maths at grade B and GCSE English at grade C

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

Foundation progression options

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.

Learning and assessment

How you will learn

Teaching methods

  • Computer labs
  • Lectures
  • Tutorials
  • Workshops

How you will be assessed

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 and subsequent years of study. Year two is worth 33% with year three worth 67%. 

Assessment methods

  • Coursework
  • Group project
  • Research project
  • Written exam

Contact time and study hours

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 professors, assistant professors and teaching associates with help from PhD students and research staff.

Study abroad

Benefits of studying abroad

  • Explore a new culture
  • A reduced tuition fee of up to 80% for the time you are abroad
  • Improve your communication skills, confidence and independence 

Countries you could go to

You can apply to spend a semester in countries such as:

  • Australia
  • Canada
  • Hong Kong
  • Ireland
  • Mexico
  • New Zealand
  • Singapore

All teaching is in English. You must achieve a minimum 60% pass rate to go on the year abroad. 

Modules

Core modules

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

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.

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.

Mathematics for Computer Scientists 2

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. 

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. 

Introduction to Software Engineering MSc

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

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 Monday 29 November 2021.

Core modules

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

Algorithms Correctness and Efficiency MSc

This module covers important aspects of algorithms, namely their correctness and efficiency. To address correctness we use a formal approach to proving that an algorithm meets its specification.

You will study topics such as:

  • introduction to program specification and program correctness
  • assertions and loop invariants
  • proofs of correctness

To address the issue of efficiency we cover the use of mathematical descriptions of the computational resources needed to support algorithm design decisions.

You'll study topics such as

  • sorting algorithms
  • heaps
  • binary search trees
  • hashmaps
  • graph algorithms

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.

Introduction to Cyber Physical Systems

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.

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 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:

  • finite state machines
  • regular expressions
  • context-free grammars
  • Turing machines
  • 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.

Developing Maintainable Software

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.

Optional modules

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.

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.

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.

Software Specification

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. 

Distributed Systems

This module covers the following topics:

  • overview of parallel and distributed computing
  • applications of distributed systems
  • fundamental concepts of distributed systems (processes and message passing, naming and discovery, fault tolerance and partial failure, consistency and cacheing, security)
  • reliable network communication
  • distributed system design approaches (direct vs indirect communication, client-server vs peer-to-peer, stateful vs stateless interfaces)
  • introduction to distributed data management
  • introduction to distributed algorithms
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

Core modules

Cyber Physical Systems Dissertation

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. 

Professional Ethics in Computing

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.

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 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:

  • machine learning foundations
  • pattern recognition foundations
  • artificial neural networks
  • deep learning
  • applications of machine learning
  • data mining techniques and evaluating hypotheses
Human-AI Interaction

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.

Optional modules

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. 

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
Collaboration and Communication Technologies

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.

Software Quality Assurance

Students will be introduced to concepts and techniques that are widely used in industry to develop high quality software.

Through a two hour lecture each week, you will be introduced to concepts and techniques that are widely used in industry to develop high quality software. These include the following:

  • What makes high quality software? Including procedures and approaches to quality management and quality assurance for software projects. Also, a brief history of software metrics
  • Software testing. Including unit testing, integration testing, and acceptance testing, with a particular emphasis upon testing strategy and the automation of testing
  • Software deployment. Including techniques used to minimise risk, and also continuous integration

These will all be put into the context of recent industry trends. Training will also be provided in common tools and techniques that are used in professional software development including:

  • Version control and the use of code repositories
  • Release/configuration Build management tools
  • Automated testing frameworks
Collaboration and Communication Technologies Development Project

You are given the opportunity to combine your developing CCT knowledge with your programming abilities. You have the whole semester to build a working collaborative project either individually, or you can opt to work in a team, and produce a report on how it supports collaboration according to CCT theory. The primary focus is on building a working application, and so existing strong programming ability is required. 

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.

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.

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

Fundamentals of Information Visualisation

Information Visualisation is the process of extracting knowledge from complex data, and presenting it to a user in a manner that this appropriate to their needs. This module provides a foundational understanding of some important issues in information visualisation design. You will learn about the differences between scientific and creative approaches to constructing visualisations, and consider some important challenges such as the representation of ambiguous or time-based data. You will also learn about psychological theories that help explain how humans process information, and consider their relevance to the design of effective visualisations.

If you want to learn how to design and implement your own interactive information visualisation, you should also take the linked module G53IVP (Information Visualisation Project). Together, these two modules form an integrated 20 credit programme of study.

Information Visualisation Project

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

You will gain experience in web-based technologies that enable the implementation of multi-layered and interactive information visualisations, supported through lab work that introduces specific features of these technologies.

This module will require some challenging programming work and assumes some basic knowledge of HTML, CSS and Javascript. Introductory tutorials will be provided to those without this prior knowledge.

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.

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.

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.

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

HackSoc Nottingham

HackSoc is a student-run society that is about building, learning and sharing new tech. Every year they run their own 24-hour hackathon, HackNotts. They also travel to other hackathons to team up with students from around the world.

CompSoc

CompSoc is a student-run society for anyone interested in computer science. They run social events throughout the year such as pizza revision sessions. 

Fees and funding

UK students

£9,250
Per year

International students

£26,500*
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 starting your course in the 2022/23 academic year, you will pay international tuition fees.

This does not apply to Irish students, who will be charged tuition fees at the same rate as UK students. UK nationals living in the EU, EEA and Switzerland will also continue to be eligible for ‘home’ fee status at UK universities until 31 December 2027.

For further guidance, check our Brexit information for future students.

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

Scholarships and bursaries

To help support our students, we offer an Excellence in Computer Science scholarship. There are three levels to the award, which range from 10-50% off your tuition fees. Scholarships are available for the duration of your course, if you meet progression requirements.

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

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:

  • App Developer
  • Data Analyst
  • Software Developer
  • Financial Consultant

Others choose to continue studying for a masters or a PhD.

Graduates with skills in cyber physical systems could expect to work in jobs or industries such as:

  • cyber security
  • fintech (financial technology)
  • networked systems
  • robotics and autonomous systems
  • smart product and service design and development
  • artificial Intelligence engineering

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.

Average starting salary and career progression

97.6% of undergraduates from the School of Computer Science secured graduate level employment or further study within 15 months of graduation. The average annual salary for these graduates was £33,181.*

* HESA Graduate Outcomes 2020. The Graduate Outcomes % is derived 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).

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.