Theoretical Computer Science MSc

  • Programme duration: Full-time: 12 months   Part-time: 24 months
  • Programme start: Autumn 2021
  • Entry requirements: You will need a 2:1 honours degree (or above) in a subject area closely related to Computer Science, Mathematics, or the intersection of these two subject areas.
Advanced Computer Science with Internet Economics

Module details

Due to the impact of COVID-19 we're changing how the course is delivered

Compulsory modules

Introduction to Computational Game Theory (COMP323)
Level3
Credit level15
SemesterFirst Semester
Exam:Coursework weighting0:20
Aims

To introduce the student to the notion of a game, its solutions, concepts, and other basic notions and tools of game theory, and the main applications for which they are appropriate, including electricity trading markets.

To formalize the notion of strategic thinking and rational choice by using the tools of game theory, and to provide insights into using game theory in modeling applications.

To draw the connections between game theory, computer science, and economics, especially emphasizing the computational issues.

To introduce contemporary topics in the intersection of game theory, computer science, and economics.

Learning Outcomes

(LO1) A student will understand the notion of a strategic game and equilibria, and understand the characteristics of main applications of these concepts;

(LO2) Given a real world situation a student should be able to identify its key strategic aspects and based on these be able to connect them to appropriate game theoretic concepts;

(LO3) A student will understand the key connections and interactions between game theory, computer science and economics;

(LO4) A student will understand the impact of game theory on its contemporary applications, and be able to identify the key such application areas;

(S1) Numeracy/computational skills - Problem solving

(S2) Critical thinking and problem solving - Creative thinking

(S3) Numeracy/computational skills - Reason with numbers/mathematical concepts

Algorithmic Game Theory (COMP559)
LevelM
Credit level15
SemesterSecond Semester
Exam:Coursework weighting75:25
Aims

1. To provide an understanding of the inefficiency arising from uncontrolled, decentralized resource allocation.
2. To provide a foundation for modelling various mechanism design problems together with their algorithmic aspects.
3. To provide the tools and paradigms for the design and analysis of efficient algorithms/mechanisms that are robust in environments that involve interactions of selfish agents.
4. To review the links and interconnections between algorithms and computational issues with selfish agents.
5. To provide an in-depth, systematic and critical understanding of selected significant topics related to algorithmic game theory, together with the related research issues.

Learning Outcomes

(LO1) Have a critical awareness ofcurrent problems, important concepts and research issues in  the field ofalgorithmic game theory. 

(LO2) Systematic knowledge andability to quantify the inefficiency of equilibria.

(LO3) Systematic knowledge andability to formulate mechanism design models or network games for the purpose of modeling particularapplications.

(LO4) Detailed understanding andability to use, describe and explain appropriate algorithmic paradigms and techniques in context of aparticular game-theoretic or mechanism design problem.

(LO5) Critical ability to read,understand and communicate research literature in the field of algorithmic game theory.  

(LO6) Critical ability torecognise potential research opportunities and research directions in the field of algorithmic game theory.

(S1) Communication (oral, written and visual) - Presentation skills – oral

(S2) Communication (oral, written and visual) - Presentation skills - written

(S3) Communication (oral, written and visual) - Presentation skills - visual

(S4) Critical thinking and problem solving - Critical analysis

(S5) Information skills - Critical reading

(S6) Business and customer awareness

(S7) Computer science principles

Applied Algorithmics (COMP526)
LevelM
Credit level15
SemesterSecond Semester
Exam:Coursework weighting50:50
Aims

The main aim of this module is to lay a strong foundation for research in the field of algorithms, with a clear emphasis on algorithmic problems and solutions that haven proven useful in applications (e.g., in bioinformatics, search engines, networks, and data compression). This is done through the rigorous study of selected algorithmic techniques, an in-depth, systematic, and critical discussion of their respective benefits and weaknesses (by means of mathematical and empirical analysis), and by gaining hands-on experience on solving new algorithmic challenges residing on the border of the theory of abstract algorithms and engineering of applied algorithmic solutions.

