Essential Algorithms and Code Samples
Eric R. Johnston, Nic Harrigan, Mercedes Gimeno-Segovia

#Quantum_Computers
#software_engineering
#computer_graphics
#data_science
Quantum computers are poised to kick-start a new computing revolution―and you can join in right away. If you’re in software engineering, computer graphics, data science, or just an intrigued computerphile, this book provides a hands-on programmer’s guide to understanding quantum computing. Rather than labor through math and theory, you’ll work directly with examples that demonstrate this technology’s unique capabilities.
Quantum computing specialists Eric Johnston, Nic Harrigan, and Mercedes Gimeno-Segovia show you how to build the skills, tools, and intuition required to write quantum programs at the center of applications. You’ll understand what quantum computers can do and learn how to identify the types of problems they can solve.
This book includes three multichapter sections:
A tried-and-tested approach for getting hands-on with new programming paradigms is to learn a set of conceptual primitives. For example, anyone learning Graphics Processing Unit (GPU) programming should first focus on mastering the concept of parallelism, rather than on syntax or hardware specifics.
The heart of this book focuses on building an intuition for a set of quantum primitives—ideas forming a toolbox of building blocks for problem-solving with a QPU. To prepare you for these primitives, we first introduce the basic concepts of qubits (the rules of the game, if you like). Then, after outlining a set of Quantum Processing Unit (QPU) primitives, we show how they can be used as building blocks within useful QPU applications.
Consequently, this book is divided into three parts. The reader is encouraged to become familiar with Part I and gain some hands-on experience before proceeding to the more advanced parts:
Part I: Programming a QPU
Here we introduce the core concepts required to program a QPU, such as qubits, essential instructions, utilizing superposition, and even quantum teleportation. Examples are provided, which can be easily run using simulators or a physical QPU.
Part II: QPU Primitives
The second part of the book provides detail on some essential algorithms and techniques at a higher level. These include amplitude amplification, the Quantum Fourier Transform, and phase estimation. These can be considered “library functions” that programmers call to build applications. Understanding how they work is essential to becoming a skilled QPU programmer. An active community of researchers is working on developing new QPU primitives, so expect this library to grow in the future.
Part III: QPU Applications
The world of QPU applications—which combine the primitives from Part II to perform useful real-world tasks—is evolving as rapidly as QPUs themselves. Here we introduce examples of existing applications.
By the end of the book we hope to provide the reader with an understanding of what quantum applications can do, what makes them powerful, and how to identify the kinds of problems that they can solve.
Eric Johnston ("EJ") is the creator of the QCEngine quantum computation simulator, and also an acrobat and competitive gymnast. As an engineer, EJ values surprise and whimsy above all other things. He studied Electrical Engineering and Computer Science at U. C. Berkeley, and worked as a researcher in Quantum Engineering at the University of Bristol Centre for Quantum Photonics. EJ worked at Lucasfilm for two decades as a software engineer for video games and movie effects, along with occasional motion-capture stunt performance.
Alongside developing strategies for encoding information within quantum computers, Nic has also worked extensively in the foundations of quantum mechanics. His time grappling with the fundamental meaning of quantum physics has uniquely equipped him to convey (and sometimes judiciously avoid) it’s finer details. He also has 10+ years experience working in science communication, having developed numerous public lectures, workshops and educational resources aimed at conveying complex physics topics to a general audience. Along with work in other media (eg: television, radio), his public engagement work has won various awards (eg: NESTA UK Famelab winner) and been recognized by a visit to 10 downing street. He also has a lifelong passion for more conventional computing and machine learning.
Mercedes Gimeno-Segovia is a world-class researcher in quantum computing. She has a PhD in Quantum Computing Architectures from Imperial College London, and 7+ years of research experience in the field. Her PhD thesis has become a milestone in the field of linear optical quantum computing, as her design of a linear optical architecture overcame many challenges thought unsurmountable and proved to be feasible using current manufacturing techniques. Mercedes has expert knowledge on the limitations of quantum computing implementations, and is passionate about understanding every last detail of a physical system in her quest to find optimal quantum computing hardware. She enjoys science communication, writing a blog and giving public lectures to young students. She’s also an accomplished violinist, having finished qualifications in violin performance and winning an extraordinary award during her studies.









