The latest version of this notebook is available on https://github.com/QISKit/qiskit-tutorial.

For more information about how to use the IBM Q experience (QX), consult the tutorials, or check out the community.

Alex Breitweiser, Jerry Chow, Antonio Córcoles, Abigail Cross, Andrew Cross, Ismael Faro, Andreas Fuhrer, Jay M. Gambetta, Takashi Imamichi, Antonio Mezzacapo, Ramis Movassagh, Anna Phan, Rudy Raymond, Kristan Temme, Chris Wood, James Wootton.

In future releases, anyone who contributes to the tutorial can include their name here.

Welcome to QISKit! Interested in quantum computing and programming a real live quantum processor? QISKit is a simple set of tools for anyone to get started with quantum information science. We have put together these Jupyter notebooks to demonstrate how to use our tools and explore the quantum world.

Please refer to the Hello Q-World for light introduction of the quantum world.

The notebooks are organized into the following topics:

Here are some fun ways of using QISKit SDK to play with Quantum Computers.

- Quantum Emoticon - Superposition of emoticons.

In this first topic, we break down the tools in the QISKit SDK, and introduce all the different parts to make this useful. Our list of introductory notebooks:

- Getting started with QISKit SDK - how to use QISKit SDK.
- Understanding the different backends - how to get information about the connected backends.
- Compiling and running a quantum program - how to rewrite circuits to different backends.
- Running a quantum program on IBM DSX - how to run a quantum notebook directly using IBM Data Science Experience (i.e. without installing any dependencies locally!)
- Loading and Saving a Quantum Program [coming soon].
- Visualizing a quantum state - illustrates the different tools we have for visualizing a quantum state.
- Quantum gates and linear algebra - list all basic gates and their definitions

The next set of notebooks shows how you can explore some simple concepts of quantum information science.

- Superposition and Entanglement - how to make simple quantum states on one and two qubits, and demonstrates concepts such as quantum superpositions and entanglement.
- Single-qubit States: Amplitude and Phase - discusses more complicated single-qubit states.
- Single-qubit Quantum Random Access Coding - how superpositions of one-qubit quantum states can be used to encode two and three bits into one qubit, and how measurements can be used to decode any one bit with a success probability of more than half.
- Two-qubit Quantum Random Access Coding - how superposition and entanglement can be used to encode seven bits of information into two qubits, such that any one of seven bits can be recovered probabilistically.
- Entanglement Revisited - the CHSH inequality, and extensions for three qubits (Mermin).
- Quantum Teleportation - introduces quantum teleportation.
- Quantum Superdense Coding - introduces the concept of superdense coding.
- Quantum Fourier Transform - introduces the quantum Fourier transform.
- Vaidman Detection Test - demonstrates interaction free measurement through the Vaidman bomb detection test.
- Repetition Code - implements the repetition code, which uses multiple qubits to store a
*bit*of information. This is done in a way that detects and corrects any errors that the qubits suffer from, using the techniques of quantum error correction. - Bernstein-Vazirani Algorithm - a classic and fundamental example demonstrating the power of quantum computing

The third set of notebooks allows you to explore tools for verification of quantum systems with commonly used techniques such as tomography and randomized benchmarking.

- Relaxation and decoherence - a simple notebook showing how to measure coherence.

- Quantum state tomography - how to run quantum state tomography.
- Quantum process tomography - how to run quantum process tomography.

- Pauli randomized benchmarking [coming soon].
- Standard randomized benchmarking [coming soon].
- Purity randomized benchmarking [coming soon].
- Leakage randomized benchmarking [coming soon].
- Simultaneous randomized benchmarking [coming soon].

To fully grasp the possibilities, this set of notebooks shows how you can explore applications of short-depth quantum computers.

- Quantum optimization by variational quantum eigensolver method - discusses using a quantum computer to look at optimization problems.
- Quantum chemistry by variational quantum eigensolver method - discusses using a quantum computer to look at chemistry problems.

- Iterative phase estimation - shows how to run the iterative algorithm for phase estimation to estimate a parameter theta.

The notebooks below show how quantum algorithms can be used to play games and solve puzzles in different ways that cannot be done with their classical counterparts.

Quantum counterfeit coin finding algorithm: can you solve the counterfeit coin riddle? You are given a quantum computer and quantum beam balance, and your task is to find a counterfeit coin hidden in a set of coins. Armed with the knowledge of the Bernstein-Vazirani algorithm, you can easily find the counterfeit coin using the beam balance only once.

Battleships with Partial NOT Gates is a version of Battleships made to run on

*ibmqx3*. The unique properties of single qubit operations are used to implement the game mechanics, with the destruction of a ship corresponding to rotation from*0*to*1*.Quantum pseudo-telepathy for the Magic Square game demonstrates winning a game with shared entanglement that cannot be achieved with classical strategies.