Quantum Computation: Fundamental Concepts