Preface
IBM Quantum Experience® with Qiskit® together form a popular and easy-to-use quantum computing platform. They let you access and program actual IBM quantum computer hardware in the cloud, but you can also run your code on local and cloud-based simulators.
This book is designed to teach you how to implement quantum programming in a Python® environment, first at an elementary level, and later moving to more advanced examples. The locally installable Quantum Information Science Toolkit (Qiskit) software is built on Python and represents the most accessible tool available today for learning quantum computing.
Throughout the recipes of this book, we will introduce the Qiskit classes and methods step by step, starting with the very basic concepts such as installing and upgrading Qiskit, checking which version you are running, and so on. We then move on to understanding the building blocks that are required to create and run quantum programs and how to integrate these Qiskit components in your own hybrid quantum/classical programs to leverage Python's powerful programming features.
We'll explore, compare and contrast Noisy Intermediate-Scale Quantum (NISQ) computers and universal fault-tolerant quantum computers using simulators and actual hardware, looking closely at simulating noisy backends and how to mitigate for noise and errors on actual hardware, implementing the Shor code method for quantum error correction of a single qubit.
Finally, we'll take a look at quantum algorithms to see how they differ from classical algorithms. We will take a closer look at coding Grover's algorithm, and then use Qiskit Aqua to run versions of Grover's and Shor's algorithms to show how you can reuse already constructed algorithms directly in your Qiskit code. We do all of this as a sweeping tour of Qiskit, IBM's quantum information science toolkit, and its constituent layers: Terra, Aer, Ignis, and Aqua.
We will also use the online IBM Quantum Experience® user interface for drag-and-drop quantum computing. Everything we do in this book, and way more, can be coded in the cloud on IBM Quantum Experience®.
Each chapter contains code samples to explain the principles taught in each recipe.