This course has a January 2021 start date available. For more information please see the Flexible learning 2020/21 page.
Equipped with Artificial Intelligence techniques, today’s systems can teach themselves to perform tasks almost as well as humans can. This degree provides you with the foundational knowledge and the practical skills required to operate with these disruptive technologies.
- Benefit from strong industry ties, with close proximity to ‘England’s Silicon Valley’
- Graduate with a Master's degree leading to excellent graduate employability prospects.
- Tailor your learning with a wide range of engaging optional modules
- Choose from a one-year programme structure or add an optional year in industry
Core ModulesYear 1
This course is designed to enhance your awareness of the many ethical implications of working with advanced technology. The course recognises that the ethical issues in computing and AI come to the forefront through developments in technology, bringing new responsibility for novel ethical, social, and legal implications of technology almost on a daily basis.
This module focuses on acquiring a deep understanding of foundational AI principles and techniques to model complex real-world problems as well as writing algorithms and problems to solve them. The module will start with an introduction to AI that will define core AI concepts, provide the philosophical foundations of AI and discuss ethical issues in this field. The module will continue by covering intelligent agents and classical search to then move to local search and optimisation algorithms. Finally, adversarial search and constraint satisfaction problems will also be taught. All these topics will be covered both from a theoretical point of view, during the lectures, and from a practical point of view during the labs.
The aim of this module is to explain the fundamental principles and quantitative methods in the design and analysis of computational experiments, notions that are at the core of current research and practice in AI. The theoretical concepts taught will be complemented by code examples, through which the student can gain hands-on experience in the methods taught.
This module covers algorithm-independent machine learning; unsupervised learning and clustering; exploratory data analysis; Bayesian methods; Bayes networks and causality; and applications, such as information retrieval and natural language processing. You will develop skills in data analysis, including data mining and statistics.
In this module you will learn how to use MATLAB (Matrix Laboratory) and WEKA (Waikato Environment for Knowledge Analysis) as tools for machine learning and data mining. For MATLAB, you will develop an understanding of how to input and output data using vectors, arrays and matrics; learn techniques in data visualization, including plots in 2 and 3 dimensions, scatter plots, barplots, and histograms; and learn how to implement concepts from linear algebra and statistics, including probability and matrix decompositions. For WEKA, you will develop an understanding of how to use the software as a tool for training and testing, predicting generalisation performance, and cross-validation; and learn how to implement decision trees, naïve Bayes classifiers, and clustering methods.
This specialist module focuses on acquiring a deep understanding of the principles and techniques that are needed to design and build autonomous intelligent systems (AISs). The module will start with an introduction to AISs and real-world examples of them. It will then cover knowledge representation and engineering techniques based on formal logic. The module will then tackle autonomous decision making techniques, from AI planning to probabilistic reasoning and Markov Decision Processes. Reinforcement learning and techniques for cooperation and coordination between artificial agents will also be taught. All these topics will be discussed both from a theoretical point of view, during the lectures, and from a practical point of view, during the labs.
The aim of this module is to teach the necessary background knowledge and practical techniques - especially deep learning - needed to apply natural language processing to large, real-life text-based projects. A brief survey of computational linguistic theory will include notions of syntax, semantics, and pragmatics. Practical techniques for preparing and pre-processing text will be taught in lab sessions. Typical commercial applications of NLP will be surveyed, with practical examples. Standard NLP techniques covered will include: topic modelling and LDA, and construction of word-embeddings.
There are a number of optional course modules available during your degree studies. The following is a selection of optional course modules that are likely to be available. Please note that although the College will keep changes to a minimum, new modules may be offered or existing modules may be withdrawn, for example, in response to a change in staff. Applicants will be informed if any significant changes need to be made.Year 1
For the following optional course modules available during your degree studies, more details can be found on the department website here
In this module you will develop an understanding of the basics of algorithmic thinking and problem solving using programming. You will become familiar with using the Java programming language, examining particular features and constructs as well as basics of object-oriented programming. You will use these to solve specific algorithmic tasks and evaluate programming solutions.
In this module you will learn about the applications of the Internet of Things (IoT) in society, the components of typical IoT systems and the trends for the future. You will be exposed to IoT design considerations, constraints and interfacing between the physical world and IoT devices. You will develop an understanding of the Arduino platform and how it works in terms of the physical board, the libraries and the IDE (integrated development environment). You will learn how to program the Arduino via C/C++ code and how to access the pins on the board via the software to control external devices. Finally, you will gain hands-on experience in plugging shields into the main Arduino board to perform other functions such as sensing and actuating.
The module covers the fundamental principles of building modern distributed systems, for example in the context of the Internet of Things (IoT), focussing, in particular, on two central components of the IoT reference architecture-cloud infrastructure and wireless networking. The module will discuss major challenges found in these environments (such as massive scales, wide distribution, decentralisation, unreliable communication links, component failures and network partitions) and general approaches for dealing with these. Topics covered will include abstract models (such as the synchronous and asynchronous distributed computing models, models for wireless networks); algorithmic techniques (such as distributed coordination, the fault-tolerant design of distributed algorithms, synchronization techniques); and practical case studies. You will also have an opportunity to implement various components of a realistic distributed system through a series of formative coursework assignments, lab practicals, and a final project.
In this module you will develop an understanding of modern machine learning techniques and gain practical experience in developing machine learning systems. You will look at the main advantages and limitations of the various approaches to machine learning and examine the features of specific machine-learning algorithms. You will also consider how the ideas and algorithms of machine learning can be applied in other fields, including medicine and industry.
In this module you will develop an understanding of the notion of an agent, and how agents are distinct from other software paradigms. You will analyse the characteristics of applications that lend themselves to an agent-oriented solution and consider the key issues associated with constructing agents capable of intelligent autonomous action. You will look at the key issues in designing societies of agents that can effectively cooperate in order to solve problems and evaluate the key types of multi-agent interactions possible in such systems. You will also examine the main application areas of agent-based solutions, developing a meaningful agent-based system using a contemporary agent development platform.
In this module you will develop an understanding of the on-line framework of machine learning for issuing predictions or decisions in real-time. You will learn about protocols, methods and applications of on-line learning, covering probabilistic models based on Markov chains and their applications, such as PageRank and Markov Chain Monte-Carlo. You will examine the time series models, exploring their connections with Kalman filters, and learning models based on the prequential paradigm, including prediction with expert advice, aggregating algorithm, sleeping and switching experts. You will also consider universal algorithms, their application to portfolio theory, and how prediction within a confidence framework is achieved.
In this module you will develop an understanding of the underlying principles of large-scale data storage and processing frameworks. You will look at the opportunities and challenges of building massive scale analytics solutions, gaining hands-on experience in using large and unstructured data sets for analysis and prediction. You will examine the techniques and paradigms for querying and processing massive data sets, such as MapReduce, Hadoop, data warehousing, SQL for data analytics, and stream processing. You will consider the fundamentals of scalable data storage, including NoSQL databases, and will design, develop, and evaluate an end-to -nd analytics solution combining large-scale data storage and processing frameworks.
In this module you will develop an understanding of the role of business intelligence systems in the IT environment of modern organisations. You will look at the concepts, terminology and architectures of data warehouses and business intelligence solutions, considering data modelling concepts and design solutions using dimensional modelling. You will examine the key elements of business intelligence applications such as data analysis, data mining and dashboards, and evaluate aspects of visualisation and the relationship between business intelligence solutions and CRM and ERP systems. You will also gain hands-on experience using industrial business intelligence tools.
In this module you will develop an understanding of the main approaches currently in use in bioinformatics. You will look at the basic components of living cells, their functions and interactions, and other concepts essential to understanding the use of computers in biology. You will examine the analysis of DNA and protein sequences emerging from genome sequencing projects and genome-wide experimental assays, and consider the use of algorithms in bioinformatics, including dynamic programming sequence alignments, substitution matrices, and phylogenic trees.
In this module you will develop an understanding of the principles of statistical visualisation and open-ended exploratory analysis of data. You will look at the construction of linear projections of multivariate data and non-linear dimensions reduction methods. You will gain practical experience in using standard graph visualisation methods and evaluating results, and consider how to avoid data snooping. You will also critically evaluate choices in representational mode, glyph design, and colour design for presentation graphics
In this module you will develop an understanding of the mathematical and computational models underlying derivative securities. You will learn how to apply techniques for pricing derivatives and dynamic hedging, and look at the market efficiency hypothesis and its applications in examining financial techniques. You will also consider models of risk exposure and the techniques used for calculating value at risk.
- Deep Learning
In this module you will develop an understanding of the mathematical theory underlying the main principles and methods of statistics, in particular, parametric estimation and hypotheses testing. You will learn how to formulate statistical problems in rigorous mathematical terms, and how to select and apply appropriate tools of mathematical statistics and advanced probability. You will construct mathematical proofs of some of the main theoretical results of mathematical statistics and consider the asymptotic theory of estimation.
In this module you will develop an understanding of the principal methods of the theory of stochastic processes, and probabilistic methods used to model systems that exhibit random behaviour. You will look at methods of conditioning, conditional expectation, and how to generate functions, and examine the structure and concepts of discrete and continuous time Markov chains with countable state space. You will also examine the structure of diffusion processes.
In this module you will develop an understanding of the construction of information networks, specifically the architecture and operation of the internet protocol suite. You will look at the construction of a modern computer system, considering hardware and software components which support multiprocessing. You will examine the causes and potential effects of vulnerabilities that affect computer systems and identify appropriate countermeasures, including user authentication and access control mechanisms. You will evaluate authentication and key exchange protocols, such as how SSL and TLS are applied to the internet, and analyse the key security threats faced in network environments.
In this module you will develop an understanding of the uses of cryptography. You will look at the basic cryptographic mechanisms used to provide core security services and examine differences between them, identifying situations in which they are most usefully employed. You will consider the issues that need to be addressed to secure an application, and evaluate the limitations of cryptography and methods for supporting it within a full security architecture.
The module is concerned with the protection of data transferred over digital networks, including computer and telecommunications networks. We review networking concepts, particularly the concepts of services and protocols, and study how services are incorporated in network communications by specifying protocols. We extend the discussion of services to address security concerns, considering how cryptographic primitives may be used to provide confidentiality, integrity and authentication services. We illustrate these concepts by considering case studies, including WEP/WPA/WPA2, GSM and UMTS, IPsec and SSL/TLS. We also study non-cryptographic countermeasures, including packet-filtering and intrusion detection.
In this module you will develop an understanding of the role of security mechanisms for modern computer systems, including both hardware and software. You will look at the mechanisms that are used to implement security policies, considering core concepts such as security models, subjects and objects, authorisation and access rights. You will examine the use and operation of a range of access and control methods and authentication mechanisms, such as tokens an biometrics. You will also and evaluate the main issues relating to software security and their effect on the security of computer systems, in particular, the practical implementation of access control.
In this module you will develop an understanding of the need for effective security management. You will look at alternative security strategies and examine methods for responding to security management problems. You will critically evaluate different approaches and consider security management requirements. Sessions will be delivered by a combination of security practitioners, information managers and academics and you will be encouraged to actively discuss the subject matter, engaging in an online discussion forum.
In this module you will develop an understanding of the foundations and theoretical underpinnings of how data is generated, stored, transmitted, and used as evidence. You will look at the methods used for the collection and analysis of digital evidence, and consider how the integrity of the underlying data is maintained. You will examine the general and UK legal requirements for data storage, and consider the frameworks for the handling and processing of such evidence.
In this module you will develop an understanding of the common approaches and methodologies used for carrying out and managing security and penetration testing, including legal requirements for such audits. You will look at network protocols, relevant computer system architectures, and web application systems, considering their vulnerabilities, common forms of attack, and security technologies designed to mitigate these. You will gain practical experience of exploiting vulnerabilities to penetrate a system, learning how to design secure systems and defend them against intrusion.
In this module you will develop an understanding of the importance of security in the development of applications. You will look at poor programming practices and how they can be exploited, leading to catastrophic security breaches. You will consider the threat posed by malicious software and examine some of the newer research trends that are likely to influence software security work in the coming years.
In this module you will develop an understanding of the key areas of cyber security, with a particular focus on the critical national information (CNI) infrastructure. You will look at fault and attack models for information and cyber-physical systems, considering variants of attack trees. You will analyse large-scale networks and their robustness for both random failures and deliberate attacks, evaluating how key elements of the CNI, such as the internet and power and transport infrasturctures, can be captured by such models. You will also examine case studies of attacks by state actors and security problems in control systems protocols.
Teaching & assessment
The programme will include modules in
- Artificial Intelligence Principles and Techniques
- Natural Language Processing
- Autonomous Intelligent Systems
- Experimental Design
- Data Analysis
- Programming for Data Analysis
- Machine Learning
- Deep Learning
- Semantic Web
- Visualisation and Exploratory Analysis
Computer Science, Economics, Mathematics, Physics, or other subjects that include a strong element of both mathematics and computing.
Normally we require a UK 2:1 (Honours) or equivalent in relevant subjects but we will consider high 2:2 or relevant work experience. Candidates with professional qualifications in an associated area may be considered. Where a ‘good 2:2’ is considered, we would normally define this as reflecting a profile of 57% or above.
International & EU requirements
English language requirements
All teaching at Royal Holloway is in English. You will therefore need to have good enough written and spoken English to cope with your studies right from the start.
The scores we require
- IELTS: 6.5 overall. No subscore lower than 5.5.
- Pearson Test of English: 61 overall. Writing 54. No subscore lower than 51.
- Trinity College London Integrated Skills in English (ISE): ISE III.
For more information about country-specific entry requirements for your country please see here.
Your future career
Our proximity to the M4 corridor – also known as 'England’s Silicon Valley' – provides excellent networking opportunities with some of the country’s top technology institutions. We bring several companies to our campus throughout the year, both for fairs and for delivering advanced topics seminars, which are an excellent opportunity to learn about what they do and discuss possible placements or jobs.
Our graduates enter into successful careers in academia or in companies or organisations operating in highly competitive areas. In recent years, these have included Amazon, American Express, BGL Group, Bupa, Capita, Centrica, EY, Facebook, Google, Hortonworks, JP Morgan, Microsoft, ONS, PWC, QuintilesIMS, Rolls Royce, Shell, UBS, VMware, Xerox and the Z/Yen Group.
In addition to the support provided by The Careers and Employability Service, the department has a dedicated administrator and an academic who coordinates and oversees placements and job opportunities.
- Strong industry ties help to provide placement and networking opportunities with some of the country’s leading institutions.
- Together with our on-site Careers and Employability Service, we run one-to-one coaching sessions and workshops, helping you to find a placement or job and lead a successful career.
Fees & funding
Home and EU students tuition fee per year*: £11,900
International students tuition fee per year**: £21,500
Other essential costs***: There are no single associated costs greater than £50 per item on this course.