## About the Course

This course is an introduction to the world of quantum computing, with an exploration of some of the key quantum algorithms and their implementations using quantum circuits, as well as the quantum hardware that is designed to run these algorithms. The course was first offered during the Qiskit Global Summer School in July 2020 as a two-week intensive summer school.

There are 27 lectures in this course, which cover the material in 9 lecture notes and 9 associated labs. The textbook for the course is available online: Learn Quantum Computation using Qiskit.

## Prerequisites

In order to make the best out of these lectures, we strongly recommend reviewing linear algebra and brushing up on Python. Here are some recommended materials:

- Multiplying two matrices, introductory linear algebra:
- Basic familiarity with Python:

## Curriculum

Lecture | Video | Notes | Lab |
---|---|---|---|

Lecture 1Qubits and Quantum States, Quantum Circuits, Measurements Part 1(Lecturer: Elisa Bäumer) |
Lecture Video | Lecture Notes 1 | Lab 1 |

Lecture 2Qubits and Quantum States, Quantum Circuits, Measurements Part 2(Lecturer: Elisa Bäumer) |
Lecture Video | ||

Lecture 3Qubits and Quantum States, Quantum Circuits, Measurements Part 3(Lecturer: Elisa Bäumer) |
Lecture Video | ||

Lecture 4Writing and Running Quantum Programs Part 1(Lecturer: Elisa Bäumer) |
Lecture Video | Lecture Notes 2 | Lab 2 |

Lecture 5Writing and Running Quantum Programs Part 2(Lecturer: Elisa Bäumer) |
Lecture Video | ||

Lecture 6Writing and Running Quantum Programs Part 3(Lecturer: Elisa Bäumer) |
Lecture Video | ||

Lecture 7Shor's Algorithm I: Quantum Fourier Transform, Quantum Phase Estimation Part 1(Lecturer: Abraham Asfaw) |
Lecture Video | Lecture Notes 3 | Lab 3 |

Lecture 8Shor's Algorithm I: Quantum Fourier Transform, Quantum Phase Estimation Part 2(Lecturer: Abraham Asfaw) |
Lecture Video | ||

Lecture 9Shor's Algorithm I: Quantum Fourier Transform, Quantum Phase Estimation Part 3(Lecturer: Abraham Asfaw) |
Lecture Video | ||

Lecture 10Shor's Algorithm II: From Factoring to Period-Finding, Writing the Quantum Program Part 1(Lecturer: Abraham Asfaw) |
Lecture Video | Lecture Notes 4 | Lab 4 |

Lecture 11Shor's Algorithm II: From Factoring to Period-Finding, Writing the Quantum Program Part 2(Lecturer: Abraham Asfaw) |
Lecture Video | ||

Lecture 12Shor's Algorithm II: From Factoring to Period-Finding, Writing the Quantum Program Part 3(Lecturer: Abraham Asfaw) |
Lecture Video | ||

Lecture 13Quantum Error Correction using Repetition Codes Part 1(Lecturer: James Wootton) |
Lecture Video | Lecture Notes 5 | Lab 5 |

Lecture 14Quantum Error Correction using Repetition Codes Part 2(Lecturer: James Wootton) |
Lecture Video | ||

Lecture 15Quantum Error Correction using Repetition Codes Part 3(Lecturer: James Wootton) |
Lecture Video | ||

Lecture 16Superconducting Qubits I: Quantizing a Harmonic Oscillator, Josephson Junctions Part 1(Lecturer: Zlatko Minev) |
Lecture Video | Lecture Notes 6 | Lab 6 |

Lecture 17Superconducting Qubits I: Quantizing a Harmonic Oscillator, Josephson Junctions Part 2(Lecturer: Zlatko Minev) |
Lecture Video | ||

Lecture 18Superconducting Qubits I: Quantizing a Harmonic Oscillator, Josephson Junctions Part 3(Lecturer: Zlatko Minev) |
Lecture Video | ||

Lecture 19Superconducting Qubits II: Circuit Quantum Electrodynamics, Readout and Calibration Methods Part 1(Lecturer: Zlatko Minev) |
Lecture Video | Lecture Notes 7 | Lab 7 |

Lecture 20Superconducting Qubits II: Circuit Quantum Electrodynamics, Readout and Calibration Methods Part 2(Lecturer: Zlatko Minev) |
Lecture Video | ||

Lecture 21Superconducting Qubits II: Circuit Quantum Electrodynamics, Readout and Calibration Methods Part 3(Lecturer: Zlatko Minev) |
Lecture Video | ||

Lecture 22Quantum Chemistry I: Obtaining the Qubit Hamiltonian for H2 and LiH Part 1(Lecturer: Antonio Mezzacapo) |
Lecture Video | Lecture Notes 8 |
Lab 8 Video |

Lecture 23Quantum Chemistry I: Obtaining the Qubit Hamiltonian for H2 and LiH Part 2(Lecturer: Antonio Mezzacapo) |
Lecture Video | ||

Lecture 24Quantum Chemistry I: Obtaining the Qubit Hamiltonian for H2 and LiH Part 3(Lecturer: Antonio Mezzacapo) |
Lecture Video | ||

