Welcome Qiskitters to the Quantum Information Science Kit (Qiskit for short)!

To get you started, we have put together a set of tutorials that can be downloaded by clicking here!.

Please see INSTALLATION for setup and installation instructions.

We have organized the tutorials into three sections:

Since quantum computing is new to most users, we want to find the best *Hello Quantum World* programs and welcome submissions here.

- Your first quantum program - Your first quantum program

We've collected a core reference set of notebooks in this section. These notebooks demonstrate how to use Qiskit and explore quantum information science, acting as a reference guide for Qiskit. We will be keeping them up to date with the latest Qiskit version, currently 0.5.

They are organized into the following topics:

In this first topic, we introduce you to the basic features of Qiskit. More tutorials covering Qiskit features can be found here, and developer documentation can be found here.

- Getting started - how to use Qiskit.
- Using different gates - list of gates in Qiskit and their linear algebra.
- Visualisation of quantum data and states - illustrates the different tools we have for visualizing a quantum state.
- Working with different backends - Compiling and running a quantum program on different backends.

The next set of notebooks shows how you can explore some simple concepts of quantum information science. More tutorials on other quantum information science concepts can be found here

- Superposition and entanglement - this tutorial shows you how to make simple quantum states on one and two qubits, and demonstrates concepts such as quantum superpositions and entanglement.
- Entanglement revisited - this tutorial delves deeper into quantum entanglement, looking at the CHSH inequality and Mermin's test.
- Quantum teleportation and superdense coding - this tutorial introduces two simple quantum communication protocols, based on quantum entanglement.

This set of notebooks describes a few of the techniques used to characterize, verify, and validate quantum systems.

- Relaxation and decoherence - how to measure coherence times on the real quantum hardware
- Quantum state tomography - how to identify a quantum state using state tomography, in which the state is prepared repeatedly and measured in different bases
- Quantum process tomography - using quantum process tomography to reconstruct the behavior of a quantum process and measure its fidelity, i.e., how closely it matches the ideal version
- Randomized benchmarking

Universal fault tolerant quantum computers are still many years away; notebooks in this section describe a few of the things you can do with the approximate quantum computers we have today. Qiskit Aqua provides a library of cross-domain quantum algorithms upon which domain-specific applications for near term quantum computing can be built.

- Chemistry - using variational quantum eigensolver to experiment with molecular ground-state energy on a quantum computer
- Optimization - using variational quantum eigensolver to experiment with optimization problems on a quantum computer
- Artificial Intelligence - using quantum-enhanced support vector machine to experiment with classification problems on a quantum computer
- Numerous other tutorials can be found in Qiskit Aqua Tutorials

This section contains notebooks describing the canonical quantum algorithms. Other quantum algorithms can be found here.

- Deutschâ€“Jozsa algorithm - a deterministic quantum algorithm that outperforms the corresponding classical algorithm.
- Bernstein-Vazirani algorithm - a quantum algorithm that outperforms classical probabilistic algorithms.
- Phase estimation - a quantum algorithm to extract eigenvalues of unknown unitary operator.
- Simon's algorithm - a quantum algorithm that is proven exponentially efficient that its classical counterpart
- Grover search - using Grover search to solve a combinatorial problem
- Shor's algorithm - a quantum algorithm for integer factorisation.

Here we have a few examples of quantum games. Enjoy!

- Battleships - a version of Battleships made to run on ibmqx2. 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.
- Which is the counterfeit coin? - 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.
- Quantum tic tac toe - In classical tic tac toe, players take turns making moves. In quantum tic tac toe, players take turns making superpositions of moves. The game branches out into several states that are measured at the end. A winning strategy exists for this game, see if you can work it out.

This is where the rest of the tutorials are. They are not guaranteed to work with the latest version of Qiskit. They are organised into various topics:

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.