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 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.
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.
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.
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.
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.
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.