B. Martin & R. Aparicio-Pardo

Quantum Programming and Computing

This course aims to present the most recent trends, technologies and protocols deployed in Internet nowadays.

This course will not open in 2025/26


We introduce the new paradigm of quantum programming and computing through a series of lectures paired with programming labs with the help of a framework which is a Python library. Though current quantum computers are not yet powerful, there is a real effort to design frameworks to use them. Our aim is to provide a hands on to build an intuition to use quantum primitives for problem solving with the help of quantum computers.

Lectures

  • Introduction to quantum computing (I): refresher on mathematics and computer science theory for quantum computing, short introduction to quantum physics, qubit notion
  • Lab: hands on Jupyter and QC framework. Basic quantum operations, visualisation and measuring
  • Introduction to quantum computing (II): quantum circuits, difference between an adiabatic machine and a real quantum computer, applications of quantum computing (like quantum key distribution)
  • Lab: Quantum Key distribution
  • First general quantum algorithms (QFT and Grover)
  • Lab: Quantum search with Grover’s algorithm and application in computer science
  • Famous quantum algorithms: Simon and Shor
  • Lab: Quantum programming of Simon’s and Shor’s algorithms

DISCLAIMER: Small changes are still possible.

Teaching materials

Bibliography

  • Eric R. Johnston, Nic Harrigan, M. Gimeno Segovia. Programming Quantum Computers, O’Reilly, 2019.

  • Charles H. Bennett and Gilles Brassard, Quantum cryptography: Public key distribution and coin tossing, Theoretical Computer Science, vol. 560, 1984, pp. 7–11.

  • Artur K. Ekert, Quantum cryptography based on Bell’s theorem, Physical Review Letters 67 (6), pp. 661-663, 1991.

  • Michael A. Nielsen and Isaac L. Chuang, Quantum Computation and Quantum Information

    Prerequisities

    ==============

  • Undergraduate mathematics (linear algebra, complex analysis, calculus, probability theory).

  • Python programming and use of libraries. The use of Jupyter is a plus.

Evaluation

  • A lab report (1/2 of the final mark)
  • A final written examination (1/2 of the final mark)

Retake

  • ONLY 2-hour written exam

Lecturers