Learning Outcomes

(LO1) Be able to recognize standard algorithmic problems, apply and judge known solutions based on comprehensive and in-depth understanding of their properties and limitations.

(LO2) Be able to systematically compare the goals and approaches in algorithm theory and algorithm engineering.

(LO3) Be able to critically assess algorithmic solutions from the research literature and to adapt these solutions to a range of application scenarios.

(LO4) Be able to design algorithmic solutions for real-world applications in small-scale programming projects.

(LO5) Be able to critically communicate algorithmic problems and solutions (both within and outside of the algorithms/computer science community).

(S1) Critical thinking and problem solving - Critical analysis

(S2) Critical thinking and problem solving - Problem identification

(S3) Critical thinking and problem solving - Evaluation

(S4) Critical thinking and problem solving - Creative thinking

(S5) Numeracy/computational skills - Problem solving

Optimisation (COMP557)
LevelM
Credit level15
SemesterFirst Semester
Exam:Coursework weighting75:25
Aims

To provide a foundation for modelling various continuous and discrete optimisation problems.

To provide the tools and paradigms for the design and analysis of algorithms for continuous and discrete optimisation problems. Apply these tools to real-world problems.

To review the links and interconnections between optimisation and computational complexity theory.

To provide an in-depth, systematic and critical understanding of selected significant topics at the intersection of optimisation, algorithms and (to a lesser extent) complexity theory, together with the related research issues.

Learning Outcomes

(LO1) The ability to recognise potential research opportunities and research directions

(LO2) The ability to read, understand and communicate research literature in the field of optimisation.

(LO3) The ability to use appropriate algorithmic paradigms and techniques in context of a particular optimisation model.

(LO4) The ability to formulate optimisation models for the purpose of modelling particular applications.

(LO5) A critical awareness of current problems and research issues in the field of optimisation.

(S1) Critical thinking and problem solving - Critical analysis

(S2) Communication (oral, written and visual) - Presentation skills – oral

Research Methods in Computer Science (COMP516)
LevelM
Credit level15
SemesterFirst Semester
Exam:Coursework weighting0:100
Aims

1. To provide a deep and systematic understanding of the nature and conduct of CS research. 2. To enhance existing transferable key skills. 3. To develop high order transferable key skills. 4. To equip students with the ability to undertake independent research. 5. To remind students of the Legal, Social, Ethical and Professional (LSEP) issues applicable to the computer industry.

Learning Outcomes

(LO1) Have an understanding of how established techniques of research and enquiry are used to extend, create and interpret knowledge in Computer Science.

(LO2) Have a conceptual understanding sufficient to:(i) evaluate critically current research and advanced scholarship in Computer Science and (ii) propose possible alternative directions for further work.

(LO3) Be able to: (i) deal with complex issues at the forefront of the academic discipline of Computer Science in a manner, based on sound judgements, that is both systematic and creative, (ii) demonstrate self-direction and originality in tackling and solving problems within the domain of Computer Science, (iii) act autonomously in planning and implementing solutions in a professional manner and (iv) define, plan, and/or carry out a project related to research and to communicate conclusions clearly to both specialists and non-specialists.

(LO4) Make use of the qualities and transferable skills necessary for employment requiring:(i) the exercise of initiative and personal responsibility, (ii) decision making in complex and unpredictable situations, (iii) scientific risk identification, assessment and control, and (iv) the independent learning ability required for continuing professional development.

(LO5) Understand and participate within the professional, legal, social and ethical framework within which they would be expected to operate as professionals within the IT industry.

(LO6) Have the skills set to be able to continue to advance their knowledge and understanding, and to develop new skills to a high level, with respect to continuing professional development as a "self-directed life-long learner" across the discipline of Computer Science.

(S1) Communication (oral, written and visual) - Presentation skills – oral

(S2) Communication (oral, written and visual) - Listening skills

(S3) Communication (oral, written and visual) - Academic writing (inc. referencing skills)

