PV275 Introduction to Quantum Computer Programming

Faculty of Informatics
Autumn 2020
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).
Teacher(s)
doc. RNDr. Jan Bouda, Ph.D. (lecturer)
doc. Mgr. Mário Ziman, Ph.D. (lecturer)
Mgr. Libor Caha, PhD. (seminar tutor)
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 12:00–13:50 A218
  • Timetable of Seminar Groups:
PV275/01: Tue 14:00–15:50 A219, J. Bouda
PV275/02: Mon 16:00–17:50 A219, D. Reitzner
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
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
    Study Materials
    The course is taught annually.
    Listed among pre-requisites of other courses
    The course is also listed under the following terms Autumn 2019, Autumn 2021, Autumn 2022, Autumn 2023, Autumn 2024.
    • Enrolment Statistics (Autumn 2020, recent)
    • Permalink: https://is.muni.cz/course/fi/autumn2020/PV275