Quantum error-correcting codes will be the ultimate enabler of a future quantum computing or quantum communication device. This theory forms the cornerstone of practical quantum information theory. We provide several contributions to the theory of quantum error correction--mainly to the theory of entanglement-assisted quantum error correction where the sender and receiver share entanglement in the form of entangled bits (ebits) before quantum communication begins. Our first contribution is an algorithm for encoding and decoding an entanglement-assisted quantum block code. We then give several formulas that determine the optimal number of ebits for an entanglement-assisted code. The major contribution of this thesis is the development of the theory of entanglement-assisted quantum convolutional coding. A convolutional code is one that has memory and acts on an incoming stream of qubits. We explicitly show how to encode and decode a stream of information qubits with the help of ancilla qubits and ebits. Our entanglement-assisted convolutional codes include those with a Calderbank-Shor-Steane structure and those with a more general structure. We then formulate convolutional protocols that correct errors in noisy entanglement. Our final contribution is a unification of the theory of quantum error correction--these unified convolutional codes exploit all of the known resources for quantum redundancy.