QUANTUM COMPUTER PROGRAMMING

Academic Year 2023/2024 - Teacher: SIMONE FARO

Expected Learning Outcomes

Knowledge and understanding: knowledge of the main methodologies for the design of quantum algorithms will be acquired. Specifically, the knowledge related to the basics of quantum computation, to the main quantum circuits, and to basic quantum algorithms will be acquired. The techniques for the complexity analysis of quantum algorithms and their programming through dedicated languages ​​will be acquired. The Qiskit development system will be used as the main tool to present the application of the constructs and the implementations of the studied algorithms.

Applying knowledge and understanding: the ability to solve simple problems that require the design and analysis of algorithmic solutions in the field of quantum computation will be acquired.

Making judgments: the student will be able to evaluate the applicability of a quantum solution for solving a computational problem as well as acquire the ability to evaluate a quantum algorithm in terms of efficiency and possibility of reuse.

Communication skills: the necessary communication skills and adequate expressive appropriateness will be acquired in communicating problems inherent in algorithmic studies in the field of quantum computing, even to non-expert interlocutors.

Learning skills: the student will have the ability to adapt the knowledge acquired also to new contexts, as well as to update himself by consulting the specialized sources of the quantum computing sector.

Course Structure

Frontal lessons.
If the teaching is given in a mixed or remote way, the necessary changes may be introduced with respect to what was previously stated, in order to comply with the program envisaged and reported in the syllabus.

Required Prerequisites

Basic knowledge of programming in Python and the Jupyter notebook.

Elements of discrete mathematics and linear algebra, programming I and II, and mathematical analysis.

Detailed Course Content

The course provides an introduction to quantum algorithms, covering many key algorithms. It requires minimal background and assumes no knowledge of quantum theory or quantum mechanics. The course presents quantum computation in terms of elementary linear algebra assuming the reader have some familiarity with vectors, matrices, and their basic properties, but offering a review of all the relevant material from linear algebra. By emphasizing computation and algorithms rather than physics, this course makes quantum algorithms accessible to students and researchers in computer science without the complications of quantum mechanical notation, physical concepts, and philosophical issues.

After explaining the development of quantum operations and computations based on linear algebra, the course presents the major quantum gates and quantum algorithms, from seminal algorithms by Deutsch, Jozsa, and Simon through Shor's to Grover's search algorithm. Mathematical proofs are generally short and straightforward.

The course also introduces the principles of quantum programming through the use of the Qiskit SDK, which allows users to run experiments on state-of-the-art quantum devices. The course provides students how to use Qiskit to experiment with quantum algorithms and hardware, and uses this to reinforce their understanding.

Textbook Information

1) Quantum Algorithms via Linear Algebra, di Richard J. Lipton e Kenneth W. Regan. The MIT Press Cambridge, Massachusetts London, England.

2) Qiskit Textbook, Learn Quantum Computation Using Qiskit, 2020. Online available at : http://community.qiskit.org/textbook

Course Planning

 SubjectsText References
1Il modello di computazione quantisticaCap. 1 di 1)
2Numeri e stringheCap. 2 di 1)
3Elementi di Algebra LineareCap. 3 di 1)
4Funzioni booleane e fattibilitàCap. 4 di 1)
5Elementi di programmazione in QiskitCap. 1-2 di 2)
6Circuiti QuantisticiCap. 3.1 of 2)
7Matrici specialiCap. 5 di 1)
8Quantum OraclesCap. 3.2 di 2)
9Procedure ausiliarieCap. 6 di 1)
10Algoritmi quantistici elementariCap. 7 di 1)
11Quantum TeleportationCap. 3.10 di 2)
12Superdense CodingCap. 3.11 di 2)
13Algoritmo di DeutschCap. 8 di 1)
14Algoritmo di Deutsch-JozsaCap. 9 di 1) e Cap. 3.2 di 2)
15Algoritmo di SimonCap. 10 di 1) 3 Cap. 3.4 di 2)
16Algoritmo di ShorCap. 11-12 di 1) e Cap. 3.5-3.6-3.7 di 2)
17Algoritmo di GroverCap. 13 di 1) e Cap. 3.8 di 2)

Learning Assessment

Learning Assessment Procedures

The course examination is divided into two parts: an initial written laboratory test and a subsequent oral test. These tests may take place electronically, should conditions require it. The oral test may take place on the same day as the written test or a few days after it. The purpose of this test will be to assess in more detail the student's preparation, his or her ability to reason with regard to the topics covered in class, as well as his or her property of language. The evaluation of the oral test should be understood as supplementing the grade obtained in the written test and not increasing it.