Quantum Computer Science: An Introduction