## Quantum Computing

### Module aims

In this module you will have the opportunity to explore this exciting topic that sits at the boundaries of computer science and physics. The module will be taught from a computer science perspective, but will also draw on topics from linear algebra, which provides the mathematical apparatus for fomalising quantum systems. You will be introduced to the basic notions of quantum computing, including quantum bits and quantum entanglement and will get to explore quantum algorithms, such as Quantum Search, Quantum Fourier Transform and Quantum Factorisation of Integers.

### Learning outcomes

Upon successful completion of this module you will be able to:
- explain and evaluate key notions of quantum computing, including quantum bits, quantum evolution and quantum circuits
- critically compare a range of quantum algorithms used to solve common problems in computer science
- explore the role of quantum computers in solving computationally hard problems, such as factorisation and combinatorial optimization
- use state of the art software tools to program and simulate quantum algorithms

### Module syllabus

This module covers the following topics:
- Mathematical background (complex vector spaces and linear algebra)
- From classical to quantum computing (classical vs probabilistic vs quantum bits)
- Quantum gates and circuits (examples and universality)
- Quantum programming languages/tools
- Quantum algorithms (factoring and searching)
- Quantum adiabatic algorithm (for combinatorial optimisation)
- Quantum criptography (key-exchange protocols)
- Quantum error correction (classical codes and examples of quantum codes)
- Quantum hardware (physical implementations and state of the art)

### Teaching methods

The largely mathematical material will be taught through pre-recorded lectures. It will also include modern tools such as Mentimeter for gauging your understanding of selected topics. In addition, there will be roughly one hour per week of supervised problem solving, which is  designed to reinforce understanding. These problems are not assessed, although specimen solutions will be provided. Some of these problems will assess the understanding of the theoretical aspects; others will be practical, e.g. focusing on quantum programming and the simulation of quantum algorithms. Past exam questions will be used in some cases.

An online forum will be used to stimulate ongoing discussions and support Q&A.

### Assessments

There will be two assessed coursework tests designed to reinforce the material covered in the lectures and give hands-on experience of solving problems. These coursework tests together count for 20% of the marks for the module. There will be a final written exam which counts for the remaining 80% of the marks.

There will be detailed feedback on the assessed coursework tests which will include:
a) written feedback on your individual submission
b) class-wide feedback explaining common pitfalls and suggestions for improvement

There will also be ongoing engagement and feedback via the online discussion forum.