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. 

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

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

Column C indicates the number of credits (15 or 30), and Column T the term in which the module will run in 2024-25.

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 2024-25

Code Module C T N AI DSA CF ML

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

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

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

       
EC5310 Corporate Finance 15 1   NA NA E NA
EC5320 Foundations of Finance 30 1,2 3 NA NA C NA
EC5321 Investment and Portfolio Management 15 2   E E C  E
EC5340 Fixed Income Securities and Derivatives 15 - * E E E  E
EC5118 Time Series Econometrics 15 2   E E E  E
EC5370 Private Equity 15 - * E E E E

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

       
IY5612 Critical Infrastructure Security 15 2   E E E E
IY5609 Digital Forensics 15 2   E E E E
IY5610 Security Testing 15 2   E E E E
IY5617 Usable Security and Privacy 15 2   E E E E

 

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

Co-ordinator: Nicolo Colombo and Vladimir Vovk

Credits: 30

SUMMARY

The module focuses on presenting and explaining machine learning methods for analysing data. The first part of the course consists of a quick overview of pre-processing methods and basic statistical concepts, a detailed presentation of simple algorithms for supervised learning, e.g. linear and logistic regression models, the K-Nearest Neighbours algorithm, and Shallow Neural Networks, and a description of how to provide a statistically sound evaluation of the output of machine learning models. The second part of the course explores more advanced techniques, e.g. ensemble methods, and gives an introduction to unsupervised learning approaches, e.g. clustering.

LEARNING OUTCOMES

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

  • extract value and insight from data
  • understand, develop, validate, evaluate, and use effectively machine learning models and statistical models, and
  • work with and implement methods and techniques such as clustering, regression, decision trees, and neural networks.

KEY BIBLIOGRAPHY

Core reading material:

  • Hastie, T., Tibshirani, R. and Friedman, J. (2009) Elements of Statistical Learning: Data Mining, Inference, and Prediction. 2nd ed. New York: Springer.
  • Bishop, C. M. (2006) Pattern Recognition and Machine Learning. Springer.
  • DeGroot, M. H. and Schervish, M. J. (2001) Probability and Statistics. 3rd edition. Pearson Education (US).
  • Han, J., Pei, J. and Kamber, M. (2011) Data Mining: Concepts and Techniques. 3rd edition. Elsevier Science & Technology.
  • Mitchell, Tom M., and Tom M. Mitchell. Machine learning. Vol. 1. No. 9. New York: McGraw-hill, 1997.
  • Barber, D. (2010) Bayesian Reasoning and Machine Learning. (see Appendix A for a review of calculus and linear algebra)
  • Duda, R. O., Hart, P. E. and Stork, D. G. (2001) Pattern Classification. 2nd Edition. New York: Wiley.

Additional reading:

  • The Bayes Networks chapter of Judea Pearl, Probabilistic Reasoning in Intelligent Systems, 1988.
  • James, G. et al. (2013) An Introduction to Statistical Learning: with Applications in R. New York, NY: Springer New York
  • Ash, Robert B. Basic probability theory. Courier Corporation, 2008.
  • Breiman, Leo, et al. Classification and regression trees. Routledge, 2017.

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

Credits: 15

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.
  • Online setup of the bandit problem.

LEARNING OUTCOMES

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

  • Understand the online learning framework and appreciate the difference with the batch approach; analyse the setup of practical problems
  • demonstrate advanced understanding of the prediction with expert advice and online bandit algorithms;
  • demonstrate advanced knowledge of methods of Markov models, time series, and Kalman filters;
  • analyse the properties of on-line learning algorithms;
  • Implement online learning algorithms, apply the algorithms to real-world data and evaluate the results .

 

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, Springer 2017.
  • N. Cesa-Bianchi and G. Lugosi. Prediction, Learning, and Games. Cambridge University Press, 2006.

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

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.

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
  • 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
  • Chodorow, Dirolf, MongoDB: The Definitive Guide, O'Reilly, ISBN-10: 1449344682
  • 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)
  • Designing Data Intensive Applications: The Big Ideas behind Reliable, Scalable and Maintainable Systems. Martin Kleppmann (2017), O'Reilly, ISBN-10: 1449373320

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

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.

