Skip to main content

Quantum Processes and Computation:  2021-2022



Schedule C1 (CS&P)Computer Science and Philosophy

Schedule C1Computer Science

Schedule C1Mathematics and Computer Science

Schedule IIMSc in Advanced Computer Science

MSc in Mathematics and Foundations of Computer Science



Both physics and computer science have been very dominant scientific and technological disciplines in the previous century. Quantum Computer Science aims at combining both and may come to play a similarly important role in this century. Combining the existing expertise in both fields proves to be a non-trivial but very exciting interdisciplinary journey. Besides the actual issue of building a quantum computer or realising quantum protocols it involves a fascinating encounter of concepts and formal tools which arose in distinct disciplines. This course provides an interdisciplinary introduction to the emerging field of quantum computer science, explaining basic quantum mechanics (including finite dimensional Hilbert spaces and their tensor products), quantum entanglement, its structure and its physical consequences (e.g. non-locality, no-cloning principle), and introduces qubits. We give detailed discussions of some key algorithms and protocols such as Grover's search algorithm and Shor's factorisation algorithm, quantum teleportation and quantum key exchange. At the same time, this course provides an introduction to diagrammatic reasoning. As an entirely diagrammatic presentation of quantum theory and its applications, this course is the first of its kind.

This course will be given online.

  • Lectures will be held live on MS Teams here, every Monday, Wednesday, and Friday 11:00-12:00 UK time (full timetable here). Recordings will appear on Teams shortly after each lecture.
  • Discussion (annoucements, offline Q&A, research questions, etc) are also on MS Teams here.
  • Class info, including weekly deadlines is on Minerva
  • Everything else (problem sheets, schedule of material, etc) is here on the course website

The course consists of:

  • 24 lectures (see Lectures below)
  • 5 classes (weeks 3, 4, 5, 6, 7, 8). Here are the problem sheets: They will be made available a week before the deadline. Click here to see which class you are in and how to submit your work.
  • A practical assignment, based on the PyZX tool. This is ungraded, but it is recommended all students do both parts of the practical before the end of term. Topics covered in the practical are fair game for the miniproject.
  • The miniproject. This will have a similar format to the problem sheets, but questions will be much more in-depth and/or open-ended.


The following is a provisional list of topics / sections covered in the lectures. This schedule is subject to change.

Handwritten lecture notes (part 1, part 2, part 3, part 4, part 5) will be updated after each lecture.

  • Lecture 1, Oct 11: Introduction to diagrammatic reasoning
  • Lecture 2, Oct 13: Circuit diagrams
  • Lecture 3, Oct 15: Special processes
  • Lecture 4, Oct 18: (Non-)separability and string diagrams
  • Lecture 5, Oct 20: Transpose, adjoint, and conjugate processes
  • Lecture 6, Oct 22: Quantum-like features from string diagrams
  • Lecture 7, Oct 25: Quantum-like features from string diagrams (cont'd)
  • Lecture 8, Oct 27: Bases, sums, and Hilbert spaces
  • Lecture 9, Oct 29: From linear maps to quantum maps
  • Lecture 10, Nov 1: Pure quantum processes
  • Lecture 11, Nov 3: Discarding and causality
  • Lecture 12, Nov 5: Non-determinism and measurement
  • Lecture 13, Nov 8: Classical/quantum interaction
  • Lecture 14, Nov 10: Classical data as wires
  • Lecture 15, Nov 12: Spiders!!!
  • Lecture 16, Nov 15: Classical, quantum, and bastard spiders
  • Lecture 17, Nov 17: Phases and complementarity
  • Lecture 18, Nov 19: Consequences of complementarity
  • Lecture 19, Nov 22: Strong complementarity
  • Lecture 20, Nov 24: The ZX-calculus, universality and completeness
  • Lecture 21, Nov 26: Quantum computation and the circuit model
  • Lecture 22, Nov 29: Quantum algorithms 1: DJ and search
  • Lecture 23, Dec 1: Quantum algorithms 2: the hidden subgroup problem
  • Lecture 24, Dec 3: Quantum non-locality, Spekkens' toy theory and GHZ/Mermin


The practical for this course will be in 2 parts. You are free to discuss either part with your fellow students, your teacher, on Teams etc, and to work in groups. I only ask that you not spoil the problems for other students by sharing full solutions en masse.

Click the links above to download Part 1 and Part 2 (note: you may need to right click the link and click "Save As").

The practicals are given as Jupyter notebooks. There are (at least) two ways to complete this practical, depending on whether you want to install some software on your own computer or just do everything in a browser.

  • Local option: install Python 3, Jupyter, and the required libraries (numpy, pyzx, and qiskit) on your computer. Anaconda is a popular way to install everything at once. It is available on Windows, Mac, and Linux. For Linux, it may be easier to use your system's package manager. Once you have Python 3 and Jupyter set up, pyzx and qiskit can be installed using pip, possibly directly from the Jupyter notebook via the %pip command. Note you will not need qiskit until Part 2.
  • Cloud option: create a free account on the IBM Quantum Experience and sign in with your IBMid. Click the icon for "Quantum Lab" in the sidebar, and click "Import" to upload a Jupyter notebook into cloud storage. Click on the notebook to edit it online. Once your notebook is finished, you can download it again by clicking File > Download As > Notebook. I suggest you do this regularly to avoid accidentally losing work.

I've tested both of these options, and the both seem to work pretty well. You may have your own preferences (e.g. Google Colab might work, but I haven't tried it). However, to complete Part 2, you will still need to set up a free account on the IBM Quantum Experience, even if you went with the Local option. This is because you will need an IBMid to set up the IBM Quantum Provider, which will allow cloud access to IBM's public quantum computers. This is a bit tricky to get working, so I suggest doing it in advance. If you use the Cloud option via IBM, this extra bit of setup is not necessary.

