Course Syllabus
Aims
Understanding of the operating principles of quantum computational models, and how they are exploited to solve computational (difficult) problems. Understanding of how quantum algorithms work, and how they can be implemented using appropriate formalisms and programming languages. Ability to run quantum algorithms on classical and quantum simulators.
Contents
Notions and concepts at the base of quantum information processing. Quantum models of computation, and the corresponding classes of problems that can be solved. Quantum algorithms: how they are designed, how they work, how they can be implemented and run. The course also provides the conceptual and theoretical tools that allow to understand the mathematical bases on which the definition quantum computational models and quantum algorithms are based. Practical examples of implementations of algorithms will be developed during the laboratory activity.
Detailed program
• Quantum physical phenomena, quantum parallelism, entanglement, measurements, and their mathematical representation
• Quantum gates and quantum circuits
• Classical vs. quantum computations: the Deutsch-Jozsa algorithm, the BB84 protocol, the Ekert91 protocol
• Fundamental quantum algorithms: quantum Fourier transform, Shor's algorithms (factorization and discrete logarithms), Grover's algorithm
• Quantum algorithms and the hidden subgroup problem
• Quantum dense coding, quantum teleportation
• Quantum error correction
• Quantum cryptography, and (classical) post-quantum cryptography
• Notes on other quantum computational models: Quantum Turing machines, adiabatic Turing machines
• Solving NP-hard and NP-complete problems with quantum computers
• Programming languages, libraries, simulators, platforms (in particular: QCEngine, Qiskit)
• Hybrid neural networks, and quantum machine learning
Prerequisites
Linear algebra, and mathematical topics covered in undergraduate courses held in STEM bachelor degrees. It is useful - but not necessary - to have basic notions of theoretical computer science (in particular, Turing machines) and computational complexity.
Teaching form
Lectures and exercises in the classroom, and laboratory programming activity. All activities will be held in presence. Attendance is warmly recommended, although not mandatory.
Textbook and teaching resource
• Wolfgang Polak, Eleanor Rieffel: Quantum Computing : A Gentle Introduction. MIT Press, 2011
• Colin P. Williams: Explorations in Quantum Computing. Second edition, 2011
• Eric R. Johnston, Nic Harrigan, Mercedes Gimeno-Segovia: Programming Quantum Computers: Essential Algorithms and Code Samples. O'Reilly Media, 2019
Lecture notes and scientific papers provided by the teachers.
Semester
First semester
Assessment method
The learning assessment is based on an oral interview, on the subjects exposed in class during the course. During the interview, the student's ability to explain the topics of the course, and to make brief thoughts on them, will be assessed.
Office hours
On appointment