General Prerequisites: Quantum Theory.

The course material should be of interest to physicists, mathematicians, computer scientists, and engineers. The following will be assumed as prerequisites for this course:

- elementary probability, complex numbers, vectors and matrices;

- Dirac bra-ket notation;

- a basic knowledge of quantum mechanics especially in the simple context of finite dimensional state spaces (state vectors, composite systems, unitary matrices, Born rule for quantum measurements);

- basic ideas of classical theoretical computer science (complexity theory) would be helpful but are not essential.

Prerequisite notes will be provided giving an account of the necessary material. It would be desirable for you to look through these notes slightly before the start of the course.

Course Overview: The classical theory of computation usually does not refer to physics. Pioneers such as Turing, Church, Post and Goedel managed to capture the correct classical theory by intuition alone and, as a result, it is often falsely assumed that its foundations are self-evident and purely abstract. They are not! Computers are physical objects and computation is a physical process. Hence when we improve our knowledge about physical reality, we may also gain new means of improving our knowledge of computation. From this perspective it should not be very surprising that the discovery of quantum mechanics has changed our understanding of the nature of computation. In this series of lectures you will learn how inherently quantum phenomena, such as quantum interference and quantum entanglement, can make information processing more efficient and more secure, even in the presence of noise.

Learning Outcomes: By the end of the course, students will be able to:

Use single qubit and two qubits quantum logic gates to construct quantum circuits of increasing complexity.

Provide comparative analysis of quantum and classical algorithms.

Solve problems involving quantum entanglement and its applications.

Perform calculations using density matrices and completely positive maps.

Use mathematical techniques that protect quantum evolutions, such as quantum error correction and fault tolerant computation.

Course Synopsis: Bits, gates, networks, Boolean functions, reversible and probabilistic computation

"Impossible" logic gates, amplitudes, quantum interference

One, two and many qubits

Entanglement and entangling gates

From interference to quantum algorithms

Algorithms, computational complexity and Quantum Fourier Transform

Phase estimation and quantum factoring

Non-local correlations and cryptography

Bell's inequalities

Density matrices and CP maps

Decoherence and quantum error correction