"Quantum Computing" is among those terms that are widely discussed but often poorly understood. The reasons of this state of affairs may be numerous, but possibly the most significant among them is that it is a relatively new scientific area, and it's clear interpretations are not yet widely spread. The main obstacle here is the word "quantum", which refers to quantum mechanics - one of the most counter-intuitive ways to describe our world.
But fear not! This is not a course on quantum mechanics. We will gently touch it in the beginning and then leave it apart, concentrating on the mathematical model of quantum computer, generously developed for us by physicists. This doesn't mean that the whole course is mathematics either (however there will be enough of it). We will build a simple working quantum computer with our bare hands, and we will consider some algorithms, designed for bigger quantum computers which are not yet developed.
The course material is designed for those computer scientists, engineers and programmers who believe, that there's something else than just HLL programming, that will move our computing power further into infinity.
Since the course is introductory, the only prerequisites are complex numbers and linear algebra. These two are required and they have to be enough.
In this module we will discuss the nature of computations. How would you define a computation? How computations evolved? We will take a look at the computer generations and what they mean to us if we want to predict what comes next on this way. Aside of computer generations we'll talk about the computational complexity theory and its problems. And all these will lead us to the conclusion, that quantum computing is our future.
Mathematical Model of Quantum Computing
Quantum computing is based on quantum mechanics, Captain Obvious already told us that. But learning quantum mechanics might take some time (for those who didn't do that yet), so if we want to start learning quantum computing now, we are going to need some workaround. The mathematical model of quantum computing is just what we need. We skip all underlying physics and provide the model of a computational process that satisfies it. Just that simple.
Quantum Computer and Quantum Algorithms
Now, when we learned the mathematical model, we are ready for the real stuff - the algorithms. In this module we will design, discuss and analyse the real quantum algorithms and even build the real quantum computer for one of them!
The algorithms from the previous module were simple, cute and apparently useless. Let's take a look at what the real useful quantum algorithm looks like. In this module we'll learn the most famous quantum algorithm in the world - Shor's algorithm for period finding (and number factoring of course).
Grover's Algorithm. A Quantum Computer Application Boundaries
Shor's algorithm is really impressing, isn't it? It makes us feel that we found the source of infinite computing power! But is that so? What tasks can we solve this much faster? All of them? In this module we are going to curb our optimisme and to learn one of the most notorious and elegant quantum algorithms - the Grover's algorithm for the unsorted database search.