Lecture 25Quantum Chemistry II: Finding the Ground States of H2 and LiH Part 1(Lecturer: Abhinav Kandala) |
Lecture Video | Lecture Notes 9 | Lab 9 |

Lecture 26Quantum Chemistry II: Finding the Ground States of H2 and LiH Part 2(Lecturer: Abhinav Kandala) |
Lecture Video | ||

Lecture 27Quantum Chemistry II: Finding the Ground States of H2 and LiH Part 3(Lecturer: Abhinav Kandala) |
Lecture Video | ||

Panel DiscussionCareers in Quantum Computing(Hosted by Amira Abbas) |
Video |

## Course Description

The structure of the course is as follows:

- Lectures 1 – 6 provide an introduction to quantum computing and quantum algorithms using quantum circuits. The emphasis here is on understanding how to work with quantum states, and operate on them using quantum circuits.
- Lectures 7 – 12 are designed to teach Shor's algorithm. The first three lectures focus on building intuition for the quantum Fourier transform and quantum phase estimation, while the next three lectures focus on the implementation of Shor's algorithm using quantum circuits.
- Lectures 13 – 15 introduce quantum error correction using repetition and surface codes. The lectures show the kinds of errors that can happen during a quantum computation, and methods to do quantum computation in the presence of these errors.
- Lectures 16 – 21 introduce the hardware used for quantum computation, with emphasis on superconducting qubits. The first three lectures discuss how to build a superconducting transmon quantum bit (qubit) out of an anharmonic oscillator using Josephson junctions, while the next three lectures focus on coupling to the qubit in a circuit quantum electrodynamics architecture.
- Lectures 22 – 27 introduce the techniques used to solve quantum chemistry problems using gate-based quantum computers, with emphasis on superconducting qubits. The first three lectures describe the structure of quantum chemistry problems and discuss methods for converting these problems into ones that can be mapped onto a gate-based quantum computer, while the next three lectures focus on extracting the best performance from the quantum hardware to solve quantum chemistry problems by implementing variational quantum eigensolvers.

The associated labs are provided as zip files. Each lab comes in a zip file containing the exercises in a Jupyter notebook named `lab-x.ipynb`

and solutions in another notebook named `lab-x-solutions.ipynb`

. The labs are structured as follows:

- Labs 1 and 2 support the material in lectures 1 – 6 with hands-on exercises in Qiskit. Lab 1 covers single-qubit and multi-qubit states and quantum teleportation. Lab 2 covers the implementation of Grover's algorithm using quantum circuits.
- Labs 3 and 4 support the material in lectures 7 – 12 with hands-on exercises in Qiskit. Lab 3 covers the implementation of standard quantum phase estimation, and lab 4 implements Shor's algorithm to factor 15 into 3 and 5.
- Lab 5 supports the material in lectures 13 – 15 with hands-on exercises in Qiskit. It provides a hands-on exercise on implementing repetition codes and seeing their performance in the presence of noise.
- Labs 6 and 7 support the material in lectures 16 – 21 with hands-on exercises in Qiskit. Lab 6 provides a hands-on exercise on driving qubits in Rabi and Ramsey experiments to calibrate the qubit's π pulse drive strength and frequency. Lab 7 provides a hands-on exercise on qubit spectroscopy, showing how the qubit transitions 0-1 and 1-2 can be determined.
- Labs 8 and 9 support the material in lectures 22 – 27 with hands-on exercises in Qiskit. Lab 8 provides a hands-on demonstration of obtaining the qubit operators for simulating the ground state of the molecule LiH. Lab 9 provides a hands-on exercise on preparing trial states for a variational quantum eigensolver, and computing the expectation values of the various Pauli operators from measurement outcomes.

## Contributors

The lectures and labs were prepared and delivered by Abraham Asfaw, Elisa Bäumer, James Wootton, Zlatko Minev, Nicholas Bronn, Antonio Mezzacapo and Abhinav Kandala.

During the delivery of the lectures in 2020 as part of the Qiskit Global Summer School, Brian Ingmanson, Suzie Kirschner and Josie Kies hosted the lectures. Salvador de la Puente González and Luciano Bello built the grading system used in the labs. Josie Kies built the Discord server that supported the community during the Qiskit Global Summer School. Leron Gil and Yaiza Garcia built this website. Amira Abbas hosted the discussion on careers in quantum computing, which included Jay Gambetta, Steve Girvin, John Preskill, Marina Radulaski, Monika Schleier-Smith, Birgitta Whaley. Paul Searle edited the videos.

Special thanks to the 2020 class of IBM Quantum interns and the entire community of the Qiskit Global Summer School 2020 for contributing to the quality of these lectures and labs.

## Usage and Citation

If you use the lectures and labs in your course, you can gain access to the IBM Quantum Educators Program. Please cite the material as:

IBM Quantum team, Introduction to Quantum Computing and Quantum Hardware (2020). http://qiskit.org/learn/intro-qc-qh

## Contact

Please contact Abraham Asfaw at [email protected] with any questions or suggestions to improve this course.