Quantum Mechanics in python



In this course you will learn to describe quantum systems and to compute how they evolve and interact with each other, by modelling them in Python. Throughout the course you will develop a project, which will be published on the home page of the course. Projects consist in developing a jupyter notebook aimed at explaining a concept or exploring a particular effect. We will adopt a peer-review system, where you will submit your notebook by the end of the 6th week. Each of you will receive two projects to review in a week's time. The projects and the feedback will be returned to the authors, who will have one final week to implement the recommended changes before finally submitting for publication.

Course Goals

  1. Describe quantum states and interactions in code (python)
  2. Compute the evolution of quantum states
  3. Display representations of quantum states
  4. Express a technical narrative using jupyter notebooks
  5. Give and receive feedback in a peer-review loop



In this course you will learn to use Python and Jupyter Notebooks (in colab) to simulate and study quantum physical systems. Meanwhile, we will introduce you to the peer review process by organising the project logistics as a scientific journal submission. The final projects will be published on the school’s website.

Learning Objectives

By the end of this course you will be able to:

  1. Write python code for scientific applications
  2. Visualise quantum systems with python
  3. Describe a selection of quantum systems and their behaviour
  4. Find the dynamics of nontrivial quantum systems
  5. Read other people’s code and give constructive feedback
  6. Improve your own work using feedback from others
  7. Work in groups


There are 8 weekly lectures in total, each lecture is 3h long (with a 15m break). Every lecture will be on a Tuesday, from 13:30 to 16:45 in room F502. The last lecture (presentations) will be in C48.


You will be evaluated on the following criteria:

  1. Week 1: on your knowledge of how the course is organized (i.e. on the content of this document)
  2. Week 5: on the timeliness and adherence to the guidelines for your first submission (not on the content)
  3. Week 7: on the quality of your review of other projects
  4. Week 8: on the quality of your presentation
  5. Week 8: on the quality of the content of your final project submission

Guidelines for submissions

Please stick to the following guidelines when submitting your work. Points will be deducted from your group if you don’t follow the guidelines.

Naming conventions

The submission files should be named “[type]-[name].[ext]” where:

  1. The type is one of the following:
    • “SUB” for your first submission at the end of week 5
    • “REVIEWS” for a single pdf with all the reviews of the project you were assigned to review
    • “FINAL” for your final resubmission, after implementing the feedback
    • “PRESENTATION” for the slides of your presentation
  2. The name is your project short name (specified in the project description below) or the name of the project you are reviewing.
  3. File types: .ipynb if you are submitting a jupyter notebook, .py for a library that goes with the notebook, .pdf if you are submitting reviews or slides.

Examples: “SUB-teleportation.ipynb” or “REVIEWS-tunnelling.pdf” or “PRESENTATION-correlations.pdf”


Please submit within the deadlines. If you don’t submit within the deadlines you will waste other people’s time: for instance, if you submit the reviews a day late, you will deny a useful day from another group’s total time to implement the feedback.

There are three important deadlines:

  • at the end of week 5 (June 3rd) for your first project submission
  • at the end of week 6 (June 10th) for your reviews
  • at the end of week 7 (June 17th) for your final project and presentation slides

Code of Ethics

Academic Integrity

Although we are happy for you to collaborate when working on the project, you will take responsibility for your own work, and we take plagiarism very seriously.

Late policy

Please respect other people’s time: missing a deadline is an automatic 10% mark reduction.

Discrimination policy

Any indication of discrimination on the basis of race, colour, religion, sex, sexual orientation, gender identity, age, national origin, ancestry, disability or physical appearance will not be tolerated and should be brought to the instructor’s attention immediately.

Project proposals

1. Quantum tunnelling time

  • Keywords for literature search: quantum tunnelling, unitary evolution, potential wells
  • Short name: tunnelling

Quantum tunnelling is a natural phenomenon that allows a quantum mechanical system to overcome a potential barrier that would have been classically unsurmountable.

The typical example is that of a finite potential wall which is higher than the energy of a particle travelling towards it. In the classical case, the particle would simply never be found on the other side of the wall. In the quantum case this is no longer true and indeed the particle has an amplitude for passing through the wall that decreases exponentially with wall thickness and height.

When we consider “how long” it takes for the particle to traverse the barrier, we find that it looks as if it travelled faster than the speed of light. This is a somewhat delicate topic in the theory of quantum mechanics, because there is more than one way to define the notion of tunnelling time.

In this project you will:

  1. Explain the phenomenon of quantum tunnelling
  2. Elaborate on the applications of quantum tunnelling
  3. Explain the different definitions of tunnelling time
  4. Simulate a 1D particle tunnelling through a potential barrier and compute the tunnelling times
  5. Interpret and discuss the meaning of the results
  6. (bonus) explain the physics of the ammonia molecule double quantum well
  7. (alternative bonus) show different methods of computing the evolution of the wave function


[1] The quantum mechanical tunnelling time problem-revisited

[2] Measurement of the single-photon tunneling time

[3] Razavy, M. (2003). Quantum theory of tunneling. World Scientific.

2. Correlations beyond quantum mechanics

  • Keywords for literature search: Bell inequalities, quantum non-locality, nonlocal boxes
  • Short name: correlations

