# Fundamentals of quantum algorithms

This is the second unit of the *Understanding quantum information and computation* series, which explains quantum information and computation at a detailed mathematical level.

This unit, "Fundamentals of quantum algorithms," explores computational advantages of quantum information, including what we can do with quantum computers and their advantages over classical computers. The unit begins with quantum query algorithms, which offer simple proof of concept demonstrations for quantum algorithms, and then moves on to quantum algorithms for problems including integer factorization and unstructured search.

## Lessons

- Introduction
- The query model of computation
- Deutsch's algorithm
- The Deutsch-Jozsa algorithm
- Simon's algorithm

- Introduction
- Two examples: factoring and GCDs
- Measuring computational cost
- Classical computations on quantum computers

- Introduction
- Phase estimation problem
- Phase estimation procedure
- Shor's algorithm

- Introduction
- Unstructured search
- Grover's algorithm
- Analysis
- Choosing the number of iterations
- Qiskit implementation
- Concluding remarks

## Helpful materials

Alongside this course, you may find these resources to be helpful or interesting:

Michael Nielsen and Isaac Chuang. Quantum Computation and Quantum Information.

Phillip Kaye, Raymond Laflamme, and Michele Mosca. An Introduction to Quantum Computing.

Richard Cleve. Quantum Information Processing — Quantum Algorithms I.

Richard Cleve. Quantum Information Processing — Quantum Algorithms II.

Richard Cleve. Quantum Information Processing — Quantum Algorithms III.