KEY BIBLIOGRAPHY

Core reading material:

  • Visualising Data, by William S. Cleveland, Hobart Press, 1993, ISBN-10: 0963488406, ISBN-13: ‎978-0963488404.
  • The Elements of Graphing Data, by William S. Cleveland, Hobart Press, 1994, ISBN-10: ‎0963488414, ISBN-13: 978-0963488411 .
  • The Visual Display of Quantitative Data, by Edward Tufte, Graphics Press, 2001,  ISBN-10: 9780961392147, ISBN-13: 978-0961392147 .
  • Envisioning Information by Edward Tufte, Graphics Press, 1990, ISBN-10: 0961392118, ISBN-13: 978-0961392116.
  • The Art of Statistics Learning from Data by David Spiegelhalter, Pelican Books, 2019, ISBN-10: ‎ 0241398630, ISBN-13: ‎ 978-0241398630.

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

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

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

Credits: 15

SUMMARY

The course will be structured around a series of programming problems and assignments designed to teach students basics of algorithmic thinking and problem solving using programming specifically dealing with data. The students will be introduced to the Python programming language features and constructs, which will be put in the context of processing data.

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.

KEY BIBLIOGRAPHY

Core reading material:

  • Introduction to Computation and Programming Using Python: With Application to Understanding Data by John Guttag

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

Credits: 15

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

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

SUMMARY

The course will cover fundamental principles of building modern distributed systems, for example in the context of cloud computing or the Internet of Things. The course will discuss major challenges found in these environments (such as massive scale, wide distribution, decentralisation, unreliable communication links, component failures and network partitions) and general approaches for dealing with these challenges. The topics covered will include: abstract models (such as the synchronous and asynchronous distributed computing models); algorithmic techniques (such as distributed coordination, fault-tolerant design of distributed algorithms, synchronization techniques); practical case studies. The 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

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
  • Kleppmann, Martin: Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable and Maintainable Systems, 2017, O’Reilly, ISBN-10: 1449373321 
  • 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: 15

SUMMARY

The aim of the course 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. Kernel trick and its applications to the algorithms covered so far. Practically useful kernels, including string kernels.

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

KEY BIBLIOGRAPHY

Core reading material:

  • Andreas C. Muller and Sarah Guido. Introduction to machine learning with Python. O’Reilly Media, 2017.
  • Trevor Hastie, Robert Tibshirani, and Jerome Friedman. The elements of statistical learning, Second edition. Springer, 2009.
  • Vladimir Vovk, Alex Gammerman, and Glenn Shafer. Algorithmic learning in a random world. Springer, 2022.
  • Gareth James, Daniela Witten, Trevor Hastie, and Robert Tibshirani. An introduction to statistical learning with applications in R, Second edition. Springer, 2021.
  • Vineeth N. Balasubramanian, Shen-Shyang Ho, and Vladimir Vovk (editors). Conformal prediction for reliable machine learning. Elsevier, 2014.

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

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

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

KEY BIBLIOGRAPHY

Core reading material:

  • M. Wooldridge, An Introduction to MultiAgent Systems. 2nd Edition, John Wiley & Sons, 2009. ISBN 047149691X.

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

Credits: 15

SUMMARY

The aim of the course 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 course 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 in a project assignment at the end of the course.

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.

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: Li Zhang
Credits: 15

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

KEY BIBLIOGRAPHY

  • Artificial Intelligence: A Modern Approach (Third edition) by Stuart Russell and Peter Norvig
  • Mark Lutz, Learning Python, 5th Edition. 2017.

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: Santiago Franco Aixela
Credits: 15

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

