We develop the theory of entanglement-assisted quantum error correcting (EAQEC) codes, a generalization of the stabilizer formalism to the setting in which the sender and receiver have access to pre-shared entanglement. Conventional stabilizer codes are equivalent to dualcontaining symplectic codes. In contrast, EAQEC codes do not require the dual-containing condition, which greatly simplifies their construction. We show how any quaternary classical code can be made into a EAQEC code. In particular, efficient modern codes, like LDPC codes, which attain the Shannon capacity, can be made into EAQEC codes attaining the hashing bound. In a quantum computation setting, EAQEC codes give rise to catalytic quantum codes which maintain a region of inherited noiseless qubits. We also give an alternative construction of EAQEC codes by making classical entanglement assisted codes coherent.Information theory and the theory of error-correcting codes (coding theory) are intimately connected. Both address the problem of sending information over noisy channels. The sender Alice encodes her message as a codeword, sends it through the channel, and the receiver Bob tries to infer the intended message based on the channel output.Information theory (or rather the subfield of Shannon theory) deals with the asymptotic setting of increasingly long codes, with asymptotically vanishing error probability. The noisy channel is typically assumed to act independently on the codeword bits. The fundamental quantity of interest is the capacity of the channel: the optimal rate (in bits per channel use) of information transfer. Claude Shannon [30] gave a remarkable characterization of the channel capacity in terms of mutual information. Unfortunately, the capacity is achieved by random coding, which means highly inefficient encoding and decoding algorithms.Coding theory deals with the practical finite setting, characterized by a fixed code length, number of encoded bits and correctable error set. The most popular codes have simple mathematical properties, such as linearity (a linear combination of codewords is another codeword), which allows for efficient encoding. The performance of these codes is then measured against the optimal performance set by Shannon theory.This relationship carries over to quantum information processing. The basic communication task is sending quantum information over noisy quantum channels. This setting is also relevant for fault tolerant quantum computation, because decoherence can be regarded as a quantum channel *