A possible way to certify and quantify entanglement in a quantum system is to perform an experiment in which the system violates Bell’s inequalities. The violation is possible because two quantum systems can have stronger correlations than two classical systems. Interestingly though, there is mathematically still room for improvement: one could think of a (non-physical) theory that goes beyond quantum mechanics, in which two “nonlocal boxes” are even more correlated than two quantum systems.

In this project, you will:

  1. Derive the CHSH inequalities and show with a simulation that quantum mechanics can violate them
  2. Elaborate on the applications of Bell inequality violations
  3. Introduce non-local boxes and simulate their properties
  4. Develop and present visual representations to compare classical, quantum and “super-quantum” correlations
  5. Interpret and discuss the meaning of the results
  6. (bonus) explain how CHSH/GHZ can be viewed as games and the classical/quantum/superquantum correlations as winning strategies


[1] On the power of non-local boxes

[2] Parallel Lives: A Local-Realistic Interpretation of “Nonlocal” Boxes

[3] Interconversion of Nonlocal Correlations

[4] Quantum pseudo-telepathy

3. Counterfactual quantum effects

  • Keywords for literature search: measurements, interferometers, post-measurement states
  • Short name: counterfactual

Counterfactual quantum effects are one of the puzzling features of quantum mechanics. Essentially, they are effects that influence the real world even though they never happened. A famous example is the “Elitzur-Vaidman bomb tester”, which is a device that can sense the presence of an object on the path of an interferometer without any photon ever interacting with it. This idea gave rise to the notion of interaction-free measuerments and other applications.

In this project you will:

  1. Describe Vaidman’s bomb tester and Zeilinger’s improvement
  2. Elaborate on the mechanism of interaction-free measurements in general
  3. Explain how counterfactual quantum communication works and simulate the generalized bomb tester
  4. Interpret and discuss the meaning of the results
  5. (bonus) Explain and simulate a scheme of counterfactual communication


[1] Quantum interaction-free measurements

[2] Interaction-free measurement

[3] Direct counterfactual communication via quantum Zeno effect

4. Adaptive quantum tomography

  • Keywords for literature search: quantum tomography, adaptive tomography, quantum compressed sensing
  • Short name: tomography

Quantum tomography is a technique for reconstructing the state of a quantum system, from the observations of many identical copies. For example, this could be applied to the state of a quantum computer or of parts of it, for debugging/inspection/verification. For each observation we collect new information that we can process to obtain a representation of the quantum state of the system. The question is: how do we decide what to measure in order to maximise the information that we extract from the measurement?

In this project you will:

  1. Define quantum tomography and the reconstruction techniques
  2. Introduce techniques to adapt the choice of new measurements from the data that was already obtained
  3. Compare adaptive with non-adaptive technques
  4. Interpret and discuss the meaning of the results
  5. (bonus) Explain the theoretical bounds on quantum tomography


[1] Optimal, reliable estimation of quantum states

[2] Adaptive Bayesian Quantum Tomography

[3] Adaptive quantum state tomography improves accuracy quadratically

[4] Achieving quantum precision limit in adaptive qubit state tomography

[5] Experimental Comparison of Efficient Tomography Schemes for a Six-Qubit State

5. Quantum Key Distribution

  • Keywords for literature search: QKD, quantum security proof, quantum cryptography
  • Short name: QKD

Quantum Key Distribution (QKD) is a category of communication protocols (first invented in the 80s) that allow us to remotely generate a pair secret keys and at the same time bound the probability that no one else has a copy. There exist several protocols, the most famous being the BB84 protocol.

In this project you will:

  1. Describe the structure of a general QKD protocol
  2. Detail the BB84, B92 and the six-states protocol
  3. Describe the possible categories of attacks (e.g. collective, coherent, etc…) and what they mean for the security
  4. Simulate the six-states protocol and show the effect of communication noise on the secret key rate
  5. Show the research efforts of quantum hackers (i.e. side-channel attacks)
  6. (bonus) Explain the photon-number-splitting attack and the decoy states technique


[1] The security of practical quantum key distribution

[2] Hacking commercial quantum cryptography systems by tailored bright illumination

[3] Decoy State Quantum Key Distribution

6. Algorithms on a real quantum computer

  • Keywords for literature search: quantum algorithms, quantum computing, IBM quantum computer, qiskit
  • Short name: algorithms

A few companies in recent years have granted public access to small quantum devices. It is possible in fact to define a computation and through public APIs to run it on a real quantum computer. For example, the IBM 5-qubit and 16-qubit computers are available through the qiskit library for python. Although 5 or even 16 qubits are not enough to carry out complex tasks that would be otherwise impossible to do classically, they prove the point that quantum advantace will come as soon as we will be able to reliably scale the number of qubits.

In this project you will:

  1. Explain the working principles of a quantum computer
  2. Describe a few algorithms of your choice
  3. Implement them on the IBM 5 or 16 qubit computer
  4. Analyze and explain the results
  5. (bonus) Discuss the challenges of scaling quantum computers (decoherence, control in quantum error correction, the threshold theorem, feasibility of QRAM, etc…)


[1] Quantum Algorithm Implementations for Beginners

[2] Quantum Computational Supremacy