Skip to main content

Module outlines

Module outlines

This is the full list of modules offered in Computer Science MSc programmes.

The list includes both compulsory and elective modules for all of the Masters programmes. The choice of electives for any student is subject to the constraints described below (and timetable constraints).

Please note that not all electives may be offered in any given year and that pre-requisites based on prior study or academic background may apply. The list of electives for each student must be approved by the Programme Director. Also note that students starting their studies in January 2022 have a more limited choice and the term in which their modules will run will differ.

Electives are chosen to complete each term to a total of 60 credits. In exceptional cases when timetabling or other administrative reasons prevent them from taking modules worth 60 credits in each term, students will be allowed to take modules worth 50 credits in one term and 70 in the other term.

The programmes are identified below based on the following key:

  • AI – MSc in Artificial Intelligence
  • DSA – MSc in Data Science and Analytics
  • CF – MSc in Computational Finance
  • ML – MSc in Machine Learning
  • IoT – MSc in The Internet of Things
  • DNS – MSc in Distributed and Networked Systems

Note that the IoT and DNS programmes are only available in 2021/22 to students who are already enrolled in those.

Modules are identified as Core (C), Elective (E) or Not Available (NA) for each programme.

Column C indicates the number of credits (10 or 20), and Column T the term in which the module will run in 2021/22.

Column N makes the following notes

(1) Compulsory and available only for students who lack background in the corresponding area.

(2) Cannot be taken by Royal Holloway graduates who took a similar module.

(3) Available only to Computational Finance and Computational Finance with a Year in Industry.

(*) Not running in 2021-22

Code Module C T N AI DSA CF ML IoT DNS

Department of Computer Science
(module outlines can be found further below on this page)

           
CS5100 Data Analysis 20 1 2 C C C C C E
CS5800 Principles of Computation and Programming 10 1 1 E C E E E E
CS5810 Programming for Data Analysis 10 1 2 C C C C E E
CS5840 Interconnected Devices 10 - (*) E E E E C C
CS5860 Advanced Distributed Systems and Communication Networks 20 1 2 E E E E C C
CS5920 Machine Learning 10 1 2 E E E C E E
CS5855 Databases 10 1 1 E C C E E E
CS5940 Intelligent Agents and Multi-Agent Systems 10 - 2(*) E E E E E E
CS5200 On-line Machine Learning 20 2 2 E E E C E E
CS5234 Large-Scale Data Storage and Processing 20 2 2 E C E E E E
CS5504 Business Intelligence Systems, Infrastructures and Technologies 20 2 2 E E E E E E
CS5110 Methods of Bioinformatics 10 - (*) E E E E E E
CS5250 Visualisation and Exploratory Analysis 20 2 2 E E E E E E
CS5900 Ethics in Advanced Computing and Artificial Intelligence 0 2 2 C C C C C C
CS5930 Methods of Computational Finance 10 - 2(*) E E E E E E
CS5950 Deep Learning 20 2 2 E E E C E E
CS5960 Artificial Intelligence Principles and Techniques 10 1 1,2 C E E E E E
CS5970 Experimental Design 10 1 2 C E E E E E
CS5980 Autonomous Intelligent Systems 20 2 2 C E E E E E
CS5990 Natural Language Processing 20 2 2 C E E E E E

Department of Economics
(modules outlines can be found following this link)

           
EC5320 Foundations of Finance 20 1 3 NA NA C NA NA NA
EC5310 Corporate Finance 20 1 3 NA NA E NA NA NA
EC5333 Financial Econometrics 20 2   E E E  E E E
EC5321 Investment and Portfolio Management 20 2   E E C  E E E
EC5340 Fixed Income Securities and Derivatives 20 2   E E E  E E E
EC5070 Decision Theory and Behaviour 20 - (*) E E E  E E E
EC5360 The Economics of Banking 20 - 3(*) NA NA E NA NA NA
EC5370 Private Equity 20 2 3 NA NA E NA NA NA

Department of Mathematics
(modules outlines can be found following this link)

           
MT5432 Inference 20 2   E E  E E E E
MT5436 Markov Chains and Applications 20 2   E E  E E E E

Information Security Group
(module outlines can be found following this link)

           
IY5522 Security Technologies 20 1   E E E E E E
IY5502 Introduction to Cryptography 20 1   E E E E E E
IY5511 Network Security 20 1   E E E E E E
IY5512 Computer Security 20 1   E E E E E E
IY5501 Security Management 20 1   E E E E E E
IY5606 Smart Cards, RFIDs and Embedded Systems Security 20 - (*) E E E E C E
IY5609 Digital Forensics 20 2   E E E E E E
IY5610 Security Testing 20 2   E E E E E E
IY5607 Software Security 20 - (*) E E E E E E
IY5612 Cyber Security 20 - (*) E E E E E E

 

Below you will find a synopsis of each module taught by the Department of Computer Science.

Co-ordinator: Vladimir Vovk

Credits: 20

SUMMARY

The aim of the module is to acquaint the students with the main methods and techniques of data analysis. In particular, it will cover the following topics. Supervised learning: classification, regression, and ensemble methods. Algorithm-independent machine learning. Unsupervised learning and clustering. Exploratory data analysis. Bayesian methods, including Bayes networks and causality. Applications, such as information retrieval and natural language processing.

