Découvrez l’informatique quantique avec les katas quantiquesLearn quantum computing with the Quantum Katas

Les katas Quantum sont des didacticiels Open source à votre rythme et des exercices de programmation destinés à enseigner en même temps les éléments de l’informatique Quantum et de la Q# programmation.The Quantum Katas are open-source, self-paced tutorials and programming exercises aimed at teaching the elements of quantum computing and Q# programming at the same time.

Apprendre par la pratiqueLearning by doing

Les tutoriels et les exercices réunis dans ce projet mettent l’accent sur l’apprentissage par la pratique : ils proposent des tâches de programmation couvrant des sujets qui vont de très simples à très complexes.The tutorials and exercises collected in this project emphasize learning by doing: they offer programming tasks that cover certain topics which progress from very simple to quite challenging. Chaque tâche vous demande de renseigner du code, les premières peuvent ne nécessiter qu’une seule ligne alors que les dernières peuvent nécessiter un fragment de code assez grand.Each task asks you to fill in some code; the first tasks might require just one line, and the later ones might require a sizable fragment of code.

Plus important encore, les katas incluent des frameworks de test qui configurent, exécutent et valident les solutions des tâches.Most importantly, the katas include testing frameworks that set up, run and validate the solutions to the tasks. Ainsi, vous pouvez obtenir des commentaires immédiats sur votre solution et reconsidérer votre approche si elle est incorrecte.This allows you to get immediate feedback on your solution and to reconsider your approach if it is incorrect.

Vous pouvez utiliser les katas dans l’environnement de votre choix :You can use the katas for learning in your environment of choice:

  • Jupyter Notebooks en ligne dans l’environnement BinderJupyter Notebooks online within the Binder environment
  • Jupyter Notebooks s’exécutant sur votre ordinateur localJupyter Notebooks running on your local machine
  • Visual StudioVisual Studio
  • Visual Studio CodeVisual Studio Code

Qu’est-ce que je peux apprendre avec les katas quantiques ?What can I learn with the Quantum Katas?

Découvrez les concepts et les principes de base de l’informatique quantique, ou explorez en détail les algorithmes et les protocoles quantiques.Explore the basics and fundamentals of quantum computing or dive deeper into quantum algorithms and protocols. Nous vous recommandons de suivre ce parcours d’apprentissage en premier pour veiller à bien maîtriser les concepts fondamentaux de l’informatique quantique.We recommend you to follow this learning path in the beginning to make sure you have a solid grasp on the fundamental concepts of quantum computing. Bien sûr, vous pouvez ignorer les sujets que vous maîtrisez déjà, comme l’arithmétique complexe, et étudier les algorithmes dans l’ordre qui vous plaît.Of course, you can skip the topics you're comfortable with, such as complex arithmetic, and learn the algorithms in any order you want.

Présentation des concepts de l’informatique quantiqueIntroduction to quantum computing concepts

KataKata DescriptionDescription
Arithmétique complexeComplex arithmetic Ce tutoriel explique certaines notions mathématiques qui sont nécessaires à l’utilisation de l’informatique quantique, telles que les nombres imaginaires ou les nombres complexes.This tutorial explains some of the mathematical background required to work with quantum computing, such as imaginary and complex numbers.
Algèbre linéaireLinear algebra L’algèbre linéaire est utilisée pour représenter les opérations et les états quantiques en informatique quantique.Linear algebra is used to represent quantum states and operations in quantum computing. Ce tutoriel décrit les concepts de base, y compris les matrices et les vecteurs.This tutorial covers the basics, including matrices and vectors.
Concept du qubitThe concept of a qubit Découvrez les qubits, qui sont au cœur de l’informatique quantique.Learn about qubits - one of the core concepts of quantum computing.
Portes quantiques à qubit uniqueSingle-qubit quantum gates Ce tutoriel présente les portes quantiques à qubit unique, qui sont les éléments constituants des algorithmes quantiques et permettent de transformer les états des qubits quantiques de différentes façons.This tutorial introduces single-qubit quantum gates, which act as the building blocks of quantum algorithms and transform quantum qubit states in various ways.
Systèmes multiqubitsMulti-qubit systems Ce didacticiel présente les systèmes qubit, leur représentation en notation mathématique et dans Q# le code, ainsi que le concept d’enchevêtrement.This tutorial introduces multi-qubit systems, their representation in mathematical notation and in Q# code, and the concept of entanglement.
Portes quantiques multiqubitsMulti-qubit quantum gates Ce tutoriel suit la même logique que le tutoriel Portes quantiques à qubit unique, mais il se concentre sur l’application des portes quantiques aux systèmes multiqubits.This tutorial follows the Single-qubit quantum gates tutorial, and focuses on applying quantum gates to multi-qubit systems.