Learning outcomes

The student will know by the end of the course what quantum computing and quantum protocols are about, why they matter, and what the scientific prospects of the field are. This includes a structural understanding of some basic quantum mechanics, knowledge of important algorithms such as Grover's and Shor's algorithm and important protocols such as quantum teleportation.

At the same time, the student will understand diagrammatic reasoning as an alternative form of mathematics.


We do not assume any prior knowledge of quantum mechanics. However, a solid understanding of basic linear algebra (finite-dimensional vector spaces, matrices, eigenvectors and eigenvalues, linear maps etc.) is required as a pre-requisite. The course notes and the slides contain an overview of this material, so we advise students with a limited background in linear algebra to consult the course notes before the course starts.

To do the practicals, you will need to have a basic working knowledge of the Python programming language. If you've never used Python before, I suggest working through the first 4 sections of:


[from CUP book page] The unique features of the quantum world are explained in this book through the language of diagrams, setting out an innovative visual method for presenting complex theories. Requiring only basic mathematical literacy, this book employs a unique formalism that builds an intuitive understanding of quantum features while eliminating the need for complex calculations. This entirely diagrammatic presentation of quantum theory represents the culmination of ten years of research, uniting classical techniques in linear algebra and Hilbert spaces with cutting-edge developments in quantum computation and foundations. Written in an entertaining and user-friendly style and including more than one hundred exercises, this book is an ideal first course in quantum theory, foundations, and computation for students from undergraduate to Ph.D. level, as well as an opportunity for researchers from a broad range of fields, from physics to biology, linguistics, and cognitive science, to discover a new set of tools for studying processes and interaction.


Summary / keywords: diagram, parallel and sequential composition of diagrams, string diagram, transpose, adjoints and conjugate, umitarity and inner-product, Bell state, teleportation, no universal separability, no universal cloning, matrix calcu;us, Hilbert space, completeness for string diagrams, logic gate, Bell-basis, doubling, eliminating global phases, discarding, causality, Stinespirng dilation, no-signalling, Krauss decomposition and mixing, ONB measurements, entaglement swapping, gate-teleportation, Naimark dilation, von Neumann measurements, POVM measurements, tomography, classical wires, dense coding, classical-quantum map, copy, delete, measure, encode, classical, quantum and bastard spiders, phase spiders, phase group, complementarity, QKD, strong complementarity, classical subgroup, ZX-calculus, its universality and completeness for stabiliser QM, quantum non-locality, Spekkens' toy theory, circuit model of quantum computing, quantum algorithms (DJ, search, HS), MBQC, resource theories, purity theory, LOCC- and SLOCC-entanglement

Reading list

The textbook for this course is Picturing Quantum Processes: A First Course in Quantum Theory and Diagrammatic Reasoning.

It should be available in many libraries throughout the university and most online bookstores. The ebook PDF is also available for free to all members of Oxford University through a deal between the Bodleian Library and Cambridge University Press:

If the link above doesn't work, go to, search for the book title, and click on the "Online Access" version. Under the section "View Online", click the link to Cambridge Core to view the book on CUP's website.

Related research



Students are formally asked for feedback at the end of the course. Students can also submit feedback at any point here. Feedback received here will go to the Head of Academic Administration, and will be dealt with confidentially when being passed on further. All feedback is welcome.