LEARNING OUTCOMES

By the end of the course students should be able to:

  • develop, validate, evaluate, and use effectively machine learning models and statistical models
  • apply methods and techniques such as clustering, regression, decision trees, and neural networks
  • more generally, extract value and insight from data

TEACHING AND LEARNING METHODS

The course will normally be presented as three hours of lecture slots per week during ten weeks, and one hour per week of practical classes during nine weeks.

KEY BIBLIOGRAPHY

Core reading material:

  • Gareth James, Daniela Witten, Trevor Hastie, and Robert Tibshirani, An Introduction to Statistical Learning with Applications in R, Springer, 2013.
  • Trevor Hastie, Robert Tibshirani, and Jerome Friedman, "The Elements of Statistical Learning", Second edition, Springer, New York, 2009.

Additional reading:

  • Richard O. Duda, Peter E. Hart, and David G. Stork, "Pattern Classification", Second edition, Wiley, New York, 2000.

FORMATIVE ASSESSMENT AND FEEDBACK

The lecturers will provide oral feedback during post-practical class discussions. The students will receive written feedback on their coursework assignments.

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

 

Co-ordinator: Alberto Paccanaro

Credits: 10

SUMMARY

The module introduces the main approaches currently in use in bioinformatics, with special emphasis on the analysis of DNA, protein sequences and large scale biological networks emerging from genome sequencing projects and genome-wide experimental assays. The following topics are covered:

  • Basic molecular biology: introduction to the basic components of living cells, their functions and interactions, and to other concepts essential to understanding the use of computers in biology.
  • Dynamic Programming, sequence alignments, substitution matrices.
  • Phylogenetic trees.
  • Systems biology: gene expression analysis, Protein-Protein Interaction analysis, biological networks, clustering.

LEARNING OUTCOMES

By the end of the course students should be able to:

  • assess and evaluate confidently the main approaches currently in use in bioinformatics;
  • demonstrate advanced understanding of the analysis of DNA and protein sequences;
  • demonstrate a mastery of applying algorithms of bioinformatics and analysing the results.

TEACHING AND LEARNING METHODS

The course will normally be presented as three hours of lecture slots per week during ten weeks.

KEY BIBLIOGRAPHY

Core reading material:

  • Marketa Zvalebil, Jeremy O. Baum, Understanding Bioinformatics, Garland Science, 2007.
  • R.Durbin, S.Eddy, A.Krogh, and G.Mitchinson: Biological sequence analysis, Cambridge University Press, 1998 : ISBN-10: 0521629713.
  • R.Duda,P.Hart,D.Stork: Pattern classification, John Wiley & Sons, 2001:ISBN-10: 0471056693.
  • B.Levin: Genes VIII, Prentice Hall, 2004: ISBN-10: 0131239244.
  • A.M.Lesk: Introduction to Bioinformatics, Oxford University Press, 2005: ISBN-10: 0199277877.

FORMATIVE ASSESSMENT AND FEEDBACK

The students will receive written feedback on their coursework assignments.

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

Co-ordinator: Yuri Kalnishkan

Credits: 20

SUMMARY

The course addresses the on-line framework of machine learning in which the learning system learns and issues predictions or decisions in real time, perhaps in a changing environment. The course teaches protocols, methods and applications of on-line learning. The following topics are covered:

  • Markov chains and their applications; PageRank. Markov chain Monte-Carlo. Hidden Markov models.
  • Time series. ARMA model. Kalman filters.
  • Prediction with expert advice: learning protocol, loss function, regret.
  • Aggregating algorithm, its optimality properties and applications to general loss functions. Sleeping and switching experts.
  • Universal algorithms in on-line learning. Applications to portfolio theory: Cover’s universal rebalanced portfolios.
  • Reinforcement learning framework, Markov decision process, Q-learning.

PREREQUISITES

Working knowledge of a programming language with good data manipulation and visualisation capabilities, such as MATLAB, R, or Python. Taking CS5810 Programming for Data Analysis, or CS5100 Data Analysis, or CS5800 Principles of Computation and Programming is sufficient.

LEARNING OUTCOMES

By the end of the course students should be able to:

  • understand and evaluate probabilistic and non-probabilistic on-line learning protocols;
  • demonstrate advanced understanding of the prediction with expert advice and reinforcement learning frameworks;
  • demonstrate advanced knowledge of methods of Markov models, time series, prediction with expert advice and reinforcement learning;
  • analyse the properties of on-line learning algorithms;
  • apply on-line algorithms to real-world data and evaluate the results.

TEACHING AND LEARNING METHODS

The course will be presented as three/four hours of lectures per week during ten weeks, and one hour per week of practical classes during five weeks.

KEY BIBLIOGRAPHY

Core reading material:

  • C. Bishop, Pattern Recognition and Machine Learning, Springer, 2006.
  • D. Barber, Bayesian Reasoning and Machine Learning, Cambridge, 2012.
  • R. H. Shumway and D. S. Stoffer Time Series Analysis and Its Applications With R Examples, 3rd ed., Springer 2011.
  • N. Cesa-Bianchi and G. Lugosi. Prediction, Learning, and Games. Cambridge University Press, 2006.
  • R.S.Sutton and A.G.Barto. Reinforcement learning: an introduction, MIT Press, 1998.

