The construction of a quantum computer is an extremely challenging task, because the states of the quantum system used to carry out the computation are typically far too fragile. A necessary condition to build such a computer is to design a system in which a large number of quantum bits are protected from the devastating effect of their environment to withstand the quantum information for a sufficiently long time. At the same time, performing a computation supposes the ability to control the quantum states to process the information they encode. The theory of quantum error correction opens the path towards the realization of macroscopically large quantum systems with, in theory, arbitrary good protection against the noise induced by the env...