KEY BIBLIOGRAPHY

  • Artificial Intelligence: A Modern Approach (4th 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: Chris Watkins
Credits: 15

SUMMARY

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: use of NLTK and Spacy and other toolkits, and regular expressions, for practical tasks with text corpora; notions of POS tagging, named entity extraction, and construction of word-embeddings. Recent recurrent deep learning architectures for text processing will be covered in depth, using examples from the research literature. The design, nature and capabilities of large language models (LLMs) will be analysed, with practical examples.

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
  • Have advanced understanding of theory and use of modern deep learning for NLP with large language models

KEY BIBLIOGRAPHY

  • Jurafsky and Martin, Speech and Language Processing, 3rd edition. (Pre-publication text freely available online.)
  • Natural Language Processing Toolkit Book, 2014 (Freely available online)

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: Yuri Kalnishkan
Credits: 15

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 module involves presentations by invited experts on ethical issues in technology. The students should also attend talks given as part of the CS5010 Advanced Topics talks programme. These will be supplemented by talks on transferable skills related to making presentations and essay writing. (Due to the irregular pattern of the talks, part-time students do not have to attend all of them in person and can watch the recorded videos; full-time students are expected to attend.) The students will have group and individual sessions with their academic advisors.

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 data protection), 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 students who cannot engage with the group presentations must record and submit an individual presentation.

After the presentation, the students need to write individual essays on a topic of the module.

The module also seeks to develop students’ study skills to make sure the students comply with the University regulations and avoid committing academic offence. This will be achieved through a Moodle quiz.

LEARNING OUTCOMES

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

  • identify and analyse issues of ethical significance in applications of technology
  • critically evaluate diverse viewpoints and approaches to issues of ethics, privacy, and regulations
  • appreciate the significance of social implications of technology
  • make a presentation and write an essay analysing ethical aspects of technology
  • approach their studies in a responsible way fully complying with College regulations

KEY BIBLIOGRAPHY

  • Michael Anderson. Machine ethics. Cambridge University Press, New York 2011

  • Rosemary Jay, Guide to the General Data Protection Regulation: a companion to Data protection law and practice (4th edition) Sweet & Maxwell First, London,  2017

  • Robotics: Ethics of artificial intelligence. Four leading researchers share their concerns and solutions for reducing societal risks from intelligent machines.  Nature 521, 415–418   (28 May 2015)

FORMATIVE ASSESSMENT AND FEEDBACK

Verbal feedback will be given during the supervisory meetings

.

SUMMATIVE ASSESSMENT

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

Co-ordinator: Chris Watkins
Credits: 15

SUMMARY

The aim of this module is to introduce students to reinforcement learning and the progress that has been made in this area during the last 30 years. The course starts with the question “What is intelligence?” and the abstraction to Markov decision processes is carefully motivated, and the limitations and implausibilities of this abstraction are carefully explained. Then the standard theory of stochastic dynamic programming is introduced, followed by the (now standard) theory of reinforcement learning in finite Markov decision processes, with a heuristic argument for convergence of Q learning. Then deep RL is introduced and reviewed, and a selection of major search-based deep RL algorithms (such as AlphaZero) is reviewed in depth. Finally, there is brief introduction to the commercially important area of contextual bandit problems.

LEARNING OUTCOMES

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

  • Understand the abstraction of sequential tasks as Markov decision problems
  • Understand optimisation methods for finite Markov decision problems
  • Understand reinforcement learning methods for finite Markov decision problems
  • Understand the issues in implementing deep direct reinforcement learning
  • Understand the major search-based deep reinforcement learning algorithms.
  • Understand the range of RL problems, including contextual bandit problems.

KEY BIBLIOGRAPHY

  • Reinforcement Learning (2nd edition) by RS Sutton and AG Barto, MIT Press, 2018 (this book covers the theory and algorithms)

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.

Explore Royal Holloway