FORMATIVE ASSESSMENT AND FEEDBACK

The lecturers will provide oral feedback during post-practical class discussions. The students will receive written feedback on their coursework assignments.

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

Co-ordinator: Dan O'Keeffe

Credits: 20

SUMMARY

The main aims of this module are for students to study the underlying principles of storage and processing massive collections of data, typical of today's Big Data systems, and to gain hands-on experience in using large and unstructured data sets for analysis and prediction. The topics covered include techniques and paradigms for querying and processing massive data sets (Spark, MapReduce, Hadoop, data warehousing, SQL for data analytics, stream processing), fundamentals of scalable data storage (NoSQL data bases such as MongoDB, Cassandra, HBase), working with dynamic web data (data acquisition, data formats), elements of cloud computing, and applications to real world data analytics and data mining problems (sentiment analysis, social network mining).

PREREQUISITES

Basic familiarity with fundamentals of computing along with programming experience in Python at the level of CS5800 or equivalent, or passing the relevant departmental test. Adequate knowledge of core database concepts including relational databases and SQL at the level of CS5855 or equivalent, or passing the relevant departmental test.

LEARNING OUTCOMES

By the end of the course students should be able to:

  • Knowledge and understanding of core concepts, theories and principles of large-scale data storage and processing frameworks;
  • Sound evaluation of opportunities and challenges related to leveraging those frameworks for building massive scale analytics solutions, and an ability to make recommendations to resolve these challenges;
  • Proficient knowledge and use of at least one large-scale data store system, and at least one massive scale processing framework;
  • Ability to design, develop, and evaluate an end-to-end analytics solution combining large-scale data storage and processing frameworks.
  • Knowledge of cloud computing as a platform for Big Data analytics.

TEACHING AND LEARNING METHODS

The course will be presented as two hours of lectures per week and two hours of practical classes per week during eleven weeks.

KEY BIBLIOGRAPHY

Core reading material:

  • Rajaraman, Leskovec, Ullman, Mining of Massive Datasets, Available for free from http://infolab.stanford.edu/~ullman/mmds.htm
  • White, Hadoop: The Definitive Guide, O'Reilly, ISBN-10: 1449311520
  • Lin, Dyer, Data-Intensive Text Processing with MapReduce, Synthesis Lectures on Human Language Technologies, 2010, 177 pages, (doi:10.2200/S00274ED1V01Y201006HLT007)
  • Chodorow, Dirolf, MongoDB: The Definitive Guide, O'Reilly, ISBN-10: 1449344682
  • Miner, Shook, MapReduce Design Patterns, O'Reilly, ISBN-10: 1449327176
  • Pramod J. Sadalage, Martin Fowler (2012), NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence, Addison-Wesley Professional; 1st edition (August 18, 2012)
  • Learning Spark: Lightning-Fast Big Data Analysis, by Karau, Konwinski, Wendell, and Zaharia: https://www.amazon.co.uk/Learning-Spark-Lightning-Fast-Data-Analysis/dp/1449358624

FORMATIVE ASSESSMENT AND FEEDBACK

The lecturers will provide oral feedback during post-practical class discussions. The students will receive written feedback on their coursework assignments.

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

Co-ordinator: Zhiyuan Luo

Credits: 20

SUMMARY

The module aims to teach the principles and arts of statistical visualisation and exploratory analysis of data. There are principles, theory, and skills to be acquired. Content includes: 

  • Construction of informative bivariate plots. This will cover standard axis transformations and why they are useful, and also the importance of constructing data transformations such that a reference hypothesis presents in the simplest possible form.
  • Smoothing with loess. Visualisation of distributions: histograms, binning, and kernel density estimation; cumulative distributions and QQ plots. These topics will be backed up with plenty of practical examples and coursework.
  • Visualisation of multivariate data. Linear projections and principal components analysis in primal and dual mode. Kernel PCA. Canonical correlations analysis (CCA) and Kernel CCA.
  • Dimensional reduction. Non-linear methods, examples such as t-SNE, Isomap, and proxigrams.
  • Exploratory cluster analysis, and metrics for comparison of clusterings.
  • Standard methods for visualisation of relational and graph data will be described including practical implementations such as Gephi.
  • Checking a found pattern by constructing a suitable randomisation of the data; importance of guarding against 'snooping'.
  • Principles of selecting modes of presentation for various quantities; basic principles of colour scale design and glyph choice.

LEARNING OUTCOMES

By the end of the module students should be able to:

  • perform open-ended exploratory analysis of data, and master the analytical presentation and critical evaluation of the results of statistical analyses;
  • construct linear projections of multivariate data and demonstrate an advanced understanding of non-linear dimension reduction methods;
  • demonstrate practical experience of using standard graph visualisation methods and evaluation of results;
  • be effective in avoiding data snooping;
  • critically evaluate choices in representational mode, glyph design, and colour design for presentation graphics.

TEACHING AND LEARNING METHODS

The course will be presented as two hours of lectures per week during eleven weeks, and one hour per week of practical classes during eleven weeks.

KEY BIBLIOGRAPHY

