Quantum Information Processing And Quantum Error Correction by Ivan Djordjevic