Fondamentaux de l’informatique quantiqueQuantum computing fundamentals

KataKata DescriptionDescription
Reconnaissance des portes quantiquesRecognizing quantum gates Une série d’exercices conçus pour vous familiariser avec les portes quantique de base dans Q# .A series of exercises designed to get you familiar with the basic quantum gates in Q#. Comprend des exercices pour les portes à qubit unique, les portes multiqubits, les portes adjacentes et les portes contrôlées, ainsi que des exercices expliquant comment utiliser les portes pour modifier l’état d’un qubit.Includes exercises for basic single-qubit and multi-qubit gates, adjoint and controlled gates, and how to use gates to modify the state of a qubit.
Création d’une superposition quantiqueCreating quantum superposition Utilisez ces exercices pour vous familiariser avec le concept de superposition et de programmation dans Q# .Use these exercises to get familiar with the concept of superposition and programming in Q#. Comprend des exercices pour les portes qubit et qubit de base, la superposition et le contrôle de Flow et la récursivité dans Q# .Includes exercises for basic single-qubit and multi-qubit gates, superposition, and flow control and recursion in Q#.
Distinction des états quantiques à l’aide de mesuresDistinguishing quantum states using measurements Faites ces exercices pendant votre apprentissage de la mesure quantique, ainsi que des états orthogonaux et non orthogonaux.Solve these exercises while learning about quantum measurement and orthogonal and non-orthogonal states.
Mesures communesJoint measurements Découvrez les mesures de parité communes et comment utiliser l’opération Measure pour distinguer les états quantiques.Learn about joint parity measurements and how to use the Measure operation to distinguish quantum states.

AlgorithmesAlgorithms

KataKata DescriptionDescription
Téléportation quantiqueQuantum teleportation Ce kata explore la téléportation quantique. Il s’agit d’un protocole qui permet de communiquer un état quantique en utilisant uniquement la communication classique et l’intrication quantique précédemment partagée.This kata explores quantum teleportation - a protocol which allows communicating a quantum state using only classical communication and previously shared quantum entanglement.
codage SuperdenseSuperdense coding Le codage super-dense est un protocole qui permet de transmettre deux bits d’informations classiques en envoyant un seul qubit à l’aide de l’intrication quantique précédemment partagée.Superdense coding is a protocol that allows transmission of two bits of classical information by sending just one qubit using previously shared quantum entanglement.
Algorithme de Deutsch-JozsaDeutsch–Jozsa algorithm Cet algorithme est connu pour être l’un des premiers exemples d’algorithmes quantiques qui sont exponentiellement plus rapides que n’importe quel algorithme déterministe classique.This algorithm is famous for being one of the first examples of a quantum algorithm that is exponentially faster than any deterministic classical algorithm.
Exploration des propriétés générales de l’algorithme de recherche de GroverExploring high-level properties of Grover's search algorithm Présentation de l’un des algorithmes les plus connus en informatique quantique.A high-level introduction to one of the most famous algorithms in quantum computing. Celui-ci résout le problème consistant à trouver une entrée dans une boîte noire (oracle) qui produit une sortie particulière.It solves the problem of finding an input to a black box (oracle) that produces a particular output.
Implémentation de l’algorithme de recherche de GroverImplementing Grover's search algorithm Ce kata explore plus en détail l’algorithme de recherche de Grover, et traite de l’écriture d’oracles, de l’exécution des étapes de l’algorithme, et enfin, de l’utilisation conjointe de tous ces éléments.This kata dives deeper into Grover's search algorithm, and covers writing oracles, performing steps of the algorithm, and finally putting it all together.
Résolution de problèmes réels à l’aide de l’algorithme de Grover : Problèmes SATSolving real problems using Grover's algorithm: SAT problems Série d’exercices qui utilisent l’algorithme de Grover pour résoudre des problèmes réalistes, en prenant comme exemple les problèmes SAT.A series of exercises that uses Grover's algorithm to solve realistic problems, using boolean satisfiability problems (SAT) as an example.
Résolution de problèmes réels à l’aide de l’algorithme de Grover : Problèmes de coloration des graphesSolving real problems using Grover's algorithm: Graph coloring problems Ce kata explore plus en détail l’algorithme de Grover, qui permet de résoudre les problèmes de satisfaction des contraintes, en prenant comme exemple un problème de coloration des graphes.This kata further explores Grover's algorithm, this time to solve constraint satisfaction problems, using a graph coloring problem as an example.

