  This is an expository article aiming to introduce the reader to the
underlying mathematics and geometry of quantum error correction. Information
stored on quantum particles is subject to noise and interference from the
environment. Quantum error-correcting codes allow the negation of these effects
in order to successfully restore the original quantum information. We briefly
describe the necessary quantum mechanical background to be able to understand
how quantum error-correction works. We go on to construct quantum codes:
firstly qubit stabilizer codes, then qubit non-stabilizer codes, and finally
codes with a higher local dimension. We will delve into the geometry of these
codes. This allows one to deduce the parameters of the code efficiently, deduce
the inequivalence between codes that have the same parameters, and presents a
useful tool in deducing the feasibility of certain parameters. We also include
sections on quantum maximum distance separable codes and the quantum
MacWilliams identities.
