An introduction to quantum computation, a modern discipline looking for ways to harness the power of quantum mechanics to gain exponential speedup of computations and simulations. We will go through the basic algorithms, discuss error correction and various physical platforms suggested for a possible implementation of such a computer. The course assumes a knowledge of linear algebra, basic probability and familiarity with quantum mechanics.