Quantum Computer Programming

2020-II


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%

Grades


Course resources

References

Additional resources


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

oabustosb
Simulation of time-discrete stochastic Markov processes through quantum systems using IBM-Qiskit (video)
arjarizami-miacastroco
Implementación del QRAC de uno y dos qubits (video)
capinog
Experimental exploration of virtual quantum subspace expansion using Qiskit (video)
hmtoquicac-davegav-esgantivar
Supervised Learning using Hybrid Quantum-Classical Neural Networks (video)
nparraa-cgaravitoc
Solution for the ground state 1D transverse field Ising model using VQE (video)
pavalderramat-leavendanoro
Transfer Learning with Hybrid Neural Networks (video)
srmedinac_ccgomezn_miaortizma
Quantum Reinforcement Learning (video)
adcorredorm-jpovalles-jspenaq
Síntesis de Circuitos Cuánticos (video)