(S4) Time and project management - Project planning

(S5) Research skills - Ethical awareness

MSc Project (COMP702)
LevelM
Credit level60
SemesterWhole Session
Exam:Coursework weighting0:100
Aims

To give students the opportunity to work in a guided but independent fashion to explore a substantial problem in depth, making practical use of principles, techniques and methodologies acquired elsewhere in the programme.
To give experience of carrying out a large piece of individual work and in producing a dissertation.
To enhance communication skills, both oral and written.

Learning Outcomes

(LO1) After completing the module students should be able to: Investigate and specify a substantial problem in the domain of Computer Science, to place it in the context of related work including, as appropriate, Computer Science reserach, and to produce a plan to address this problem

(LO2) Make use of the qualities and transferable skills necessary for the conduct of a Computer Science project: (i) the exercise of initiative and personal responsibility, (ii) decision making in complex situations, (iii) risk identification (including, as appropriate, commercial and scientific risk), assessment and control, and (iv) the independent learning ability required for continuing professional development

(LO3) Demonstrate effective time management, self-direction and originality in carrying out a project in the domain of Computer Science

(LO4) Locate and make use of information relevant to a given IT project

(LO5) Design a solution to a substantial IT problem

(LO6) Implement and test potential solutions to IT problems

(LO7) Evaluate critically, as relevant to the project, current research and advanced scholarship in Computer Science, evaluate their own work, and participate effectively in the process of peer review of other projects

(LO8) Conduct and evaulate critically the project within the professional, legal, social and ethical framework in Computer Science and Sortware Engineering

(LO9) Prepare and deliver formal presentations

(LO10) Prepare and deliver a demonstration of software

(LO11) Structure and write a dissertation describing their project

(S1) Communication (oral, written and visual) - Presentation skills – oral

(S2) Communication (oral, written and visual) - Presentation skills - written

(S3) Communication (oral, written and visual) - Academic writing (inc. referencing skills)

(S4) Time and project management - Project planning

(S5) Critical thinking and problem solving - Critical analysis

(S6) Critical thinking and problem solving - Evaluation

(S7) Commercial awareness - Ability to analyse/balance risk and reward

Optional modules

Advanced Algorithmic Techniques (COMP523)
LevelM
Credit level15
SemesterFirst Semester
Exam:Coursework weighting70:30
Aims

To provide a sound foundation concerning the design and analysis of advanaced discrete algorithms.
To provide a critical rational concerning advanced complexity theory and algorithmics.
To provide an in-depth, systematic and critical understanding of selected significant issues at the forefront of research explorations in the design and analysis of discrete algorithms.

Learning Outcomes

(LO1) Describe the following classes of algorithms and design principles associated with them: recursive algorithms, graph (search-based) algorithms, greedy algorithms, algorithms based on dynamic programming, network flow (optimisation) algorithms, approximation algorithms, randomised algorithms, distributed and parallel algorithms.

(LO2) Illustrate the above mentioned classes by examples from classical algorithmic areas, current research and applications.

(LO3) Identify which of the studied design principles are used in a given algorithm taking account of the similarities and differences between the principles.

(LO4) Apply the studied design principles to produce efficient algorithmic solutions to a given problem taking account of the strengths and weaknesses of the applicable principles.

(LO5) Outline methods of analysing correctness and asymptotic performance of the studied classes of algorithms, and apply them to analyse correctness and asymptotic performance of a given algorithm.

(S1) Critical thinking and problem solving - Critical analysis

(S2) Critical thinking and problem solving - Evaluation

(S3) Critical thinking and problem solving - Problem identification

(S4) Critical thinking and problem solving - Creative thinking

(S5) Numeracy/computational skills - Reason with numbers/mathematical concepts

(S6) Numeracy/computational skills - Problem solving

Computational Intelligence (COMP575)
LevelM
Credit level15
SemesterSecond Semester
Exam:Coursework weighting100:0
Aims

