This is an advanced class intended for students with solid knowledge in quantum and classical computing theory. This includes good familiarity with the quantum computation model (qubits, quantum circuits, quantum gates and their functionality), quantum states and manipulations (quantum state as a vector in Hilbert space, quantum operations as unitary operations, representation of quantum states as density matrices, measurements, projections and projective measurements, observables) and basic quantum algorithms (quantum Fourier transform, Grover's algorithm, Shor's algorithm).