Quantum Katas and Tutorials as Jupyter Notebooks

To run the katas and tutorials online, make sure you're viewing this file on Binder (if not, use this link).

To run the katas and tutorials locally, follow these installation instructions.

While running the Katas online is the easiest option to get started, if you want to save your progress and enjoy better performance, we recommend you to choose the local option.

Learning path

Here is the learning path we suggest you to follow if you are starting to learn quantum computing and quantum programming. Once you're comfortable with the basics, you're welcome to jump ahead to the topics that pique your interest!

Quantum Computing Concepts: Qubits and Gates

Quantum Computing Concepts: Measurements

Q# and Microsoft Quantum Development Kit Tools

Simple Algorithms

Quantum Oracles and Simple Oracle Algorithms

Grover's search algorithm

Tools and libraries/Building up to Shor's algorithm

Entanglement games

Reversible computing

  • Truth tables. Learn to represent and manipulate Boolean functions as truth tables and to implement them as quantum operations.
  • Ripple-carry adder. Build a ripple-carry adder on a quantum computer.


For a full list of Quantum Katas available as Q# projects instead of Jupyter Notebooks, see the QuantumKatas repository.

Getting Started with Kata Notebooks and Tutorials

Each kata notebook presents the tasks of the respective kata (Q# project) in Jupyter Notebook format. This makes getting started with the katas a lot easier - you don't need to install anything locally to try them out!

Notebook tutorials are designed with Notebook format in mind - in addition to programming exercises they include a lot of theoretical explanations and code samples for you to learn from.

Make sure you're viewing this file when running Jupyter notebooks on your machine or on Binder (for running on Binder, use this link). From here you can navigate to the individual kata or tutorial notebooks using the links above.

  • Each tutorial or kata notebook contains a sequence of tasks on the topic, progressing from trivial to challenging.
  • Each task is defined in a separate code cell, preceded by the description of the task in a Markdown cell. Your goal is to fill in the blanks in the code (marked with // ... comments) with some Q# code that solves the task.
  • To verify your solution, run the code cell using Ctrl + Enter (or ⌘ + Enter on macOS). This will invoke the test covering the task and let you know whether it passes or fails, and if it fails, what the error is.
  • You can find pointers to reference materials you might need to solve the tasks, both on quantum computing and on Q#, either in the beginning of the tutorial or the kata or next to the task to which they are relevant.
  • You can find reference solutions in ReferenceImplementation.qs files of the corresponding katas or tutorials.
  • A lot of katas and tutorials have workbooks - detailed explanations of task solutions. Feel free to look them up if you're stuck!