Basics of Quantum Computation
  Quantum computers require quantum logic, something fundamentally different to classical Boolean logic. This difference leads to a greater efficiency of quantum computation over its classical counter-part. In this review we explain the basic principles of quantum computation, including the construction of basic gates, and networks. We illustrate the power of quantum algorithms using the simple problem of Deutsch, and explain, again in very simple terms, the well known algorithm of Shor for factorisation of large numbers into primes. We then describe physical implementations of quantum computers, focusing on one in particular, the linear ion-trap realization. We explain that the main obstacle to building an actual quantum computer is the problem of decoherence, which we show may be circumvented using the methods of quantum error correction. 
Vlatko Vedral and Martin B. Plenio