Core reading material:

  • Visualising Data, by William S. Cleveland.
  • The Elements of Graphing Data, by William S. Cleveland.
  • The Visual Display of Quantitative Data, by Edward Tufte.
  • Envisioning Information by Edward Tufte.

FORMATIVE ASSESSMENT AND FEEDBACK

The students will receive written feedback on their coursework assignments.

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

Co-ordinator: Giorgios Koutsoukos

Credits: 20

SUMMARY

Business Intelligence (BI) refers to the skills, processes, methodologies, technologies, applications, and practices used in order to leverage (gathering, storing, analyzing) an organization's internal and external information assets to support and improve decision-making. With the advent of Big-Data there is considerably increased demand for skills and knowledge, both conceptual and technological, that can be effectivelly applied to support this new era of Big-Data based decision-making. This module aims to provide students with:

  • a broad understanding of the information assets and the conceptual and technical architectures of information and business intelligence systems in modern organizations
  • the necessary background knowledge of, and skills to design, implement and evaluate business intelligence systems and technologies.

Module content:

  • Introduction to Information Systems & Business Intelligence: Overview of Information Systems and BI Systems, Information Systems and BI Technical Architectures (Logical & Physical aspects), Acquisition models and Business cases.
  • Data Warehousing and Dimensional Modelling (Defintions, Concepts, Architectures, Design Processes, Implementation Aspects)
  • BI Applications: OLAP, Reports, Dashboards, Data Mining, Visualization and UI design
  • Practical Sessions (Surgeries, Labs) on Dimensional Modelling, Reports and Dashboards using BI tools.

LEARNING OUTCOMES

By the end of the module students should be able to:

  • have a holistic view of business intelligence systems and their role in the IT environment of modern organizations
  • understand end evaluate the concepts, terminology and architectures of Data Warehouses and BI solutions
  • understand Data Modelling concepts and provide design solutions using Dimensional Modeling
  • know the important elements of business intelligence applications such as Data Analysis, Data Mining and Dashboards; understand and evaluate BI Visualization aspects and the relationship of BI solutions to CRM and ERP systems.
  • have hands-on experience with industrial business intelligence tools

TEACHING AND LEARNING METHODS

Normally 4 hours per week of teaching sessions.

KEY BIBLIOGRAPHY

Core reading material:

  • R. Sherman: "Business Intelligence Guidebook, From Data Integration to Analytics", 1st edition, 2014.
  • E.Turban, R.Sharda, D.Delen, D. King: “Business Intelligence: A Managerial Approach”, 2nd edition, 2011.
  • R.Kimball, M. Ross: “The Data Warehouse Toolkit, The Complete Guide to Dimensional Modeling”, 2nd edition, 2001.

FORMATIVE ASSESSMENT AND FEEDBACK

The lecturers will provide oral feedback during practical sessions and written feedback to coursework.

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

Co-ordinator: Gregory Chockler

Credits: 10

SUMMARY

The module will be structured around a series of programming problems and assignments designed to teach students basics of algorithmic thinking and problem solving using programming. The students will be introduced to the Python programming language features and constructs, which will be put in the context of solving specific algorithmic tasks.

LEARNING OUTCOMES

By the end of the module students should be able to:

  • understand standard programming concepts;
  • apply understanding to solve programming tasks;
  • evaluate programming solutions.

TEACHING AND LEARNING METHODS

The course will be presented as one hour of lectures and two hours of practical classes per week during eleven weeks.

KEY BIBLIOGRAPHY

Core reading material:

FORMATIVE ASSESSMENT AND FEEDBACK

The lecturers will provide oral feedback during post-practical class discussions.

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

Co-ordinator: Alberto Paccanaro

Credits: 10

SUMMARY

This practical module aims to give students advanced understanding of MATLAB, a programming language widely used for data analysis, and to show connections to Python libraries and to give an overview of Weka.
Coverage of MATLAB includes:

  • Using MATLAB as a calculator and using the help system.
  • Data input and output. Vectors, arrays and matrices.
  • Data visualization (including plots in 2 and 3 dimensions, scatter plots, barplots, histograms).
  • Implementing concepts from linear algebra and statistics (including probability distributions).
  • Programming: loops, conditional executions, string manipulations, data structures, etc.
  • Writing functions, debugging the code, using packages and toolboxes

LEARNING OUTCOMES

By the end of the module students should be able to:

  • have a good understanding of the general principles of the MATLAB programming language;
  • apply MATLAB to implement algorithms for data analysis
  • have an understanding of Python libraries used for data analysis;
  • Have an understanding of Weka

TEACHING AND LEARNING METHODS

The course will be presented as one hour of lectures and one hour of practical classes per week during eleven weeks.

KEY BIBLIOGRAPHY

Core reading material:

  • MATLAB: A Practical Introduction to Programming and Problem Solving, Third Edition, Stormy Attaway, 2013, Elsevier
  • Data Mining: Practical Machine Learning Tools and Techniques, Third Edition, Ian H. Witten, Eibe Frank and Mark A. Hall, 2011, Morgan Kaufmann

FORMATIVE ASSESSMENT AND FEEDBACK

The lecturers will provide oral feedback during post-practical class discussions.

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

Co-ordinator: Nicola Paoletti

Credits: 10

SUMMARY

