## Fact file - 2018 entry

## Overview

From natural science, through the business, finance and retail sectors to social networking and mobile devices, computer-based systems now generate huge volumes of data almost continuously. Large data sets have become the norm in a wide variety of disciplines and applications. While it represents a phenomenal resource, the rapid emergence of big data brings challenges: there is now an urgent need for graduates skilled in the sophisticated mathematical and computational techniques required for large scale data analysis.

This course produces graduates with the core mathematical and computer science knowledge and skills needed to present, analyse and ultimately understand large data sets. The course is the result of a partnership between the School of Computer Science and the School of Mathematical Sciences, and draws on staff expertise available in each School.

Course content is equally split between Mathematics and Computer Science modules, with an emphasis on statistical and computational data analysis methods. These are supported by a strong software development theme, providing the skills needed to both understand and apply key techniques. The final year project provides an opportunity to bring these skills together to address real data analysis problems in a rich and supportive environment.

## Entry requirements

**A levels:** AAA with A in maths, A*AB (with A* in maths), AAB (with A in maths if this also includes an A level in computer science. Please note, A level ICT or IT do not qualify for the lower entry requirements).

**Required subjects:** maths at grade A. Having computer science at A level may elicit a reduced offer.

### English language requirements

IELTS 6.5 (no less that 6.0 in any element)

If you require additional support to take your language skills to the required level, you can attend a presessional course at the Centre for English Language Education (CELE), which is accredited by the British Council for the teaching of English. Successful students can progress onto their chosen degree course without taking IELTS again.

### Alternative qualifications

For details see alternative qualifications page

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

**Typical year one modules**

**Compulsory**

This module provides an introduction to probability by developing a mathematical framework for the logic of uncertainty. The language of set theory is used to describe random events. An axiomatic definition of probability is introduced and used as a basis for developing material such as conditional probability, independence and Bayes' Theorem. Random variables are introduced, including definitions and manipulations involving mass, density and distribution functions, and expectation and variance. Standard discrete and continuous random variables are presented. A number of additional topics are considered, such as sums of random variables, simple transformations of random variables, bivariate discrete random variables, and an introduction to the central limit theorem.

This module is one of three linked 20-credit year-long modules introducing students to a broad range of core mathematical concepts and techniques that underpin all the School of Mathematical Sciences' degree programmes. It has three components:

- Mathematical reasoning (the language of mathematics, the need for rigour, and methods of proof)
- The computer package MATLAB and its applications
- Elementary analysis.

In this module a range of statistical ideas and skills are developed, building on the foundations of probability covered in the Probability module. It describes mathematical concepts and techniques for modelling situations involving uncertainty and for analysing and interpreting data. In particular, exploratory data analysis, point estimation, confidence intervals, hypothesis testing, linear regression and analysis of categorical data are covered. Use is made of an appropriate statistical package to apply the principles and methods described in the lectures.

The module consolidates core GCE mathematical topics in the differential and integral calculus of a function of a single variable and used to solving some classes of differential equations. Basic theory is extended to more advanced topics in the calculus of several variables. In addition, the basic concepts of complex numbers, vector and matrix algebra are established and extended to provide an introduction to vector spaces. An emphasis in the module is to develop general skills and confidence in applying the methods of calculus and developing techiniques and ideas that are widely applicable and used in subsequent modules. Major topics are:

- differential and integral calculus of a single variable;
- differential equations;
- differential calculus of several variables;
- multiple integrals;
- complex numbers;
- matrix algebra;
- vector algebra and vector spaces.

Databases are everywhere and we interact with many different databases every day, using the web, using electronic calendars, diaries or timetables, making appointments, searching for contact details, shopping online, looking up directions, and many more things. These databases need to be both easy to use and fast. 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 and 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. You will spend around three hours per week in lectures and two hours per week in organised computer labs studying for this module, and will be expected to spend additional time practising and completing your coursework.

The module introduces basic principles of programming and algorithms. It covers fundamental programming constructs, such as types and variables, expressions, control structures and functions. The module also teaches how to design and analyse simple algorithms and data structures that allow efficient storage and manipulation of data. Finally, it familiarises students with software development methodology, including documentation, testing, debugging, and the use of software development tools, such as integrated development environments (IDEs) and version control systems.You will spend around 6 hours per week in lectures, computer classes and tutorials.

