Quantum Error Correction: Theory and Hands-on