Protocoles et bibliothèquesProtocols and libraries

KataKata DescriptionDescription
Protocole BB84 pour la distribution de clés quantiqueBB84 protocol for quantum key distribution Découvrez comment implémenter un protocole de distribution de clés quantiques (BB84) à l’aide de qubits pour échanger des clés de chiffrement.Learn about and implement a quantum key distribution protocol, BB84, using qubits to exchange cryptographic keys.
Code de correction d’erreurs d’inversion de bitsBit-flip error correcting code Découvrez la correction des erreurs quantiques avec le plus simple des codes de correction des erreurs quantiques : le code d’inversion de bits à trois qubits.Explore quantum error correction with the simplest of the quantum error-correction (QEC) codes - the three-qubit bit-flip code.
Estimation des phasesPhase estimation Les algorithmes d’estimation de phase sont parmi les éléments les plus fondamentaux de l’informatique quantique.Phase estimation algorithms are some of the most fundamental building blocks of quantum computing. En savoir plus sur l’estimation de la phase avec ces exercices qui couvrent l’estimation de la phase Quantum et la préparation et l’exécution des routines d’estimation des phases dans Q# .Learn about phase estimation with these exercises that cover quantum phase estimation and how to prepare and run phase estimation routines in Q#.
Arithmétique quantique : Création d’additionneurs séquentielsQuantum arithmetic: Building ripple-carry adders Série d’exercices avancés qui explorent les additions séquentielles (ripple-carry) sur un ordinateur quantique.An in-depth series of exercises that explores ripple carry addition on a quantum computer. Créez un additionneur quantique sur place, développez-le avec un autre algorithme, puis générez un soustracteur quantique sur place.Build an in-place quantum adder, expand on it with a different algorithm, and finally, build an in-place quantum subtractor.

Jeux d’intricationEntanglement games

KataKata DescriptionDescription
Jeu CHSHCHSH game Explorez l’intrication quantique avec une implémentation du jeu CHSH.Explore quantum entanglement with an implementation of the CHSH game. Ce jeu non local montre comment l’intrication quantique peut être utilisée pour augmenter les chances de gagner, au-delà de ce qui serait possible avec une stratégie entièrement classique.This nonlocal game shows how quantum entanglement can be used to increase the players' chance of winning beyond what would be possible with a purely classical strategy.
Jeu GHZGHZ game Le jeu GHZ est un autre jeu non local, mais il implique trois joueurs.The GHZ game is another nonlocal game, but involves three players.
Jeu du carré magique de Peres et MerminMermin-Peres magic square game Série d’exercices qui explorent la pseudo-télépathie quantique pour résoudre un jeu de carré magique.A series of exercises that explores quantum pseudo-telepathy to solve a magic square game.

RessourcesResources

Voir la série complète des katas quantiquesSee the full series of Quantum Katas

Exécuter les katas en ligneRun the katas online