The module will present the Internet of Things (IoT) by covering the applications of IoT in society, the components of typical IoT systems and the trends for the future.
The module will expose students to IoT design considerations, constraints and interfacing between the physical world and the IoT devices.
After this stage, the module will focus on how the Arduino platform works in terms of the physical board, the libraries and the IDE (integrated development environment). It will cover 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, the module will provide hands-on knowledge on how to plug shields into the main Arduino board to perform other functions such as sensing and actuating.

LEARNING OUTCOMES

By the end of this module a student should be able to:

  • Design, build, and test a simple microcontroller-based embedded system
  • Using C/C++ code to program an embedded system
  • Critically analyse requirements and make design trade-off decisions between hardware, software and networking
  • Connect multiple devices to achieve planned goals

TEACHING AND LEARNING METHODS

Up to 22 hours of lectures and laboratory classes.

KEY BIBLIOGRAPHY

  • Michael Margolis, Arduino Cookbook, 3rd edition
  • John Hughes, Arduino in a Nutshell

FORMATIVE ASSESSMENT AND FEEDBACK

Verbal feedback on progress will be given during the weekly laboratory sessions

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

Co-ordinator: Magnus Wahlström

Credits: 10

SUMMARY

The aim of this module is to teach students a number of database concepts and techniques. This ranges from the specification and modelling stages to the implementation of relational databases. The course also introduces students to the usage of databases from software applications. The content of the course includes:

  • Data modelling: views, subschema, data dictionary, data independence, entity relationship model.
  • The relational model: relations, attributes, domains, relational algebra.
  • Database design: normalisation, normal forms, entities and attributes
  • SQL: basic SQL, correspondence between the relational model and SQL commands, simple queries, combination and sub-queries
  • Administration and implementation: integrity, recovery from failure, concurrency, deletion and updating, forms, report writing.

LEARNING OUTCOMES

By the end of this module a student should be able to:

  • explain the issues involved in database design and the theory of the relational view of data
  • describe the crucial issues concerning database integrity and recovery from failure
  • write SQL queries
  • design and implement a database, from the user specifications to the final design

TEACHING AND LEARNING METHODS

Lecture based delivery supported by laboratory sessions. Normally 3 hours of sessions per week.

KEY BIBLIOGRAPHY

  • Database System Concepts, 6th Edition, Avi Silberschatz, Henry F. Korth, S. Sudarshan McGraw-Hill, ISBN 0-07-295886-3.

FORMATIVE ASSESSMENT AND FEEDBACK

Verbal feedback will be given during the laboratory sessions.

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

Co-ordinator: Dan O'Keeffe

Credits: 20

SUMMARY

The module covers fundamental principles of building modern distributed systems, for example in the context of the Internet of Things. The specific emphasis will be on the two central components of the IoT reference architecture: cloud infrastructure and wireless networking. The module also discusses 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 challenges.

The topics covered include:

  • abstract models (such as the synchronous and asynchronous distributed computing models, models for wireless networks);
  • algorithmic techniques (such as distributed coordination, fault-tolerant design of distributed algorithms, synchronization techniques);
  • practical case studies.

Students will also have an opportunity to apply the studied material for implementing various components of a realistic distributed system through a series of formative coursework assignments, lab practicals, and a final project.

LEARNING OUTCOMES

  • Display a mastery of core concepts, theories and principles of distributed systems
  • Demonstrate knowledge of algorithmic techniques for solving problems in a distributed environment.
  • Explain the practical aspects of implementing various components of a distributed system
  • Implement various components of a realistic distributed system

TEACHING AND LEARNING METHODS

Normally 4 hours per week of lectures and laboratory sessions.

KEY BIBLIOGRAPHY

  • Nancy A. Lynch: Distributed Algorithms. The Morgan Kaufmann Series in Data Management Systems (1996). ISBN-13: 978-1558603486
  • Hagit Attiya, Jennifer Welch: Distributed Computing: Fundamentals, Simulations and Advanced Topics. John Wiley & Sons; 2 edition (11 Mar. 2004). ISBN-13: 978-0471453246
  • Christian Cachin, Rachid Guerraoui, Luís Rodrigues: Introduction to Reliable and Secure Distributed Programming. Springer 2 edition (11 Feb. 2011). ASIN: B008R61LBG
  • Maurice Herlihy, Nir Shavit: The Art of Multiprocessor Programming. Morgan Kaufmann; Revised edition edition (2012). ISBN-13: 978-0123973375

FORMATIVE ASSESSMENT AND FEEDBACK

Oral feedback in laboratory sessions.

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

Co-ordinator: Vladimir Vovk

Credits: 10

SUMMARY

The aim of the module is to acquaint the students with several key methods and techniques of machine learning, with a particular emphasis on kernel methods and conformal prediction. In particular, it will cover the following specific topics. Nearest neighbours for classification and regression; interesting distances. Conformal prediction and conformalizing nearest neighbours. Ridge regression and Lasso. Inductive conformal predictors and cross-conformal predictors. Support vector machines for classification and regression. Kernel trick and its applications to the algorithms covered so far. Practically useful kernels, including string kernels. Conformalized versions.

LEARNING OUTCOMES