**Typical year two modules**

**Compulsory**

This module covers important aspects of algorithms, namely their correctness and efficiency. To address correctness we use a mathematically rigorous approach to formal verification using an interactive proof system. 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.

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

This module introduces basic techniques in numerical methods and numerical analysis which can be used to generate approximate solutions to problems that may not be amenable to analysis. Specific topics include:

- implementing algorithms in Matlab
- discussion of errors (including rounding errors)
- iterative methods for nonlinear equations (simple iteration, bisection, Newton, convergence)
- Gaussian elimination, matrix factorisation, and pivoting
- iterative methods for linear systems, matrix norms, convergence, Jacobi, Gauss-Siedel.

In the first part of this module, the ideas of probability introduced in G11PRB are extended to provide a more formal introduction to the theory of probability and random variables, with particular attention being paid to continuous random variables. Fundamental concepts, such as independence, conditioning, moments, joint distributions, transformations and generating functions are discussed in detail. This part concludes with an introduction to some famous limit theorems and the multivariate normal distribution.

The second part of the module gives an introduction to stochastic processes, i.e. random processes that evolve with time. The focus is on discrete-time Markov chains, which are fundamental to the wider study of stochastic processes. Topics covered include transition matrices, recurrence and transience, irreducibility, periodicity, equilibrium distributions, ergodic theorems, absorption probabilities, mean passage times and reversibility. Discrete-time renewal processes and branching processes are considered as applications. The module finishes with an introduction to simple one-dimensional random walks, including sample path diagrams, the reflection principle, recurrence and transience, first passage probabilities and arcsine laws.

The first part of this module provides an introduction to statistical concepts and methods. A wide range of statistical models will be introduced to provide an appreciation of the scope of the subject and to demonstrate the central role of parametric statistical models. The key concepts of inference including estimation and hypothesis testing will be described. Special emphasis will be placed on maximum likelihood estimation and likelihood ratio tests. While numerical examples will be used to motivate and illustrate, the content will emphasis the mathematical basis of statistics. Topics include maximum likelihood estimation, confidence intervals, likelihood ratio tests, categorical data analysis and non-parametric procedures.

The second part of the module introduces a wide class of techniques such as regression, analysis of variance, analysis of covariance and experimental design which are used in a variety of quantitative subjects. Topics covered include the general linear model, least squares estimation, normal linear models, simple and multiple regression, practical data analysis, and assessment of model adequacy.

As well as developing the theory, practical experience will be obtained by the use of a statistical computer package.

**Optional**

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 and tools), 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.

This module builds on the first year Fundamentals of AI, which covers the ACM learning outcomes, and introduces new areas. The emphasis is on building on the AI research strengths in the school. It gives brief introductions to topics including AI techniques, fuzzy logic and intelligent agents, and modern search techniques such as Genetic Algorithms, Tabu Search, Simulated Annealing, and Genetic Programming, etc. Students will also explore the implementation of some AI techniques.

**Typical year three modules**

**Compulsory**

In this module a variety of techniques and areas of mathematical optimization will be covered. The module not only will tackle the problems from a rigorous mathematical background, but also then develop the techniques for application through computational examples. The module will contain sections covering the following topics:

• Lagrangian methods for optimization, overview of uses in a variety of applications – some of which appear in later sections;

• linear lrogramming including the Simplex Algorithm;

• dynamic programming both deterministic control problems and stochastic problems;

• network and graph algorithms.

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

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

**Optional computer science modules**

Further, relevant professional and ethical aspects must always be considered. It is normally expected that projects will involve software development, but the extent of this depends on the nature of the project. If no or very little software is being developed, then the project must encompass other aspects of similar rigour and intellectual challenge (eg. mathematical proofs, rigorously conducted research, proper statistical analysis of empirical results, etc.).

Guidelines on the word length of dissertations are flexible to accommodate differing types of project work undertaken. All projects must be agreed with the concerned Supervisor and Course Director.

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

- security of the computer;
- network security;
- internet security;
- software and hardware security;
- mobile security;
- and cryptography.

You will gain familiarity with the most common attacks on modern computer systems, and defences against these.

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 detection and identification of objects, recovery of three-dimensional shape and analysis of motion. You’ll learn how to implement some of these methods in the industry-standard programming environment MATLAB. You’ll spend around four hours a week in lectures, tutorial and laboratory sessions.

