Instant Help for Q# Developers
Mariia Mykhailova

#Quantum_Computing
#Quantum
#Quantum_Development
#algorithms
#Microsoft
#QDK
Ready to build quantum computing applications using Q# and the Microsoft Quantum Development Kit? This is the book for you. Q# is a domain-specific language for expressing quantum algorithms that combines familiar "classical" language constructs with quantum-specific ones. Ideal for any developer familiar with (or willing to learn) the basics of quantum computing and looking to get started with quantum programming, this pocket guide quickly helps you find syntax and usage information for unfamiliar aspects of Q#.
You'll explore the quantum software development lifecycle from implementing the program to running it on quantum simulators to testing and debugging it. You'll learn to use the tools provided by Microsoft's Quantum Development Kit for each step of the process.
You'll explore:
Table of Contents
Part I. Q# Programming Language
Chapter 1. Program Structure
Chapter 2. Data Types
Chapter 3. Expressions
Chapter 4. Statements
Chapter 5. Operations and Funct ions
Part II. Using the Microsoft Quantum Development Kit
Chapter 6. Running Q# Programs
Chapter 7. Microsoft Quantum Development Kit Libraries
Chapter 8. Testing and Debugging
Quantum computing is a fascinating computing paradigm, and reasoning about it requires different languages than for classical computing. One of the ways to think about quantum computing is quantum programming, which takes familiar software engineering tools and adapts them to express quantum concepts and implement and evaluate algorithms. Quantum programming is a much younger discipline than either quantum computing or classical programming, yet multiple quantum programming languages and software toolkits have already emerged to help software engineers and researchers.
Q# is a domain-specific quantum programming language created to express quantum algorithms. It is part of the Microsoft Quantum Development Kit (QDK), a set of tools to support quantum software engineering. Both Q# and the QDK are designed for working with high-level algorithms rather than low-level ones (“circuits”) and include a variety of language features, libraries, and developer tools to support that goal.
This book offers all the information you’ll need to start developing and running Q# applications, including complete code examples and discussions of the tools available for every step of the quantum software development cycle.
Why I Wrote This Book
I joined Microsoft Quantum in early 2017, just in time to witness the inception of the programming language that was later named Q#, and to participate in the development of the first release of the QDK. Over time I’ve gravitated toward education and outreach work, helping people learn quantum computing and quantum programming using our tools—and making it interesting.
This book is the summary of my experience with Q#, both using it myself and helping others figure out its more useful—or more obscure!—language features. It is by no means an exhaustive treatise, but I hope that this book will lead you to appreciate Q# and use it more effectively, and inspire you to dive deeper in its ecosystem.
Who This Book Is For
If you want to build quantum computing applications using Q# and the QDK, this book is for you! The book combines a thorough coverage of the basics with detailed code examples and deep dives into quantum-specific language features, so you’ll find something new and interesting whether you’re completely new to Q# or you have experience with it already.
However, this book is not an introduction to quantum computing! Throughout the book I assume that you’re already familiar with the basic concepts of quantum computing, such as qubits, quantum gates, and measurements.
If you’re looking to get started with both quantum computing and quantum programming at the same time, I recommend you combine this book with any resource that covers the basic concepts of quantum computing, such as the Quantum Katas, a collection of tutorials and programming exercises on quantum computing. This way you’ll be able to learn new topics and immediately put them to good use solving problems and implementing the solutions. After all, the best way to learn is by doing!
"A no-nonsense, comprehensive guide for physicists and programmers to get started with Q#. A succinct, yet thorough approach that covers both mastering the basics and accessing libraries for more specialist applications."- Nicholas Harrigan, co-author of Programming Quantum Computers by O'Reilly Media
"With this pocket guide, Mariia brings to life her own experience in quantum development with Q#, weaving her expert perspectives and insights into simple, easy-to-use definitions, examples, and debugging tools. Mariia showcases the nuances of quantum programming, the unique features of Q# that enable more extensive algorithm development, and how to use advanced features of the language to bring your program to "quantum" life." - Dr. Krysta M. Svore, Distinguished Engineer, VP Quantum Software, Microsoft
"This helpful and practical guide will increase creativity and productivity in your day-to-day quantum computing." - Mathias Soeken, Quantum Software Engineer, Microsoft
Mariia Mykhailova is a principal software engineer in the Quantum Systems group at Microsoft. She joined the team in 2017, just in time to participate in the development of the first version of the Microsoft Quantum Development Kit. These days she works in education and outreach, developing new learning tools for quantum computing and quantum programming, such as the Quantum Katas, and coming up with ways to make learning engaging and exciting. She is also a part-time lecturer at Northeastern University Seattle, where she teaches Introduction to Quantum Computing.









