Course description
Instructor
Fabio A. González
Programs: MSc & PhD en Ingeniería de Sistemas y Computación
Universidad Nacional de Colombia
Course goal
Quantum computing is a rapid developing field with a high potential to revolutionize the way we compute and how we use computers to solve problems. It exploits the particular nature of quantum systems to perform calculations that in some cases can exhibit exponential speed-ups with respect to classical computers. This course is an introduction to the mathematical tools necessary to describe quantum systems and the fundamental concepts of quantum circuits and algorithms. The course will provide tools that allow students to implement quantum circuits and algorithms using quantum computing libraries and to run them using quantum simulators as well as real hardware. The final part of the course will focus on the application of quantum computing to machine learning.
At the end of the course the student will be able:
- To describe the differences between quantum and classic computation.
- To understand the mathematical basis of quantum state representation and quantum operations.
- To build quantum circuits connecting different types of quantum gates.
- To implement quantum circuits and algorithms using quantum programming libraries.
- To run quantum circuits and algorithms using quantum simulators and real quantum computers.
- To understand how to design quantum algorithms to solve different problems.
- To understand how to design hybrid quantum algorithms to solve machine learning problems.
Course topics
1 Quantum Computing Basis
1.1 Introduction to quantum computing
1.2 Linear algebra and Dirac notation
1.3 Qubits
1.4 Measurements
1.5 Composite systems
1.6 Pure, entangled and mixed states
1.7 Theory of computation and Computational Complexity
**1.8 Implementation of quantum computers **
2 Quantum circuits and algorithms
2.1 Quantum circuits and gates
2.2 Superdense coding and teleportation
2.3 Deutsch-Joza algorithm
2.4 Simon’s algorithm
2.5 Shor’s algorithm
2.6 Grover’s algorithm
2.7 Noisy intermediate scale quantum computers
2.8 Quantum algorithms for applications
3 Quantum machine learning
3.1 Machine learning review
3.2 Quantum measurement classification
3.3 Quantum machine learning algorithms
Evaluation and grading policy
- Assignments 30%
- Presentation 20%
- Exam 30%
- Final project 20%
Course resources
References
- [Nielsen10] Michael A. Nielsen & Isaac L. Chuang. Quantum Computation and Quantum Information. CAMBRIDGE UNIVERSITY PRESS. 2010
- [Asfaw19] Abraham Asfaw et al., Learn Quantum Computation using Qiskit. Qiskit Development Team. 2019
- [Kaye07] Phillip Kaye et al. An Introduction to Quantum Computing. Oxford University Press. 2007 9783319964232). Springer. 2018
- [Nannicini17] Nannicini, G. An introduction to quantum computing, without the physics. arXiv preprint arXiv:1708.03684. 2017
- [Rieffel11] Rieffel, E. G., & Polak, W. H. Quantum computing: A gentle introduction. MIT Press. 2011
- [Schuld18] Schuld, M., & Petruccione, F. Supervised Learning with Quantum Computers. Springer. 2018
Additional resources
- [IGFAE20] Andrés Gómez. Introduction to Quantum Computing. Short Course, Instituto Galego de Física de Altas Enerxías (IGFAE). 2020
- [CS191x] Umesh Vazirani. BerkeleyX CS191x: Quantum Mechanics and Quantum Computation. edX. 2013
- [CS269Q] Dan Boneh, Will Zeng, CS 269Q: Quantum Computer Programming, Stanford University, 2019
- [Qiskit] Qiskit: is an open source SDK for working with quantum computers at the level of pulses, circuits and algorithms. IBM.
- [IBMQE] IBM Quantum Experience: Learn, develop, and run quantum programs.
Course schedule
| Week | Topic | Material | Assignments |
|---|---|---|---|
| Aug 25 | 1.1 Introduction to quantum computing | [IGFAE20] Lecture 1: Introduction to Quantum Computing (slides) [Nielsen10] Sections 1.1 Global perspectives Dario Gil, The Future of Quantum Computing, IBM 2020 (video) Class Aug 25 (video, in Spanish, description and logistics of the course) Class Aug 27 (video) | |
| Sep 1-8 | 1.1 Introduction to quantum computing 1.2 Linear algebra and Dirac notation | [Nielsen10] Section 2.1 Linear algebra [Nielsen10] Section 2.2 Postulates of quantum mechanics [Asfaw19] 8.1 Linear Algebra Class Sep 1 (video) Class Sep 3 (video) Class Sep 8 (video) Notes Sep 3-8 (pdf) | |
| Sep 15 | 1.3 Qubits 1.4 Measurements | [CS191x] Chapter 1 Qubits and Quantum Measurement [Nielsen10] Section 2.2 Postulates of quantum mechanics Class Sep 10 (video) Class Sep 15 (video) Notes Sep 10-15 (pdf) | |
| Sep 15-22 | 1.5 Composite systems 1.6 Pure, entangled and mixed states | [CS191x] Chapter 2 Entanglement [Nielsen10] Section 2.2 Postulates of quantum mechanics Class Sep 17 (video) Notes Sep 17 (pdf) | Assignment 2 |
| Sep 29 | 1.7 Theory of computation and Computational Complexity | [Nielsen10] 3.2 The analysis of computational problems Class Sep 29 (video) Notes Sep 29 (pdf) | |
| Oct 6-13 | 1.8 Implementation of quantum computers 2.1 Quantum circuits and gates | [Asfaw19] 1.2 The Atoms of Computation [Asfaw19] 1.3 Representing Qubit States [Asfaw19] 1.4 Single Qubit Gates [Asfaw19] 2.2 Multiple Qubits and Entangled States [Asfaw19] 2.3 Phase Kickback [Asfaw19] 2.4 More Circuit Identities Class Oct 6 (video) Class Oct 8 (video) Class Oct 13 (video) | Assignment 3 |
| Oct 20 | 2.2 Superdense coding and teleportation | [Asfaw19] 2.2 Quantum Teleportation [Asfaw19] 2.2 Superdense Coding Class Oct 20 (video) Class Oct 22 (video) | |
| Oct 27 | 2.3 Deutsch-Joza algorithm 2.4 Simon's algorithm | [Asfaw19] 3.4 Deutsch-Jozsa Algorithm [Asfaw19] 3.6 Simon's Algorithm Class Oct 27 (video, notes) Class Oct 29 (video 1, video 2, notes) | |
| Nov 3-10 | 2.5 Shor's algorithm | [Asfaw19] 3.7 Quantum Fourier Transform [Asfaw19] 3.8 Quantum Phase Estimation [Asfaw19] 3.9 Shor's Algorithm [Asfaw19] 3.11 Quantum Counting (Hans Toquica) [Asfaw19] 3.12 Quantum Key Distribution (Sebastián Medina) Edwards et al, A review of quantum and hybrid quantum/classical blockchain protocols (Leonardo Avendaño) (presentation) Class Nov 5 (video, notes) Class Nov 10 (video, notes) Class Nov 12 (video) | Assignment 4 |
| Nov 17 | 2.8 Quantum algorithms for applications | [Asfaw19] 4.1.1 Solving Linear Systems of Equations using HHL (Oscar Bustos) [Asfaw19] 4.1.2 Simulating Molecules using VQE (Nicolas Parra) Increasing the representation accuracy of quantum simulations of chemistry without extra quantum resources (Camilo Pino) [Asfaw19] 4.1.3 Solving combinatorial optimization problems using QAOA (Angel Corredor) [Asfaw19] 4.1.4 Solving Satisfiability Problems using Grover's Algorithm (Pedro Valderrama) [Asfaw19] 4.1.5 Hybrid quantum-classical Neural Networks with PyTorch and Qiskit (Sneyder Gantiva) [Asfaw19] 4.2.1 Variational Quantum Linear Solver (Carlos Garavito) Class Nov 17 (video) Class Nov 19 (video) | Final Project |
| Nov 24 | 3.1 Machine learning review 3.2 Quantum measurement classification | Class Nov 24 (video) Class Nov 26 (video, notes) | |
| Dec 1 | 3.3 Quantum machine learning algorithms | [Schuld18] 6.1.1 Inner Products with Interference Circuits (Miguel Angel Castro) [Schuld18] 6.1.2 A Quantum Circuit as a Linear Model (Diego Vega) [Schuld18] 6.1.3 Linear Models in Basis Encoding (Juan Pablo Ovalle) [Schuld18] 6.1.4 Nonlinear Activations (Juan Sebastián Peña) Near-Term Quantum-Classical Associative Adversarial Networks (Arkai Julián Ariza) Quantum embeddings for machine learning (Miguel Angel Rodríguez) The effect of data encoding on the expressive power of variational quantum machine learning models (Cristhian Gómez) Small quantum computers and large classical data sets(Miguel Angel Ortiz) Class Dec 1 (video) Class Dec 3 (video) |
Final Projects