  In the current Noisy Intermediate Scale Quantum (NISQ) era of quantum
computing, qubit technologies are prone to imperfections, giving rise to
various errors such as gate errors, decoherence/dephasing, measurement errors,
leakage, and crosstalk. These errors present challenges in achieving error-free
computation within NISQ devices. A proposed solution to this issue is Quantum
Error Correction (QEC), which aims to rectify the corrupted qubit state through
a three-step process: (i) detection: identifying the presence of an error, (ii)
decoding: pinpointing the location(s) of the affected qubit(s), and (iii)
correction: restoring the faulty qubits to their original states. QEC is an
expanding field of research that encompasses intricate concepts. In this paper,
we aim to provide a comprehensive review of the historical context, current
state, and future prospects of Quantum Error Correction, tailored to cater to
computer scientists with limited familiarity with quantum physics and its
associated mathematical concepts. In this work, we, (a) explain the
foundational principles of QEC and explore existing Quantum Error Correction
Codes (QECC) designed to correct errors in qubits, (b) explore the practicality
of these QECCs concerning implementation and error correction quality, and (c)
highlight the challenges associated with implementing QEC within the context of
the current landscape of NISQ computers.
