liveBook · Manning

What you will learn in Quantum Programming in Depth

Solving problems with Q# and Qiskit

by Mariia Mykhailova

Chapter by chapter

Chapter 1: Quantum computing: The hype and the promise

1.1 Your second book on quantum computing: The prerequisites · 1.2 The hype and the promise: What kinds of problems can quantum computing solve? · 1.3 A peek inside the fridge: How does quantum computing work? · 1.3.1 Algorithms · 1.3.2 Hardware · 1.3.3 Software · 1.3.4 Quantum application software development workflow · 1.4 Why learn quantum computing? · 1.5 Learning quantum computing through quantum programming · 1.6 Further reading · 1.7 Section 1.2 · 1.8 Section 1.3 · 1.9 Section 1.5 · 1.10 Summary

What you learn in chapter 1 →

Chapter 2: Preparing quantum states

2.1 Preparing a single-qubit state · 2.1.1 Math · 2.1.2 Qiskit · 2.1.3 Q# · 2.2 What does your solution do? · 2.2.1 Qiskit · 2.2.2 Q# · 2.3 Preparing a two-qubit state · 2.3.1 Refresher: Controlled gates in Dirac notation · 2.3.2 Math · 2.3.3 Qiskit · 2.3.4 Q# · 2.4 Testing your solution · 2.4.1 Qiskit · 2.4.2 Q# · 2.5 Preparing a multiqubit state · 2.5.1 Math · 2.5.2 Qiskit · 2.5.3 Q# · 2.6 Further reading · 2.7 Going beyond · 2.8 Summary

What you learn in chapter 2 →

Chapter 3: Implementing quantum operations

3.1 Implementing a single-qubit gate · 3.1.1 Math · 3.1.2 Qiskit · 3.1.3 Q# · 3.2 What does your solution do? · 3.2.1 Qiskit · 3.2.2 Q# · 3.3 Testing your solution · 3.3.1 Qiskit · 3.3.2 Q# · 3.4 Matrix decomposition · 3.5 Implementing a two-qubit block-diagonal unitary with 2 × 2 blocks · 3.5.1 Refresher: Controlled gates in matrix notation · 3.5.2 Math · 3.5.3 Qiskit · 3.5.4 Q# · 3.6 Implementing a two-qubit CS unitary · 3.6.1 Math · 3.6.2 Qiskit · 3.6.3 Q# · 3.7 Implementing a two-qubit block-antidiagonal unitary with 2 × 2 blocks · 3.7.1 Math · 3.7.2 Qiskit · 3.7.3 Q# · 3.8 Implementing a two-block block-diagonal unitary of arbitrary size · 3.8.1 Math · 3.8.2 Qiskit · 3.8.3 Q# · 3.9 Implementing a CS unitary of arbitrary size · 3.9.1 Math · 3.9.2 Qiskit · 3.9.3 Q# · 3.10 Implementing an arbitrary unitary of arbitrary size · 3.10.1 Math · 3.10.2 Qiskit · 3.11 Further reading · 3.12 Going beyond · 3.13 Summary

What you learn in chapter 3 →

Chapter 4: Analyzing quantum states

4.1 Reading out information from a quantum system · 4.1.1 Math · 4.1.2 Qiskit · 4.1.3 Q# · 4.2 Distinguishing superposition states consisting of distinct basis states · 4.2.1 Math · 4.2.2 Qiskit · 4.2.3 Q# · 4.3 Distinguishing superposition states consisting of overlapping basis states · 4.3.1 Math · 4.3.2 Qiskit · 4.3.3 Q# · 4.4 Distinguishing nonorthogonal states with minimum error · 4.4.1 Math · 4.4.2 Qiskit · 4.4.3 Q# · 4.5 Reconstructing the state from multiple copies · 4.5.1 Math · 4.5.2 Qiskit · 4.5.3 Q# · 4.6 Joint/parity measurements: Extracting partial information from a state · 4.6.1 Math · 4.6.2 Qiskit · 4.6.3 Q# · 4.7 Further reading · 4.8 Going beyond · 4.9 Summary

What you learn in chapter 4 →

Chapter 5: Analyzing quantum operations

5.1 Distinguishing unitaries · 5.1.1 Math · 5.1.2 Qiskit · 5.1.3 Q# · 5.2 Reconstructing the unitary · 5.2.1 Math · 5.2.2 Qiskit · 5.2.3 Q# · 5.3 Finding eigenvalue of the given eigenvector: The phase estimation problem · 5.3.1 Phase kickback · 5.3.2 Iterative phase estimation · 5.3.3 Adaptive phase estimation · 5.3.4 Quantum Fourier transform · 5.3.5 Quantum phase estimation · 5.3.6 Qiskit · 5.3.7 Q# · 5.4 Going beyond · 5.5 Summary

What you learn in chapter 5 →

Chapter 6: Evaluating classical functions on a quantum computer

6.1 Reversible computing: Mapping classical computation onto quantum · 6.2 Evaluating single-bit functions · 6.2.1 Math · 6.2.2 Qiskit · 6.2.3 Q# · 6.3 Testing reversible computations · 6.3.1 Qiskit · 6.3.2 Q# · 6.4 Evaluating Boolean operations · 6.4.1 Math · 6.4.2 Qiskit · 6.4.3 Q# · 6.5 Evaluating Boolean expressions · 6.5.1 Math · 6.5.2 Qiskit · 6.5.3 Q# · 6.6 Going beyond · 6.7 Summary

What you learn in chapter 6 →

Chapter 7: Grover’s search algorithm

7.1 Quantum oracles · 7.1.1 Math · 7.1.2 Qiskit · 7.1.3 Q# · 7.2 Grover’s search algorithm · 7.2.1 Definitions · 7.2.2 Math · 7.2.3 Qiskit · 7.2.4 Q# · 7.3 Going beyond · 7.4 Summary

What you learn in chapter 7 →

Chapter 8: Solving N queens puzzle using Grover’s algorithm

8.1 Naive solution · 8.2 Encoding constraints in the search space · 8.2.1 Math · 8.2.2 Qiskit · 8.2.3 Q# · 8.3 Changing problem encoding · 8.3.1 Math · 8.3.2 Qiskit · 8.3.3 Q# · 8.4 Going beyond · 8.5 Summary

What you learn in chapter 8 →

Chapter 9: Evaluating the performance of quantum algorithms

9.1 Choosing the classical solution for comparison · 9.2 Performance comparisons: Asymptotic vs. practical · 9.3 Estimating performance of a quantum solution · 9.4 Azure Quantum Resource Estimator: An overview · 9.5 Solutions’ performance for the N queens puzzle · 9.6 Further reading · 9.7 Going beyond · 9.8 Summary

What you learn in chapter 9 →

Concepts explained in this book

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.