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:
Programming for a QPU--Explore core concepts for programming quantum processing units, including how to describe and manipulate qubits and how to perform quantum teleportation.
QPU Primitives--Learn algorithmic primitives and techniques, including amplitude amplification, the Quantum Fourier Transform, and phase estimation.
QPU Applications--Investigate how QPU primitives are used to build existing applications, including quantum search techniques and Shor's factoring algorithm.
An excellent very readable and comprehensible basic introduction to quantum computing. It covers structure and function and detailed explanations of the basic algorithms - With detailed code examples. Finishes up with an intriguing intro/survey of the new field of quantum machine learning. To be read slowly and carefully. A great introductory resource. I admit I didn’t like the circle notation much to begin with. But even it grows on you after a while.
The authors' aim for this book is to give a high-level introduction to the programming of quantum computers without, as is usual at the moment, giving a full introduction to the mathematical foundations of quantum gates and qubits. I believe this is a laudable goal, since when/if quantum computers become widely-used, it won't be practical to expect every programmer to be fully versed in quantum mathematics. However, compared to classical computing, the mathematics underlying quantum computing is significantly more advanced (Boolean algebra vs. Linear algebra on Hermitian vector spaces). Quantum algorithms seem to be much closer based on the actual gate logic than is the case with classical algorithms (or are they? Perhaps it would be more appropriate to say that quantum gates are much, much more expressive than classical gates and thus closer to the actual algorithms). This book doesn't abstract the algorithms from the quantum gate logic, but simply omits the mathematics, which results in incomplete descriptions and for some algorithms (e.g. QFT) makes understanding them hard to impossible. It seems this is the price to be paid for presenting quantum programming in an easily accessible form. What the book does very well are the graphical depictions of the algorithms, the diagrams are clear and they introduce a circle notation which can be a great help in understanding how some of the algorithms work. Also, the book comes with website on which readers can play with the quantum algorithms from the book in a JavaScript interface. Personally, I think it's best to read this book accompanied by a more theoretical treatment of quantum computing, such as Mike & Ike, and use these to books to balance the abstract and the more practical perspective.