BACK COVER

This book is aimed at people who simply know the basics of computer programming. It does not require any notion of physics and allows its readers to understand with total accuracy and in the simplest way the use that could be made of a quantum computer, by explaining step by step how to write a software to emulate its operation. The usual expression that a qubit "is an object that can be simultaneously in both binary states 0 and 1" will lose all the aura of mystery that surrounds it, and readers will understand exactly its meaning and implications for computing without the need for any knowledge of physics. The book describes quantum computing by considering it strictly from a computer science point of view, simply as a machine that is capable of transforming a given input into a given output using any suitable physical principle to work, and thus allows to become completely familiar with quantum gates and with the most famous quantum algorithms. The only condition is that the readers are familiar with some programming language and with the basic concepts of classical computer science: those who have this knowledge will easily follow the description of quantum algorithms and understand the software emulation that is implemented in the book, and will also have fun running and testing it with their own PC.

The knowledge acquired through this book is of vital importance to *investors* because it allows them to judge independently on the risk of investing in this technology. It has been written for *programmers* because the knowledge of basics of computer science is useful to understand exactly what a quantum computer, once built, could be used for. But this understanding is also essential for *investors* who must evaluate whether and how much it is appropriate to risk investing in the development of quantum computing. Therefore, even *investors* (private investors, consultants, managers of financing funds for technological enterprises, etc.) who want to decide on the allocation of resources in quantum computing with full knowledge of the stakes, must know this book, and if they do not personally own the necessary prerequisites, they can use it by hiring some trusted computer expert to read it, understand it and report on the result.

TABLE OF CONTENTS

1. Introduction

An explanation for programmers and investors

Bibliography and verification

QcNooq project and download of the source code

Practical information

Notation

2. Complex numbers

2.1 Arithmetic of complex numbers

3. Operations on vectors and matrices of complex numbers

3.1 Vectors

3.2 Matrices

4. Bits and Qubits

4.1 Basic states and evolution of states

4.2 Actions on a system

4.3 Qubit

4.4 Composition of states

4.5 Measurement and result reading

5. Quantum gates

5.1 Classical gates

5.2 Identity gate and reversible gates

5.3 Quantum gates

6. Quantum Algorithms

6.1 Deutsch’s algorithm

6.2 Deutsch–Josza algorithm

6.3 Simon’s algorithm

6.4 Grover’s algorithm

6.5 Shor’s algorithm

7. Perspectives of quantum computing

7.1 Useful algorithms and state of the art

7.2 Quantum programming languages

7.3 A brief history of the quantum computing project

7.4 Conclusion for investors

Appendix: use of the QcNooq project

Back cover