# QUANTUM COMPUTER PROGRAMMING

**Academic Year 2021/2022**- 2° Year

**Teaching Staff:**

**Simone FARO**

**Credit Value:**6

**Scientific field:**INF/01 - Informatics

**Taught classes:**24 hours

**Exercise:**24 hours

**Term / Semester:**1°

## Learning Objectives

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.

## 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