Understand the basic structures and the learning mechanisms underlying neural networks within the field of artificial intelligence and examine how synaptic adaptation can facilitate learning and how input to output mapping can be performed by neural networks. Obtain an overview of linear, nonlinear, separable and non separable classification as well as supervised and unsupervised mapping. Understand the benefit of adopting naturally inspired techniques to implement optimisation of complex systems and acquire the fundamental knowledge in various evolutionary techniques. Become familiar with the basic concepts of systems optimisation and its role in natural and biological systems and entities.

Learning Outcomes

(LO1) Learning  the advantages and main characteristics of neural networks in relation to traditional methodologies. Also, familiarity with different neural networks structures and their learning mechanisms.

(LO2) Appreciation of the advantages of evolutionary-related approaches for optimisation problems and their advantages compared to traditional methodologies. Also, understanding the different techniques of evolutionary optimisation for discrete and continuous configurations

(LO3) Understanding of the needs for genetic encoding and modelling for solving optimisation problems and familiarisation with the evolutionary operators and their performance.

(LO4) Understanding of the neural network learning processes and their most popular types, as well as  appreciation of how neural networks can be applied to artificial intelligence problems.

(S1) On successful completion of this module the student should be able to pursue further study in artificial intelligence as well as more advanced types of neural networks and evolutionary optimisation and bio-inspired techniques.

(S2) On successful completion of this module the student should be able to analyse numerically the mathematical properties of most major network types and apply them to artificial intelligence problems. Also, the student should be able to appreciate and understand the suitability of evolutionary optimisation in systems where classical methods cannot be effective.

(S3) On successful completion of this module the student should be able to approach methodologically artificial intelligence problems and bio-inspired algorithms in general and understand the principal mathematics of learning systems and the fundamental principles governing evolutionary optimisation techniques.

MSc Group Project (COMP530)
LevelM
Credit level15
SemesterSecond Semester
Exam:Coursework weighting0:100
Aims

1. To provide experience of working and collaborating in a software development team
2. To provide experience of aspects of the development of an appropriate and effective solution to tackle industrially relevant issues
3. To prepare students for their individual MSc project (COMP702).
4. To consolidate materials from other MSc course modules taken by the student by applying these to real world problems.

Learning Outcomes

(LO1) An in depth and critical understanding of the operation of software development teams, the interpersonal skills required and the issues involved in working as part of a team.

(LO2) Knowledge of how to specify and design appropriate and effective solutions to industrially relevant issues.

(LO3) Knowledge of how to implement and test appropriate and effective software systems.

(LO4) A critical understanding of the software development process.

(LO5) Practical experience in the realisation of a moderately sized software system.

(LO6) A critical understanding of the importance of software documentation and its creation.

(S1) Communication (oral, written and visual) - Presentation skills - written

(S2) Time and project management - Project planning

(S3) Critical thinking and problem solving - Critical analysis

(S4) Working in groups and teams - Group action planning

(S5) Working in groups and teams - Time management

(S6) Commercial awareness - Relevant understanding of organisations

Safety and Dependability (COMP524)
LevelM
Credit level15
SemesterSecond Semester
Exam:Coursework weighting75:24
Aims

1. To provide a critical and in-depth understanding of all aspects of software safety and dependability; including issues realting to security, reliability and trustworthiness.
2. To provide a broad understanding of the state-of-the-art software engineering techniques currently used to address safety and dependability issues.
3. To provide an overview of the contemporary research issues relating to software safety and dependability.

Learning Outcomes

(LO1) At the end of the module, a student will understand some of the problems associated with the use of computer software in critical applications where safety, security and trust are issues.

(LO2) At the end of the module, a student will understand some of the contemporary mechanisms for ensuring dependability and reliability.

(LO3) At the end of the module, a student will understand a variety of approaches to the design and development of safe and dependable systems.

(LO4) At the end of the module, a student will understand formal verification techniques in relation to the assessment of safety and dependability.

(LO5) At the end of the module, a student will  be aware of some of the contemporary research problems in the areas of safety, security, dependability and trust.

(S1) Working in groups and teams - Group action planning

(S2) Skills in using technology - Using common applications (work processing, databases, spreadsheets etc.)

(S3) Numeracy/computational skills - Reason with numbers/mathematical concepts

(S4) Numeracy/computational skills - Problem solving

(S5) Communication skills - Presenting

(S6) Problem solving - Co-designing a program and a correctness proof

(S7) Problem solving - Model (MDP) design analysis

(S8) Business and customer awareness - Brief discussion of the cost of software bugs and the cost of applying formal techniques

(S9) Information Technology (IT) skills - Formulating (probabilistic) models as Markov chains and decision processes, and using of-the-shelf tools for their analysis

Data Mining and VIsualisation (COMP527)
LevelM
Credit level15
SemesterSecond Semester
Exam:Coursework weighting75:25
Aims

To provide an in-depth, systematic and critical understanding of some of the current research issues at the forefront of the academic research domain of data mining.

Learning Outcomes

(LO1) A critical awareness of current problems and research issues in Data Mining.

(LO2) A comprehensive understanding of current advanced scholarship and research in data mining and how this may contribute to the effective design and implementation of data mining applications.

(LO3) The ability to consistently apply knowledge concerning current data mining research issues in an original manner and produce work which is at the forefront of current developments in the sub-discipline of data mining.

(LO4) A conceptual understanding sufficient to evaluate critically current research and advanced scholarship in data mining.

(S1) Critical thinking and problem solving - Problem identification

(S2) Critical thinking and problem solving - Critical analysis

Multi-agent Systems (COMP310)
Level3
Credit level15
SemesterSecond Semester
Exam:Coursework weighting100:0
Aims

To introduce the student to the concept of an agent and multi-agent systems, and the main applications for which they are appropriate.

To introduce the main issues surrounding the design of intelligent agents.

To introduce the main issues surrounding the design of a multi-agent society.

To introduce a contemporary platform for implementing agents and multi-agent systems.

Learning Outcomes

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

Technologies for E-commerce (COMP315)
Level3
Credit level15
SemesterSecond Semester
Exam:Coursework weighting100:0
Aims

To introduce the environment in which e-commerce takes place, the main technologies for supporting e-commerce, and how these technologies fit together.

To introduce security as a major issue in secure e-commerce, and to provide an overview of security issues.

To introduce encryption as a means of ensuring security, and to describe how secure encryption can be delivered.

To introduce issues relating to privacy.

To introduce auction protocols and negotiation mechanisms as emerging e-commerce technologies.

Learning Outcomes

(LO1) Upon completing this module, a student will: understand the main technologies behind e-commerce systems and how these technologies interact; understand the security issues which relate to e-commerce; understand how encryption can be provided and how it can be used to ensure secure commercial transactions; understand implementation aspects of e-commerce and cryptographic systems; have an appreciation of privacy issues; and understand auction protocols and interaction mechanisms.

Microeconomic Analysis (ECON915)
LevelM
Credit level15
SemesterFirst Semester
Exam:Coursework weighting80:20
Aims

This module aims to provide an opportunity to understand and appreciate the fundamental aspects of decision making in an uncertain environment, allowing for the possible synchronic or diachronic incidence of risk. Individual risk linked behaviour will be linked to symmetric and asymmetric imperfect information scenarios. In this context individual or circumscribed group behaviour may be related to an aggregate and institutional context.

Learning Outcomes

(LO1) An appreciation of the basic aspects of consumer and producer decision making both under certainty and uncertainty;

(LO2) An understanding of the underlying assumptions needed to justify the existence of a general competitive equilibrium;

(LO3) An understanding of the relationship between a general equilibrium and welfare considerations.

(S1) Problem solving skills

(S2) Numeracy

(S3) Organisational skills

(S4) Communication skills

(S5) Lifelong learning skills


Note: The programme of study can contain at most 30 credits of level 3 modules and is not allowed to contain level 3 modules that have already been passed as part of a student's undergraduate studies.