Principles of Quantum Computation and Information, Vol I: Basic Concepts