QCourse 511-1 | Programming Quantum Computers

Provided by: Maksims Dimitrijevs

Number of ects: 6

Number of lectures/workshops:

  • Total Number of Contact Hours 64:
    • Number of Lecture Hours 16
    • Number of Seminar and Practical Assignment Hours 48
  • Independent Study Hours 96

Date available: Course is designed for Autumn Semester, Sep 2021 – Jan 2022 and will be repeated in next years.

Competence framework topics:

5 Quantum computing and simulation

5.1 Quantum gates

5.2 Quantum programming languages and tools

5.3 Quantum algorithms and computing techniques

Short description of the content:

The goal of the course is to provide students with an understanding of the basics of quantum computing and programming and with skills to design quantum programs and then execute them on real quantum computers and simulators and to implement the fundamental quantum algorithms and protocols.


  1. Provide knowledge of basics of quantum computing and programming.
  2. Create skills to design and execute quantum programs on real quantum computers and simulator.
  3. Create skills to implement the fundamental quantum algorithms and protocols.

Extended description of the content:

  1. Probabilistic systems.

The concept of bit and operators on a single bit. Probabilistic bits, coin-flipping, and using coins as operators. Introducing probabilistic states and operators and their properties. Introducing classical correlation and its mathematical representation.

  1. Elements of quantum programs.

Introduction to quantum programming libraries. Quantum program as quantum circuits. Designing simple quantum programs and defining classical and quantum registers, quantum gates and measurement. Quantum Assembly languages and assembly representation of quantum programs. Example Quantum programs.

  1. Basics of quantum systems.

Quantum coin-flipping and its photonic implementation. Definition of quantum bits and Hadamard Operator. Introduction to quantum states. Visualization of a qubit on two-dimensional plane.

  1. Superposition and measurement.

Introduction to quantum operators. Basic quantum operator on unit circle: Rotations and Reflections. Basic quantum tomography and its implementation.

  1. Composite quantum systems.

Phase kickback. Concept of entanglement, and its implementation. Quantum protocols for superdense coding and quantum teleportation. The implementation of quantum protocols.

  1. Grover’s search algorithm and its implementation.

The elements of Grover’s search algorithm. Inversion and oracle phase as games. The simulation of Grover’s search on the unit circle. Implementation of Grover’s search algorithm.

  1. The Bloch Sphere.

Complex numbers and their visual representation. Roots of unity. Basic operations on the Bloch Sphere and their implementations.

  1. Quantum Fourier Transform and its implementations.

The definition and properties of quantum Fourier transformation. Its circuit representation and its implementation on simulators and real quantum machines.

  1. Shor’s factorization algorithm and its implementation.

The elements of Shor’s factorization algorithm. Period finding and its implementation. The implementation of Shor’s algorithm on real machines.

  1. Basics of quantum error correcting codes and their implementations.

Introduction to error correction and quantum error correction. Basic quantum error correcting methods and their implementation.

More information: https://luis.lu.lv/pls/pub/kursi.kurss_dati?p_kods=2DAT7097&l=2&p_par=

Maximum number of student participants: no limit is considered

Maximum number of universities participating: no limit is considered

Pre-requisites for the course:

  1. Complete the installation of necessary environment – Python and Qiskit. Information about the installation will be shared with participants.
  2. Complete all notebooks listed under section “Python review” if participants are not familiar with Python. Basic knowledge is needed: Variables, Loops, Conditionals, Lists.
  3. Review all notebooks listed under section “Basic math” before the workshop starts: Vectors, Dot Product, Matrices, Tensor Product.

Material available:

  • Video/stream
  • Lecture notes
  • Exercises

Need for Teaching Assistance: Teaching Assistants will be very helpful especially if there will be big number of students. In QWorld network (https://qworld.net/) we have experienced people who have successfully fulfilled mentoring duties during the workshops that cover topics of this course. We can involve the mentioned people for assistance.

Other remarks concerning this course: Course is planned to be organized remotely.

Known to be available at:

CTU Prague, QWorld, and University of Latvia

Previous instances:

Followup instances:

QCourse 511-2 | Programming Quantum Computers

Signing up: Contact your local QTOM representative for instructions to sign up. The list of local QTOM representatives is maintained on the student area page.