QBook101 Contents

Fundamentals of Quantum Computers with Programming

Chapter 1: Introduction

1.1 Introduction to Programming in Python Applied to Math

How to Run the Notebooks  |  Math with Python  |  More on Matrices with Python  |  Errors and Exceptions

1.2 Introduction to Quantum Mechanics

Dirac Notation (bra-ket notation)  |  Hilbert Spaces  |  Postulates of Quantum Mechanics and its Application to Qubits

Chapter 2: Classical and Quantum Systems with Real Numbers

2.1 Basics of Classical Systems

One Bit  |  Coin Flipping  |  Coin Flipping Game  |  Probabilistic States  |  Probabilistic Operators  |  Two Probabilistic Bits
Exercises  |  Problem Set  |  Correlation (advance)  |  Operators on Multiple Bits (advance)

2.2 Photons

Quantum Coin Flipping

2.3 Basics of Quantum Systems

Hadamard Operator  |  One Qubit  |  Quantum State  |  Visualization of a (Real-Valued) Qubit  |  Superposition and Measurement  |  Exercises

2.4 Quantum Operators on a (real-valued) Qubit

Operations on the Unit Circle  |  Rotations  |  Reflections  |  Quantum Tomography  |  Exercises

2.5 Entanglement and Protocols

Two Qubits  |  Phase Kickback  |  Entanglement and Superdense Coding  |  Quantum Teleportation  |  Multiple Control Constructions  |  Exercises

Chapter 3: Quantum Systems with Complex Numbers

3.1 Introduction

Complex Numbers  |  Mathematical Notation  |  Quantum States  |  Briefly Unitary Operators

3.2 Bloch Sphere

Global and Relative Phases  |  Unique Representation  |  Bloch Sphere

3.3 Complex-valued Quantum Operators

Single-Qubit Quantum Gates  |  Rotations on Bloch Sphere  |  Multi-Qubit Gates

Introduction to Quantum Algorithms

Chapter 4: Quantum Algorithms 1

4.1 Classical Gates

Classical Gates

4.2 Conventional Quantum Algorithms in Qiskit I

Deutsch Algorithm  |  Deutsch-Jozsa Algorithm

4.3 Grover’s Search Algorithm in Qiskit

Inversion About the Mean  |  Grover’s Search: One Qubit Representation  |  Grover’s Search: Implementation

4.4 Solving Max-Cut problem using Grover’s Search in Cirq

Grover Algorithm Revisited  |  Max-Cut Problem and Bipartite Graphs  |  Adders and Numbers Checking  |  Grover algorithm for Max-Cut Problem

4.5 Conventional Quantum Algorithms in Qiskit II

Bernstein-Vazirani Algorithm  |  Simon’s Algorithm

Chapter 5: Quantum Algorithms 2

5.1 Quantum Fourier Transform

Discrete Fourier Transform  |  Quantum Fourier Transform  |  Phase Estimation

5.2 Shor’s Algorithm for Prime Factorization

Order Finding Algorithm  |  Shor’s Algorithm  |  Shor’s Algorithm in More Detail


A. Python Basics

Jupyter notebooks  |  Variables  |  Loops  |  Conditionals  |  Lists  |  Python Reference  |  Drawing Reference  |  Style Guide for Python Code – PEP8

B. Math Basics

Vectors  |  Dot Product  |  Matrices  |  Tensor Product  |  Exercises

C. Qiskit Basics

Qiskit Installation and Test  |  First Quantum Programs with Qiskit  |  Qiskit Reference

D. Cirq Basics

Cirq Installation and Test  |  Introduction to Cirq