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.

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