Теория кодирования  - это изучение свойств кодов и их пригодности для специфических задач. Коды используются для сжатия данных, криптографии, нахождения и исправления ошибок и от недавнего времени для сетевого кодирования. Коды изучаются в теории информации, электротехнике, математике и кибернетике для создания эффективных и надежных методов преобразования данных. Это правило предусматривает уборку избыточности кода и обнаружения и исправления ошибок.
В теории кодирования рассматриваются два важнейших аспекта:
  - Сжатие данных, или source coding  - кодирование источника;
- Forward error correction, или channel coding  - канальное кодирование.
Кодирование источника направлено на сжатие данных для их эффективной передачи. Канальное кодирование дает дополнительные биты данных, чтобы сделать передачу данных более устойчивой к возмущениям в канале передачи.