# What this book covers

This cookbook is a problem-solution- and exploration-based approach to understanding the nuances of programming quantum computers with the help of IBM Quantum Experience®, Qiskit®, and Python.

*Chapter 1*, *Preparing Your Environment,* walks you through how to install Qiskit® as a Python 3.5 extension on your local workstation. You'll also register with IBM Quantum Experience®, get your API key, and grab the sample code.

*Chapter 2*, *Quantum Computing and Qubits with Python,* shows how to use Python to code simple scripts to walk you through the concept of bits and qubits and how quantum gates work without Qiskit® or IBM Quantum Experience®.

*Chapter 3*, *IBM Quantum Experience® – Quantum Drag and Drop,* looks at IBM Quantum Experience®, IBM Quantum's online, cloud-based drag-and-drop tool for programming quantum computers. Here you will code a simple program and learn how to move between Qiskit® and IBM Quantum Experience®.

*Chapter 4*, *Starting at the Ground Level with Terra,* explores a set of basic quantum programs, or circuits, to examine fundamental concepts such as probabilistic computing, superposition, entanglement, and more. We will also run our first programs on an actual physical IBM quantum computer.

*Chapter 5*, *Touring the IBM Quantum® Hardware with Qiskit®,* looks at the IBM Quantum® backends, exploring various physical aspects that impact the results of your quantum programs.

*Chapter 6*, *Understanding the Qiskit® Gate Library,* gives an overview of the quantum gates that are offered out of the box with Qiskit® to see what they do to your qubits. We take a look at the universal quantum gates from which all other quantum gates are built, and also expand from one-qubit gates, to the two-, three-, and more qubit gates needed for more advanced quantum circuits.

*Chapter 7*, *Simulating Quantum Computers with Aer,* helps you run your circuits on a collection of simulators that you can use locally or in the cloud. You can even set your simulators up to mimic the behavior of an IBM Quantum® backend, to test your circuits under realistic conditions on your local machine.

*Chapter 8*, *Cleaning Up Your Quantum Act with Ignis,* explains how to clean up your measurement results by understanding how our qubits behave, and looks at how we can correct for noise by using noise mitigation circuits such as the Shor code.

*Chapter 9*, *Grover's Search Algorithm,* builds Grover's search algorithm, a quadratic speedup of classical search algorithms. We will use a unique quantum tool, quantum phase kickback. We build several different versions of the algorithm to run on both simulators and IBM Quantum® backends.

*Chapter 10*, *Getting to Know Algorithms with Aqua,* uses premade Qiskit Aqua versions of two of the most well-known quantum algorithms: Grover's search algorithm and Shor's factoring algorithm. We also take a quick tour of the Qiskit Aqua algorithm library.