University of Oxford Logo University of OxfordSoftware Engineering - Home
On Facebook
Follow us on twitter
Linked in
Linked in
Google plus
Google plus
Stumble Upon
Stumble Upon

Quantum Computing

Quantum computing refers to the harnessing and control of quantum mechanical phenomena to perform certain specialised computations, typically used as black-box subroutines within larger traditional programs. Access to these quantum subroutines makes it possible to design algorithms that quickly solve problems which would otherwise be unsolvable on traditional architectures.

Quantum computing has seen a sharp acceleration over the past few years, both in terms of technological advances and in terms of early access to the public. Several companies now offer and maintain programmatic APIs that allow scientists and industry innovators to program the quantum hardware they are developing, to encourage evaluation, early adoption, and creation of know-how in their target industry segments.

This module introduces the fundamentals of quantum computing through Python APIs offered by major players in the industry. Students will learn how quantum computers work, how they are programmed and how they can be used to solve problems of practical interest in the coming years. This module is hands-on and fully interactive, with all material presented in the form of Jupyter notebooks. We will cover the theoretical basics, we will perform simulations, and we will run experiments on live quantum computers.

Course dates

15th November 2021Oxford University Department of Computer Science - online one week 9-5 course01 place remaining.
7th March 2022Oxford University Department of Computer Science 0 places remaining.
11th July 2022Oxford University Department of Computer Science 0 places remaining.


At the end of the course, students will:

  • understand the fundamentals of quantum computing architectures
  • know how to program quantum computers using APIs
  • know about the established applications of quantum computing
  • be able to evaluate whether quantum computing could be beneficial to a specific application domain


Introduction to digital quantum computing (3h)
Bits and qubits, quantum gates, measurement, superposition, entanglement.
Programming digital quantum computers (3h)
Quantum circuits, sampling, quantum gates and common patterns.
Quantum communication protocols (3h)
Teleportation, super-dense coding, key distribution, secret sharing.
The quantum Fourier transform (3h)
The quantum Fourier transform, the hidden subgroup problem and code breaking.
The quantum supremacy experiment (3h)
Variational quantum circuits, the hardness of sampling, quantum supremacy.
Quantum algorithms for constraint satisfaction (6h)
The quantum approximate optimisation algorithm, adiabatic quantum computation.
Quantum algorithms for physical simulations (6h)
The variational quantum eigensolver, algorithms for linear and non-linear problems.
Quantum algorithms for machine learning (3h)
Variational classifiers, quantum neural networks, hybrid machine learning.


Some familiarity with the Python programming language (ideally version 3.7+) would be beneficial. There is no requirement of physics background for this course.