By the end of the module students should be able to:

  • Demonstrate advanced knowledge of the theoretical foundations of several key machine learning methods;
  • Understand at an advanced level the main advantages and limitations of various approaches to machine learning and specific machine-learning algorithms;
  • Have a mastery and be able to implement several machine-learning algorithms;
  • Understand, at an advanced level, ways to apply the ideas and algorithms of machine learning in industry, medicine, and other fields.

TEACHING AND LEARNING METHODS

The module will be presented as two hours of lecture slots per week during ten weeks, and one hour per week of practical classes during nine weeks.

KEY BIBLIOGRAPHY

Core reading material:

  • Andreas C. Mueller and Sarah Guido (2016) Introduction to Machine Learning with Python. O'Reilly Media
  • Vineeth N. Balasubramanian et al. (2014) Conformal Prediction for Reliable Machine Learning. Elsevier
  • Gareth James et al. (2013) An Introduction to Statistical Learning. Springer
  • Trevor Hastie et al. (2009) The Elements of Statistical Learning. Second edition. Springer
  • John Shawe-Taylor and Nello Cristianini (2004) Kernel Methods for Pattern Analysis. Cambridge University Press
  • Tom M. Mitchell (1997) Machine Learning. McGraw-Hill

FORMATIVE ASSESSMENT AND FEEDBACK

Students will have access to help and oral feedback during practical classes.

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

Co-ordinator: Yuri Kalnishkan

Credits: 10 credits

SUMMARY

Pricing derivatives (and associated strategies of dynamic hedging) is the main topic of this module. The module is called "computational finance" because many derivatives are too complicated to be priced and hedged using simple mathematical formulae and therefore advanced computational models are required. The second major topic is risk exposure including the concept of value of risk.

Module content:

  • Introduction: financial markets; the "rules of the game".
  • Taxonomy of securities: main kinds of derivative securities and underlying markets.
  • Mathematical techniques: Wiener process; diffusion processes as mathematical models of price dynamics; stochastic differential equations; computer simulations.
  • Pricing and hedging in the Black-Scholes world: risk-neutral valuation; the Black-Scholes equation and analytic formulae; the "Greek letters" and their use.
  • Beyond the Black-Scholes world: application issues; computational models; fractals and their use in finance.
  • Risk management: Value at Risk. Analytical and computational techniques.
  • Efficient markets hypothesis: theory vs empirical evidence.

LEARNING OUTCOMES

By the end of the module students should be able to:

  • demonstrate advanced understanding of mathematical and computational models of underlying and derivative securities;
  • evaluate and apply techniques for pricing derivatives and for dynamic hedging;
  • demonstrate advanced understanding of mathematical and computational models of risk exposure;
  • evaluate and apply techniques for calculating value at risk;
  • demonstrate advanced understanding of the market efficiency hypothesis and apply it to examine financial techniques.

TEACHING AND LEARNING METHODS

The module will be presented as three hours of lecture slots per week during ten weeks.

KEY BIBLIOGRAPHY

Core reading material:

  • J.Hull, Options, Futures, and Other Derivatives. Prentice Hall, 8th edition, 2011 (or any other edition)
  • Paul Wilmott Introduces Quantitative Finance. Wiley, 2nd edition, 2007.

FORMATIVE ASSESSMENT AND FEEDBACK

The students will receive written feedback on their coursework assignments.

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

Co-ordinator: Kostas Stathis

Credits: 10

SUMMARY

The module aims to teach the concept of an agent and multi-agent system, and the main applications for which they are appropriate; the main issues surrounding the design of intelligent agents and multi-agent society; a contemporary platform for implementing agents and multi-agent systems.

Module content:

  • Introduction: what is an agent: agents and objects; agents and expert systems; agents and distributed systems; typical application areas for agent systems.
  • Intelligent Agents: (a) abstract architectures for agents; tasks for agents. (b) the design of intelligent agents - reasoning agents (e.g., Agent0), (c) agents as reactive systems (e.g., subsumption architecture); (d) hybrid agents (e.g., PRS); layered agents (e.g., Interrap).
  • Multi-Agent Systems: (a) classifying multi-agent interactions - cooperative versus non-cooperative; (b) zero-sum and other interactions; what is cooperation? how cooperation occurs - the Prisoner's dilemma and Axelrod's experiments; (d) interactions between self-interested agents: auctions systems; negotiation; argumentation; (e) interaction languages and protocols: speech acts, KQML/KIF, the FIPA framework, ontologies, coordination languages.(f) interactions between benevolent agents: cooperative distributed problem solving (CDPS), partial global planning; coherence and coordination;
  • Applications of intelligent agents and multi-agent systems.

LEARNING OUTCOMES

By the end of the module students should be able to:

  • understand the notion of an agent, explain how agents are distinct from other software paradigms (e.g., objects), and analyse the characteristics of applications that lend themselves to an agent-oriented solution;
  • appraise the key issues associated with constructing agents capable of intelligent autonomous action, and the main approaches taken to developing such agents;
  • assess the key issues in designing societies of agents that can effectively cooperate in order to solve problems, including an evaluation of the key types of multi-agent interactions possible in such systems;
  • evaluate the main application areas of agent-based solutions, and develop a meaningful agent-based system using a contemporary agent development platform

TEACHING AND LEARNING METHODS