**Optional mathematics modules**

Game theory contains many branches of mathematics (and computing); the emphasis here is primarily algorithmic. The module starts with an investigation into normal-form games, including strategic dominance, Nash equilibria, and the Prisoner’s Dilemma. We look at tree-searching, including alpha-beta pruning, the ‘killer’ heuristic and its relatives. It then turns to mathematical theory of games; exploring the connection between numbers and games, including Sprague-Grundy theory and the reduction of impartial games to Nim.

This module consists of two main topics of coding theory: error-correction codes and cryptography.

In digital transmission (as for mobile phones), noise that corrupts the message can be very harmful. The idea of error-correcting codes is to add redundancy to the message so that the receiver can recover the correct message even from a corrupted transmission. The module will concentrate on linear error-correcting codes (such as Hamming codes), where encoding, decoding and error correction can be done efficiently. We will also discuss cyclic codes, which are the ones most frequently used in practice.

In cryptography, the aim is to transmit a message such that an unauthorised person cannot read it. The message is encrypted and decrypted using some method, called a cipher system.

There are two main types of ciphers: private and public key ciphers. We will discuss basic classical mono and polyalphabetic ciphers as more modern public key cipher like, for instance, RSA and the elementary properties from number theory needed for them. Key exchange protocols and digital signatures (DSA) are included.

In this module the ideas of discrete-time Markov chains, introduced in the Probability Models and Methods module, are extended to include more general discrete-state space stochastic processes evolving in continuous time and applied to a range of stochastic models for situations occurring in the natural sciences and industry. The module begins with an introduction to Poisson processes and birth-and-death processes. This is followed by more extensive studies of epidemic models and queueing models, and introductions to component and system reliability. The module finishes with a brief introduction to Stochastic Differential Equations. Students will gain experience of classical stochastic models arising in a wide variety of practical situations. In more detail, the module includes:

- homogeneous Poisson processes and their elementary properties;
- birth-and-death processes - forward and backward equations, extinction probability;
- epidemic processes - chain-binomial models, parameter estimation, deterministic and stochastic general epidemic, threshold behaviour, carrier-borne epidemics;
- queueing processes - equilibrium behaviour of single server queues;
- queues with priorities;
- component reliability and replacement schemes;
- system reliability;
- Stochastic differential equations and Ito's lemma.

This module extends the theoretical aspects of statistical inference (first met in the Statistical Models and Methods and Fundamentals of Statistics modules) by developing the theory of the generalised linear model and its practical implementation. Initially, designing of experiments in order to explore relationship between factors and a response is viewed within the context of Linear models. The module then extends the understanding and application of statistical methodology established in previous modules to the analysis of discrete data and survival, which frequently occur in diverse applications. In the module students will be trained in the use of an appropriate high-level statistical package.

This module is concerned with the analysis of multivariate data, in which the response is a vector of random variables rather than a single random variable. A theme running through the module is that of dimension reduction. Key topics to be covered include:

- principal components analysis, whose purpose is to identify the main modes of variation in a multivariate dataset;
- modelling and inference for multivariate data, including multivariate regression data, based on the multivariate normal distribution;
- classification of observation vectors into sub-populations using a training sample;
- canonical correlation analysis, whose purpose is to identify dependencies between two or more sets of random variables.

Further topics to be covered include factor analysis, methods of clustering and multidimensional scaling.

The modules we offer are inspired by the research interests of our staff and as a result may change for reasons of, for example, research developments or legislation changes. The above list is a sample of typical modules we offer, not a definitive list.

## Careers

You will graduate with: general knowledge and understanding of computers and computer science; specialised knowledge of theoretical and practical aspects of artificial intelligence; an understanding of a variety of approaches, techniques and tools needed to solve the different types of problem encountered in computer science in general and artificial intelligence in particular; and an understanding of the professional, legal and ethical aspects of the discipline.

### Average starting salary and career progression

In 2015, 94% of first-degree graduates in the School of Computer Science who were available for employment had secured work or further study within six months of graduation. The average starting salary was £26,574 with the highest being £42,000.*

*Known destinations of full-time home and EU first-degree graduates, 2014/15. Salaries are calculated based on 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 the best university in the UK for graduate employment, according to the 2017 The Times and The Sunday Times Good University Guide.

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

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

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