Mariia Mykhailova

Mariia Mykhailova is a senior software engineer at Microsoft Quantum, where she focuses on education and developer outreach. Mariia is the author and maintainer of the Quantum Katas project, an open-source collection of hands-on tutorials and exercises for learning quantum computing using the Microsoft Quantum Development Kit. She is the lead organizer of the Q# Coding Contests series, and is also a part-time lecturer at Northeastern University Seattle, teaching the class "Introduction to Quantum Computing". She hosted quantum computing workshops and presented her work in quantum computing education at multiple events and conferences.

books & projects by Mariia Mykhailova

Quantum Programming in Depth

  • June 2025
  • ISBN 9781633436909
  • 288 pages
  • printed in black & white

Quantum Programming in Depth shows you how to solve quantum computing problems in a programmer-friendly way. The book’s hands-on project-based approach will hone your quantum skills using realistic problems and progressively harder programming challenges. As you read, you’ll design quantum algorithms and explore their performance on future fault-tolerant quantum computers.

Quantum Computing with Microsoft QDK

5 weeks · 7-10 hours per week average · BEGINNER

Quantum computing has the potential to usher in a new age of computing, with impacts on areas from data science to cryptography. In this series of quick liveProjects, you’ll explore the full potential of quantum for cryptography, data transmission, data reconstruction, and more. In each standalone project, you’ll work with Q# and the powerful Microsoft Quantum SDK to experiment and prepare for the oncoming quantum revolution.

Grover's Search to Solve a Cryptarithm

1 week · 6-8 hours per week · BEGINNER

In this liveProject, you’ll use quantum computing to solve a cryptarithm—a mathematical equation in which digits are replaced by alphabet letters. Your challenges will include figuring out how to represent the problem in a way suitable for Grover’s search algorithm, then implementing the algorithm and writing unit tests to validate your solution.

Grover's Search to Recover an ISBN

1 week · 8-12 hours per week · BEGINNER

In this liveProject, you’ll use the powerful Quantum SDK from Microsoft to develop a simple quantum application using Grover's search algorithm. This algorithm will be able to generate missing data, such as by taking a query in the form of an ISBN with one or several missing digits, and recovering those digits to return the information about the book with this ISBN. You’ll start simple by implementing the algorithm to recover only a single missing digit, then expand to recovering several missing digits. Finally, you’ll set up a classical query of an online ISBN database to find relevant book information.

Preparing a Quantum State

1 week · 6-8 hours per week · BEGINNER

In this liveProject, you’ll step into the shoes of a quantum software engineer and develop a library for state preparation routines. Preparing quantum systems in arbitrary superposition states is a vital step of quantum algorithms. Luckily, the Microsoft Quantum Development Kit libraries offer multiple state preparation routines. You’ll implement a single-qubit state preparation routine and a recursive multi-qubit state preparation routine, before implementing the complete multi-qubit state preparation routine. Finally, you’ll write unit tests for your implementation.

Teleportation and Superdense Coding

1 week · 4-6 hours per week · BEGINNER

In this liveProject, you’ll explore quantum mechanical phenomena for information transmission. You’ll go hands on with two quantum communication protocols—quantum teleportation and superdense coding. You’ll implement each protocol using Q# and simulate it running, before visualizing the intermediary states of the quantum system.

BB84 Key Distribution Protocol

1 week · 4-6 hours per week · BEGINNER

In this liveProject, you’ll take on the role of a cryptography expert evaluating quantum computing for the purpose of key distribution. Key distribution generates a random secret key which is then shared between only two parties, and is a crucial part of many cryptographic algorithms. You’ll work to implement the common BB84 key distribution, simulate using the BB84 protocol to generate a shared key, and then visualize the steps of the BB84 protocol.