The module will be presented as two hours of lecture slots per week during ten weeks, and one hour per week of tutorials during ten weeks.

KEY BIBLIOGRAPHY

Core reading material:

  • M. Wooldridge, An Introduction to MultiAgent Systems. 2nd Edition, John Wiley & Sons, 2009. ISBN 047149691X.
  • G. Weiss, editor. Multi-Agent Systems. The MIT Press, 1999.
  • J. Ferber. Multi-Agent Systems. Addison-Wesley, 1999.
  • M. Singh and M. Huhns. Readings in Agents. Morgan-Kaufmann Publishers, 1997.

FORMATIVE ASSESSMENT AND FEEDBACK

The lecturers will provide oral feedback during tutorials. The students will receive written feedback on their coursework assignments.

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

Co-ordinator: Chris Watkins

Credits: 20

SUMMARY

The aim of the module is to give students an introduction to deep learning that covers neural network optimisation by gradient descent from first principles, and which also gives a broader introduction to a range of advanced architectures, with hands-on implementation.


The module starts by considering models of artificial neural networks for supervised learning, and introduces notions of activation function, loss function, and computation of loss-gradients using back-propagation with the chain rule. Neural network learning with back-propagation and different gradient descent algorithms will be covered in detail, and visualised in lab-sessions. Next, the 'disappearing gradient' problem in deep architectures will be raised, and methods for resolving this problem will be discussed. A range of deep architectures will be described for discriminative learning, generative learning and learning of representations, and for reinforcement learning. Students will implement a deep architecture using a toolkit in a project assignment at the end of the module.

LEARNING OUTCOMES

By the end of this module a student should be able to:

  • Demonstrate an advanced understanding of the notions of an artificial neural network, and of learning by minimising a loss function, using training, validation, and test data sets.
  • Master computation of loss-gradients for different neural network architectures, and of a range of algorithms for optimisation by gradient descent, as applied in neural networks.
  • Demonstrate a good comparative understanding of a range of deep learning architectures.
  • Master the basic techniques necessary for gradient optimisation of deep networks, and of some diagnostics needed for determining whether gradient descent is working correctly.
  • Apply deep learning algorithms to real-world data and evaluate the results.
  • Implement and run deep learning algorithms using appropriate tool-kits.

TEACHING AND LEARNING METHODS

Lecture-based delivery supported by laboratory sessions. Normally 4 hours of sessions per week.

KEY BIBLIOGRAPHY

  • Deep Learning, by Ian Goodfellow, Yoshua Bengio, and Aaron Courville, MIT Press Dec 2016 (already available on web)
  • The module makes extensive use of notes, handouts, and freely available material on the web , which is abundant and rapidly changing.

FORMATIVE ASSESSMENT AND FEEDBACK

Verbal feedback will be given during the laboratory sessions.

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

Co-ordinator: Sara Bernardini
Credits: 10

SUMMARY

This specialist course 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 course 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 course will continue by covering intelligent agents and classical search to then move to local search and optimisation algorithms. The course will end with adversarial search and constraint satisfaction problems. 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.

LEARNING OUTCOMES

By the end of the module students should be able to:

  • Have an advanced understanding of foundational AI principles, methods and algorithms
  • Use a high-level programming language (e.g. Python) to efficiently implement AI algorithms
  • Model real-world problems by using the rigorous mathematical tools that are at the core of AI and solve them by applying AI techniques
  • Use tools to tackle the new AI problems that they will encounter in their career as AI professionals
  • Have an in depth understanding and appreciation of ethical considerations in Artificial Intelligence

TEACHING AND LEARNING METHODS

Normally 2 hours per week of teaching sessions.

KEY BIBLIOGRAPHY

  • Artificial Intelligence: A Modern Approach (Third edition) by Stuart Russell and Peter Norvig
  • Superintelligence: Paths, Dangers, Strategies by Nick Bostrom

FORMATIVE ASSESSMENT AND FEEDBACK

The lecturers will provide oral feedback during practical sessions and written feedback to coursework.

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

Co-ordinator: Nicola Paoletti
Credits: 10

SUMMARY

The aim of this course 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 course will cover: common guidelines and issues in experimental design (formulate the right research questions, select the appropriate methods, identify threats to validity); fundamentals of probability theory; descriptive statistics for analysis and visualization of experimental data; statistical inference methods (hypothesis tests including t-test, U test, and paired tests, estimation of parameters and confidence intervals, and sampling methods such as Monte Carlo and bootstrap); analysis of variance and covariance; regression and classification methods to learn predictive models from data (linear regression, logistic regression); Bayesian models and inference. The theoretical concepts will be complemented by code examples, through which the student can gain hands-on experience in the methods taught.

LEARNING OUTCOMES

By the end of the module students should be able to:

  • Have an advanced understanding of the key principles in the design of experiments in AI and threats to their validity
  • Have an advanced understanding of, and apply, methods to analyse and visualize data from experiments
  • Have an advanced understanding of classical statistical inference; select and apply appropriate hypothesis tests, parameter estimation, and sampling methods
  • Apply methods to build statistical models from data for regression and classification
  • Apply Bayesian models and inference
  • Gain hands-on experience by developing and evaluating code solutions to experimental design problems

TEACHING AND LEARNING METHODS

Normally 2 hours per week of teaching sessions.

