Chris Ferrie

Non-transitive project-based learning

Welcome to Introduction to Quantum Computing. I am your guide, Associate Professor Chris Ferrie, a researcher in the UTS Centre for Quantum Software and Information. These are the notes for Lab 4. You should have already enjoyed Lecture 4. The syllabus is here:

Now that we can deal with multiple qubits, the quantum world is our oyster. This week we used the full power of Dirac notation to prove some fundamental no-go theorems. But no-go theorems are a bit of a bummer — let’s create something!

The task

You will use a Google Colaboratory notebook to create an interactive explainer of one of three topics in quantum information theory. Think: code supported blog post. You are free to structure your project in any way you see fit, so long as the goal is met: create something that can be read in 15–20 minutes that explains to your classmates your given topic. You will also give a 5–10 minute presentation during class about your implementation and the challenges you faced. This is due 4 weeks from when it was assigned.

Non-transitive project-based learning

This is a group project, but not just any group project. Inspired by the complexity of quantum mechanics, this is a non-transitive group project. What does that mean? Well, if Student A is in a group with Student B, and Student B is in a group with Student C, then Student A and Student C may not be in the same group!

You are assigned one topic and one quantum programming language. You must explain your assigned topic in your assigned programming language. This combination will be unique to you. However, you are also at the intersection of two different groups. Two other people will be assigned the same topic (but a different programming language) and two people different from the original two will be assigned the same programming language (but a different topic). You should collaborate with both of these pairs of students simultaneously. The assignments and groups can be visualised as follows.

So, just to be clear, say you are Student 4. Then you must explain Contextuality and nonlocality using Qiskit. However, Student 1 and Student 7 are also explaining Contextuality and nonlocality, and so you can collaborate with them on all aspects but the code. Moreover, Student 5 and Student 6 will be using Qiskit as well. So, you can collaborate with them on developing quantum protocols and algorithms in that language.


  • Your explainer must be able to be read in less than 20 minutes.
  • You must implement the protocols in your assigned software environment.
  • Your code should be documented and readable.
  • You must use Markdown and $\LaTeX$ within to typeset your maths.


  • Use the LaTeX package qcircuit if you want to draw quantum circuits. (for example) allows you to quick generate images of circuits. Here is a template:
  • LaTeX is a powerful typesetting tool, but you don’t need its full power for this assignment. If you want to know a command for a specific thing, just google it! For example “latex right angle bracket” will get you making kets in no time!
  • Read the documentation and follow the tutorials for your assigned programming language.

First deliverable

You have been assigned a project that includes using one of ProjectQ, Qiskit, or cirq. By next week, I want you to have gone through the documentation and tutorials for your assigned language. The deliverable for this week is to create a quantum algorithm in your assigned programming language that produces the state

The templates appear below.

Quantum theorist by day, father by night. Occasionally moonlighting as a author.