Introduction to Quantum Computation and by Tim Spiller & Hoi-Kwong Lo