KEY BIBLIOGRAPHY

  • Cohen, Paul R. Empirical methods for artificial intelligence. Vol. 139. Cambridge, MA: MIT press, 1995.
  • Seltman, Howard J. "Experimental design and analysis." Online at: http://www.stat.cmu.edu/~hseltman/309/Book/Book.pdf (2012).
  • James, Gareth, et al. An introduction to statistical learning. Vol. 112. New York: springer, 2013.

FORMATIVE ASSESSMENT AND FEEDBACK

The lecturers will provide oral feedback during practical sessions.

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

Co-ordinator: Sara Bernardini
Credits: 20 credits

SUMMARY

This specialist course focuses on acquiring a deep understanding of the principles and techniques that are needed to design and build autonomous intelligent systems (AISs). The course 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 course will then tackle autonomous decision making techniques, from AI planning to probabilistic reasoning and Markov Decision Processes. The course will then cover reinforcement learning and techniques for cooperation and coordination both between artificial agents and between them and human beings. 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.

LEARNING OUTCOMES

By the end of the module students should be able to:

  • Have an advanced understanding of the principles and techniques to design and build autonomous intelligent systems
  • Use of knowledge representation languages to build models of core components of an autonomous intelligent system
  • Use a high-level programming language (e.g. Python) to efficiently implement algorithms for building autonomous intelligent systems
  • Design and build prototypes of autonomous intelligent systems to tackle real-world problems
  • Use tools to tackle the new problems in the area of autonomous intelligent systems

TEACHING AND LEARNING METHODS

Normally 4 hours per week of teaching sessions.

KEY BIBLIOGRAPHY

  • Artificial Intelligence: A Modern Approach (Third edition) by Stuart Russell and Peter Norvig
  • Scientific papers on the different topics covered by the module

FORMATIVE ASSESSMENT AND FEEDBACK

The lecturers will provide oral feedback during practical sessions.

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

Co-ordinator: Yang Gao
Credits: 20

SUMMARY

The aim of this course 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.
Recent recurrent deep learning architectures for text processing will be covered in depth, using examples from the research literature.

LEARNING OUTCOMES

By the end of the module students should be able to:

  • Have an advanced understanding of theory of syntax, semantics, and pragmatics
  • Have an advanced understanding techniques for basic processing of text corpora
  • Have an advanced understanding typical natural language processing tasks
  • Implement modern deep learning methods of natural language processing.

TEACHING AND LEARNING METHODS

Normally 4 hours per week of teaching sessions.

KEY BIBLIOGRAPHY

  • Natural Language Processing in Action: understanding, analysing, and generating text with Python, by Hobson and Cole, Springer 2017
  • Deep Learning with Natural Language Processing by Li Deng and Yang Liu, Springer, July 2018-06-14
  • The Handbook of Computational Linguistics and Natural Language Processing (Blackwell Handbooks in Linguistics) by Alexander Clark, 2012
  • Applied Text Analysis with Python, by Bengfort and Bilbro, O'Reilly 2018

FORMATIVE ASSESSMENT AND FEEDBACK

The lecturers will provide oral feedback during practical sessions.

SUMMATIVE ASSESSMENT

Details of coursework submission deadlines will be published on the department website at the start of term.

Co-ordinator: Sara Bernardini
Credits: 0

SUMMARY

The main aim of the module is to make students aware of the multitude of ethical
implication of advanced technology. The relevant issues include privacy, data
ownership, informed consent, weaponization of technology, social impact of
robotics, regulations pertaining to data protection and robotics etc. This list
cannot be complete or exhaustive, as new issues will be arising through the years.

The key part of the course is the group presentations made by the students on a
technological issue of ethical significance, such as a study of a real-life case
covered in the media, discussing implications of a piece of legislation (such as
GDPR), or a broader issue such as social impact of robots. By making the
presentation and listening to presentations of others, the students learn to
identify and analyse issues of ethical significance, appreciate diverse
approaches to ethical issues and learn to critically evaluate them.

The presentations also serve as transferable skills training.

The presentations will be supplemented by talks by invited specialists as part
of the existing Advanced Topics talks programme.

The module also seeks to develop students’ study skills to make sure the
students comply with the College regulations and avoid plagiarism. This will be
achieved through talks by lecturers as part of the existing modules and a moodle
quiz, which must be passed (possibly after multiple attempts).

Explore Royal Holloway

Get help paying for your studies at Royal Holloway through a range of scholarships and bursaries.

There are lots of exciting ways to get involved at Royal Holloway. Discover new interests and enjoy existing ones

Heading to university is exciting. Finding the right place to live will get you off to a good start

Whether you need support with your health or practical advice on budgeting or finding part-time work, we can help

Discover more about our 21 departments and schools

Find out why Royal Holloway is in the top 25% of UK universities for research rated ‘world-leading’ or ‘internationally excellent’

They say the two most important days of your life are the day you were born, and the day you find out why

Discover world-class research at Royal Holloway

Discover more about who we are today, and our vision for the future

Royal Holloway began as two pioneering colleges for the education of women in the 19th century, and their spirit lives on today

We’ve played a role in thousands of careers, some of them particularly remarkable

Find about our decision-making processes and the people who lead and manage Royal Holloway today