Quantum Programming
Code  Completion  Credits  Range  Language 

02QPRG  Z  2  1P+1C  English 
 Garant předmětu:
 Lecturer:
 Tutor:
 Supervisor:
 Department of Physics
 Synopsis:

The goal of the course is to provide the basic skills for programming quantum computers, and to use these skills to develop understanding of fundamental quantum communication protocols and quantum algorithms. The classes are combinations of lectures that introduce the essential concepts and tools, followed by exercise sessions during which programming assignments are completed. Familiarity with quantum mechanics is not necessary. Any quantum SDK, such as Qiskit, Cirq, Forest, Q#, may be used during the course, based on agreement at the beginning of the semester.
 Requirements:
 Syllabus of lectures:

Outline of the course:
1.Probabilistic and quantum bits, quantum computing SDK (e.g. Qiskit),
2.Bloch sphere representation of a qubit, general single qubit gates
3.Measurement, cloning, state identification of an ensemble
4.Two qubits, quantum correlations, quantum circuits
5.Quantum communication protocols: quantum teleportation, super dense coding
6.Quantum key distribution protocol: BB84
7.Multiqubit gates, universal quantum computer
8.Deutsch–Jozsa algorithm, the Oracle
9.Grover’s search algorithm
10.Quantum Fourier Transform
11.Quantum phase estimation
12.Shor’s factorization, quantum Fourier transformation
13.Discrete time quantum walks and spatial search
 Syllabus of tutorials:

Outline of the exercises:
Students are expected to write code during the class that implements the assigned tasks using the chosen SDK, typically using the Jupyter notebook interface to python. Use of own laptops with a preinstalled quantum SDK is expected.
 Study Objective:
 Study materials:

Studijní literatura a studijní pomůcky
Key references:
[1] M. A. Nielsen, I. L. Chuang, Quantum computation and quantum information, Cambridge Univ. Press, 2013.
Recommended references:
[2] Learn Quantum Computation using Qiskit: https://qiskit.org/textbook
[3] Cirq tutorial: https://quantumai.google/cirq
[4] Forest SDK Docs: https://pyquildocs.rigetti.com/en/stable/
[5] Microsoft QDK tutorial: https://docs.microsoft.com/enus/learn/paths/quantumcomputingfundamentals/
 Note:
 Further information:
 https://people.fjfi.cvut.cz/gabriaur/index.php?n=Main.Teaching
 No timetable has been prepared for this course
 The course is a part of the following study plans: