An Introduction to Quantum Error Correction