Resources about Azure Quantum
Before you start digging into Azure Quantum, you should have a basic understanding of quantum computing concepts. If you’re familiar with concepts like qubits, superposition, quantum gates, measurement, …, you’re set to start with Azure Quantum. On this page, I’d like to summarize most important resources for preparing yourself for an exciting journey with practical quantum computing with Azure Quantum.
News about Azure Quantum
Azure Quantum Documentation
Samples
Learning Modules on MS Learn
Azure Quantum Katas
Books
News about Azure Quantum
- Microsoft Azure Quantum Blog
- Q# Blog - Quantum Development
- Quantum Computing on the Microsoft Research Blog
Azure Quantum Documentation
The Azure Quantum Documentation is the one-stop-shop for information and guidance around Azure Quantum, QIO, QDK, etc. Here’s the list of my personal top pages in the documentation:
- What is Azure Quantum?
- Quantum Computing
- Quickstart: Submit a quantum circuit with Q#
- Quickstart: Submit a quantum circuit with Qiskit
- Quickstart: Submit a quantum circuit with Cirq
- The Q# programming language user guide
- Ways to run a Q# program
- Testing and debugging Q# programs
- The Q# language guide
- Quantum simulators documentation
- The Q# library documentation
- Optimization
Samples
- Microsoft Quantum Development Kit Samples
- Q# Code Samples
- Azure Quantum optimization service samples
Learning Modules on MS Learn
MS Learn offers an 8-part-learning path called Quantum computing foundations that contains follwing learning modules:
- Get started with Azure Quantum
- Create your first Q# program by using the Quantum Development Kit
- Explore the key concepts of quantum computing by using Q#
- Solve graph coloring problems by using Grover’s search
- Use the Q# libraries
- Run algorithms on quantum hardware by using Azure Quantum
- Solve optimization problems by using quantum-inspired optimization
- Solve a job shop scheduling optimization problem by using Azure Quantum
Azure Quantum Katas
The Quantum Katas are an awesome collection of self-paced tutorials and programming exercises to help you learn quantum computing and Q# programming. They combine explanation and hands-on exercises. The Katas are organized in topic groups:
Quantum Computing Concepts: Qubits and Gates
- Complex arithmetic (tutorial). Learn about complex numbers and the mathematics required to work with quantum computing.
- Linear algebra (tutorial). Learn about vectors and matrices used to represent quantum states and quantum operations.
- The qubit (tutorial). Learn what a qubit is.
- Single-qubit gates (tutorial). Learn what a quantum gate is and about the most common single-qubit gates.
- Basic quantum computing gates. Learn to apply the most common gates used in quantum computing.
- Multi-qubit systems (tutorial). Learn to represent multi-qubit systems.
- Multi-qubit gates (tutorial). Learn about the most common multi-qubit gates.
- Superposition. Learn to prepare superposition states.
Quantum Computing Concepts: Measurements
- Single-qubit measurements (tutorial). Learn what quantum measurement is and how to use it for single-qubit systems.
- Multi-qubit measurements (tutorial). Learn to use measurements for multi-qubit systems.
- Measurements. Learn to distinguish quantum states using measurements.
- Distinguish unitaries. Learn to distinguish unitaries by designing and performing experiments with them.
- Joint measurements. Learn about using joint (parity) measurements to distinguish quantum states and to perform state transformations.
Q# and Microsoft Quantum Development Kit Tools
- Visualization tools (tutorial). Learn to use the various tools for visualizing elements of Q# programs.
Simple Algorithms
- Random number generation (tutorial). Learn to generate random numbers using the principles of quantum computing.
- Teleportation. Implement standard teleportation protocol and its variations.
- Superdense coding. Implement the superdense coding protocol.
Quantum Oracles and Simple Oracle Algorithms
- Quantum oracles (tutorial). Learn to implement classical functions as equivalent quantum oracles.
- Exploring Deutsch and Deutsch–Jozsa algorithms (tutorial). Learn to implement classical functions and equivalent quantum oracles, and compare the quantum solution to the Deutsch–Jozsa problem to a classical one.
- Deutsch–Jozsa algorithm. Learn about quantum oracles which implement classical functions, and implement Bernstein–Vazirani and Deutsch–Jozsa algorithms.
- Simon’s algorithm. Learn about Simon’s algorithm.
Grover’s search algorithm
- Implementing Grover’s algorithm. Learn about Grover’s search algorithm and how to write quantum oracles to use with it.
- Exploring Grover’s search algorithm (tutorial). Learn more about Grover’s search algorithm, picking up where the Grover’s algorithm kata left off.
- Solving SAT problems using Grover’s algorithm. Explore Grover’s search algorithm, using SAT problems as an example. Learn to implement quantum oracles based on the problem description instead of a hard-coded answer. Use Grover’s algorithm to solve problems with an unknown number of solutions.
- Solving graph coloring problems using Grover’s algorithm. Continue the exploration of Grover’s search algorithm, using graph coloring problems as an example.
- Solving bounded knapsack problem using Grover’s algorithm. Learn how solve the variants of knapsack problem with Grover’s search.
Tools and libraries/Building up to Shor’s algorithm
- Quantum Fourier transform. Learn to implement quantum Fourier transform and to use it to perform simple state transformations.
- Phase estimation. Learn about phase estimation algorithms.
Entanglement games
Reversible computing
- Truth tables. Learn to represent and manipulate Boolean functions as truth tables and to implement them as quantum operations.
- Ripple-carry adder. Build a ripple-carry adder on a quantum computer.
Miscellaneous
- BB84 protocol. Implement the BB84 key distribution algorithm.
- Bit-flip error correcting code. Learn about a 3-qubit error correcting code for protecting against bit-flip errors.
- Unitary patterns. Learn to implement unitaries with matrices that follow certain patterns of zero and non-zero elements.
- Quantum classification (tutorial). Learn about circuit-centric classifiers and the quantum machine learning library included in the QDK.
Quantum Developer Workshops
- Quantum Developer Workshop 1 (July 16, 2020)
- Quantum Developer Workshop 2 (February 2, 2021)
- Quantum Developer Workshop 3 (June 30, 2021)
Books
Learn Quantum Computing with Python and Q#: A hands-on approach.
Authors: Sarah C. Kaiser, Cassandra Granade
Publisher: Manning (June 22, 2021)
ISBN-13: 978-1617296130, ISBN-10: 1617296139
Q# Pocket Guide
Author: Mariia Mykhailova
Publisher: O’Reilly Media; 1st edition (August 16, 2022)
ISBN-13: 978-1098108861, ISBN-10: 1098108868