# FI:PV275 Intro to Quantum Programming - Course Information

## PV275 Introduction to Quantum Computer Programming

**Faculty of Informatics**

Autumn 2023

**Extent and Intensity**- 2/2/0. 3 credit(s) (plus extra credits for completion). Recommended Type of Completion: zk (examination). Other types of completion: k (colloquium), z (credit).

Taught in person. **Teacher(s)**- doc. RNDr. Jan Bouda, Ph.D. (lecturer)

Mgr. Michal Sedlák, PhD. (lecturer)

doc. Mgr. Mário Ziman, Ph.D. (lecturer)

RNDr. Daniel Reitzner, PhD. (seminar tutor) **Guaranteed by**- doc. RNDr. Jan Bouda, Ph.D.

Department of Computer Systems and Communications - Faculty of Informatics

Contact Person: doc. RNDr. Jan Bouda, Ph.D. **Timetable**- Tue 10:00–11:50 B411
- Timetable of Seminar Groups:

*J. Bouda* **Prerequisites**- (
**MB141**Linear alg. and discrete math ||**MB151**Linear models ||**MB101**Mathematics I ||**MB201**Linear models B ) &&**IB111**Foundations of Programming

Basic knowledge of linear algebra, probability theory, programming in Python **Course Enrolment Limitations**- The course is also offered to the students of the fields other than those the course is directly associated with.
**fields of study / plans the course is directly associated with**- there are 33 fields of study the course is directly associated with, display
**Course objectives**- This is an introductory course to quantum information. The main goal is to provide students with basic idea what are the expected applications of quantum information processing, how quantum computing and communication works, and give them practical experience how to program quantum computer. All programming will be performed using Python language and IBM Quiskit library.

As a part of the course we want students to become comfortable with basic mathematics necessary for quantum information processing. While you already know almost all necessary mathematics from prerequisite courses, there is a big difference between knowing something and being able to use it an intuitive and efficient way.

The course is designed in the way that it introduces in a parallel way basic quantum information applications, necessary mathematical concepts and teaches how to implement these applications on quantum computers. As an example, on second lecture you will learn about BB84 quantum key distribution. On this concept we will explain what quantum state is, what is a quantum measurement, and we will learn how to implement BB84 using the Quiskit Python library. In this way we avoid boring monothematical blocks of mathematics.

This course will be in future followed by two advanced courses. The second course will introduce all necessary concepts of quantum information processing – necessary concepts from mathematics, physics and informatics, so that student will have all theoretical knowledge necessary to work with quantum information processing. The third course will explain the applications of quantum information processing in full scale – communication, algorithms, cryptography, NP-approximation, machine learning, simulation of physical and chemical systems. **Learning outcomes**- After completing the course, a student
- will be able to implement simple quantum programs using the IBM Quiskit library
- will know basic applications of quantum information processing
- and will be able to program them using the IBM Quiskit library
- will be able to perform basic mathematical calculations necessary for quantum information processing applications
**Syllabus**- More detailed syllabus is provided in the study materials, namely in the Interactive syllabi.
- Quantum information processing, tools and applications.
- Existing quantum technologies (IBM, Toshiba, Google, Microsoft, D-wawe, Qusoft, idQuantique), Chinese backbone quantum network, quantum satellites.
- BB84 quantum key distribution, Bell inequalities, entanglement-based key distribution.
- Quantum teleportation.
- Quantum encryption.
- Quantum bit commitment and coin flipping.
- Grover’s search.
- Quantum processors, universal sets of quantum gates, approximation.

**Literature**- - Qiskit documentation: https://qiskit.org/documentation/ Tutorials: https://nbviewer.jupyter.org/github/Qiskit/qiskit-tutorial/blob/master/index.ipynb
- - IBM Q Experience Tutorial: https://quantumexperience.ng.bluemix.net/qx/tutorial?sectionId=full-user-guide
- WATROUS, John.
*The theory of quantum information*. First published. Cambridge, United Kingdom: Cambridge University Press, 2018. viii, 590. ISBN 9781107180567. info - NIELSEN, Michael A. and Isaac L. CHUANG.
*Quantum computation and quantum information*. 10th Anniversary ed. Cambridge: Cambridge University Press, 2010. xxxi, 676. ISBN 9781107002173. info *An introduction to quantum computing*. Edited by Phillip Kaye - Raymond Laflamme - Michele Mosca. Oxford: Oxford University Press, 2007. xi, 274 p. ISBN 9780198570493. info

**Teaching methods**- Theoretical lectures, practical examples in tutorials, programming
**Assessment methods**- 4 written mini-tests during tutorials (20 points together)

Correctly solve blackboard tasks during tutorials (cca 15 points)

Final test: written test+programming given task (70 points)

Tutorial attendance mandatory: not attending 1 tutorial no penalty, 2 tutorials 5 point penalty, 3 or more 10 point penalty. Penalty is subtracted only from the pass/fail limit, it does not ifluence the grade (e.g. C vs. D).

To pass you need: Exam 50 points, colloquium 45 points, fulfilling requirements ("zapocet") 20 points. **Language of instruction**- English
**Follow-Up Courses****Further Comments**- The course is taught annually.
**Listed among pre-requisites of other courses**

- Enrolment Statistics (recent)

- Permalink: https://is.muni.cz/course/fi/autumn2023/PV275