CS938-15 CS938 - Advanced Topics in Algorithms and Complexity
The module aims to introduce students to modern techniques, methods, and results from the rapidly developing field of algorithms and complexity. The main topic may change year to year.
Students will learn the algorithmic, mathematical, and probabilistic foundations underpinning modern design and analysis algorithms.
This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ.
- This is an advanced module covering a range of topics in algorithms and complexity, as well as some of the most recent developments in the field.
Typical topics include a mixture of:
- Foundations of learning algorithms and their limitations.
- Probabilistic techniques, probabilistic algorithms and the power of randomness in computation.
- Algebraic methods in algorithm design.
- Concrete computational models, such as decision trees, CNF's, and Boolean circuits, and their connections to learning algorithms, satisfiability algorithms, and complexity theory.
- Parallel algorithms and the limits of parallel computation.
By the end of the module, students should be able to:
- Understand a range of algorithmic topics and associated complexity-theoretic results.
- Understand a broad range of analytical, algebraic, and probabilistic tools underlying the modern design and analysis of algorithms.
- Use modern algorithmic techniques to solve natural computational problems.
- Understand state-of-the-art research in some areas of algorithms and complexity, including new developments and open problems.
Indicative reading list
"An Introduction to Computational Learning Theory". Umesh Vazirani and Michael Kearns.
"Mathematics + Computation". Avi Wigderson.
"Analysis of Boolean Functions". Ryan O'Donnell.
"Computational Complexity". Sanjeev Arora and Boaz Barak.
"Probability and Computing". Michael Mitzenmacher and Eli Upfal.
Subject specific skills
Students will learn basic properties and applications of a range of concrete computational models, including decision trees, small-depth circuits, threshold circuits (discrete analogues of neural networks), Boolean formulas, and general Boolean circuits.
This advanced module will provide a gentle introduction to fundamental questions connected to the power and limits of algorithms (e.g. randomness in computation, efficient learning algorithms, exhaustive search) from the vantage point of the aforementioned computational models.
Students will be introduced to a variety of mathematical techniques that can be used to establish limits on the computational power of some of these models (complexity lower bounds) and to design new algorithms (complexity upper bounds). It will cover probabilistic, algebraic, combinatorial, and analytic techniques, which will be introduced in a self-contained way through a sequence of accessible examples.
The computational models covered in this module have far-reaching applications in computer science, appearing in areas such as machine learning, optimisation, algorithms, cryptography and theoretical computer science.
The algorithmic and mathematical techniques introduced in this module are widely applicable and transcend the topics covered in this module (e.g. algebraic methods have significant applications in communication protocols, analytic techniques are employed in machine learning, and probabilistic and combinatorial techniques are ubiquitous in algorithms and optimisation).
This module will highlight fruitful interactions between computer science and mathematics, introducing new problem-solving skills and stimulating creative ideas in the design and analysis of algorithms.
|Lectures||20 sessions of 1 hour (13%)|
|Seminars||9 sessions of 1 hour (6%)|
|Private study||121 hours (81%)|
Private study description
Private study will consist of:
- Researching topics
- Reading background material
- Completing homework assignments
- Revising for exam
No further costs have been identified for this module.
You do not need to pass all assessment components to pass the module.
Students can register for this module without taking any assessment.
Assessment group D
|Problem Set 1||10%|
Homework assignment 1
|Problem Set 2||10%|
Homework assignment 2
|Problem Set 3||10%|
Homework assignment 3
~Platforms - AEP
Assessment group R
CS938 resit examination
~Platforms - AEP
Feedback on assessment
Individual written feedback and group feedback in seminars
This module is only suitable for MSc students and mathematics students with familiarity of algorithms and complexity at the level of CS260 and CS301.
This module is Optional for:
- Year 1 of TCSA-G5PD Postgraduate Taught Computer Science