Learn Quantum Computing with Python and Q#
A hands-on approach
Sarah C. Kaiser and Christopher E. Granade
  • MEAP began April 2019
  • Publication in Spring 2020 (estimated)
  • ISBN 9781617296130
  • 300 pages (estimated)
  • printed in black & white

A great introduction to the exciting new world of quantum computing.

William Wheeler
Learn Quantum Computing with Python and Q# demystifies quantum computing. Using Python and the new quantum programming language Q#, you’ll build your own quantum simulator and apply quantum programming techniques to real-world examples including cryptography and chemical analysis.
Table of Contents detailed table of contents

Part 1: Getting Started with Quantum

1 Introducing Quantum Computing

1.1 Who This Book is For

1.2 Who This Book is Not For

1.3 How this book is organized

1.4 Why does quantum computing matter?

1.5 What Can Quantum Computers Do?

1.6 What is a Quantum Computer?

1.6.1 How will we use quantum computers?

1.6.2 What can’t quantum computers do?

1.7 What is a Program?

1.7.1 What is a Quantum Program?

1.8 Summary

2 Qubits: The Building Blocks

2.1 Why do we need random numbers?

2.2 What are Classical Bits?

2.2.1 What Can We Do With Classical Bits?

2.2.2 Abstractions are our friend

2.3 Approaching Vectors

2.4 Seeing the Matrix for Ourselves

2.4.1 Party with inner products

2.5 Qubits: States and Operations

2.5.1 State of the qubit

2.5.2 The game of Operations

2.5.3 Measuring Qubits

2.5.4 Generalizing measurement: basis independence

2.5.5 Simulating qubits in code

2.6 Programming a Working QRNG

2.7 Summary

3 Sharing Secrets with Quantum Key Distribution

3.1 All’s Fair in Love and Encryption

3.1.1 Quantum NOT operations

3.1.2 Sharing classical bits with qubits

3.2 A tale of two bases

3.3 Quantum Key Distribution: BB84

3.4 Using our secret key to send secret messages

3.5 Summary

4 Nonlocal Games: Working With Multiple Qubits

5 Teleportation and Entanglement: Moving Quantum Data Around

Part 2: Programming Quantum Algorithms In Q#

6 Changing the odds: An introduction to Q#

6.1 Introducing the Quantum Development Kit

6.2 Functions and Operations in Q#

6.3 Passing Operations as Arguments

6.4 Playing Morgana’s Game in Q#

6.5 Summary

7 What is a Quantum Algorithm?

8 Quantum Sensing: Measuring At Very Small Scales

Part 3: Applied Quantum Computing

9 Computing Chemistry Problems With Quantum Computers

10 Searching Databases With Quantum Computers

11 Arithmetic With Quantum Computers


Appendix A: Installing Required Software

A.1 Installing a Python Environment

A.1.1 Installing Anaconda

A.1.2 Installing Python packages with Anaconda: QuTiP

A.2 Installing the Quantum Development Kit

A.2.1 Installing the .NET Core SDK

A.2.2 Installing the Project Templates

A.2.3 Installing the Visual Studio Code extension

A.2.4 Installing IQ# for Jupyter Notebook

A.2.5 Installing the qsharp Python package

About the Technology

Quantum computing is the next step in computing power and scalability, with the potential to impact everything from data science to information security. Using qubits, the fundamental unit of quantum information, quantum computers can solve problems beyond the scale of classical computing. Software packages like Microsoft's Quantum Development Kit and the Q# language are now emerging to give programmers a quick path to exploring quantum development for the first time.

About the book

Learn Quantum Computing with Python and Q# demystifies quantum computing. Using Microsoft’s Quantum Development Kit to abstract away the mathematical complexities, this book builds your understanding of quantum computers by actively developing for them. You’ll start by learning QC fundamentals by creating your own quantum simulator in Python. Soon you’ll move on to using the QDK and the new Q# language for writing and running algorithms very different to those found in classical computing. When you’re finished you’ll be able to apply quantum programming techniques to applications like quantum key distribution, and tackle real-world examples such as chemistry simulations and searching unsorted databases.

What's inside

  • The underlying mechanics of how quantum computers work
  • How to simulate qubits in Python
  • Q# and the Microsoft Quantum Developer Kit
  • How to apply quantum algorithms to real-world examples

About the reader

No academic experience of quantum computing is required. A reader will need basic programming skills and some experience of linear algebra, calculus and complex numbers.

About the authors

Christopher Granade completed his PhD in physics (quantum information) at the University of Waterloo’s Institute for Quantum Computing, and now works in the Quantum Architectures and Computation (QuArC) group at Microsoft. He works in developing the standard libraries for Q# and is an expert in the statistical characterization of quantum devices from classical data. Previously, Christopher helped Scott Aaronson prepare lectures into his recent book, Quantum Computing Since Democritus.

Sarah Kaiser completed her PhD in physics (quantum information) at the University of Waterloo’s Institute for Quantum Computing. She has spent much of her career developing new quantum hardware in the lab, from satellites to hacking quantum cryptography hardware. Communicating what is so exciting about quantum is her passion, and she loves finding new demos and tools to help enable the quantum community to grow. When not at the keyboard, she loves kayaking and writing books about engineering for kids.

Manning Early Access Program (MEAP) Read chapters as they are written, get the finished eBook as soon as it’s ready, and receive the pBook long before it's in bookstores.
MEAP combo $49.99 pBook + eBook + liveBook
MEAP eBook $39.99 pdf + ePub + kindle + liveBook
Prices displayed in rupees will be charged in USD when you check out.

placing your order...

Don't refresh or navigate away from the page.

FREE domestic shipping on three or more pBooks