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.


This course normally runs three times a year.

Course dates

11th July 2022Oxford University Department of Computer Science- Held in the Department05 places remaining.
14th November 2022Oxford University Department of Computer Science09 places remaining.
6th March 2023Oxford University Department of Computer Science08 places remaining.
10th July 2023Oxford University Department of Computer Science11 places remaining.


At the end of the course, students will:

  • understand the fundamentals of quantum computing

  • know how to create and execute quantum programs using the IBM Qiskit API

  • know about established applications of quantum computing


State of quantum computing
Hardware providers, software providers, intro to applications.
Single-qubit gates
Diagrams as code, single-qubit rotations, single-qubit states, change of basis, common gates (X, Y, Z, S, T, H, K, etc), Clifford rotations.
Many-qubit gates
Copy/addition and entanglement, CNOT gate, SWAP gate, spiders, diagrammatic rules, controlled X/Y/Z gates, transposes, phase gadgets, controlled X/Y/Z rotations, CCX gate, Boolean circuits.
Adjoints and unitaries, probabilities as diagrams, fidelity, normalisation, , X/Y/Z-basis measurements, entanglement as correlation, uncertainty, partial measurements, marginal and conditional states, tomography.
Variational quantum algorithms
Variational quantum circuits, ansatz design, parameter optimisation, parameter encoding, Hamiltonians, the Variational Quantum Eigensolver, problem Hamiltonians, Pauli gadgets, quantum dynamics, quantum annealing, Trotterisation, the Quantum Approximate Optimisation Algorithm.


Some familiarity with the Python programming language (ideally version 3.7+) is required for the practical programming components, which use Jupyter notebooks. Advanced physics or mathematics background is not required.