Coderingstheorie, niet te verwarren met cryptografie, is een onderdeel van de informatietheorie dat zich richt op het toevoegen van redundantie aan gecodeerde informatie, waardoor deze beter beschermd is tegen mogelijke fouten die kunnen optreden tijdens het verzenden over een onbetrouwbaar kanaal.

Broncodering versus kanaalcodering 
Binnen de telecommunicatie bestaan er grofweg twee vormen van codering: broncodering en kanaalcodering. Bij broncodering vindt datacompressie plaats en wordt informatie met zo weinig mogelijk 'informatieverlies' in zo weinig mogelijk symbolen gerepresenteerd, met als doel efficiëntieverbetering bij opslag en verzenden over een kostbaar kanaal. Een voorbeeld van broncodering is de GSM-code, waarbij een digitaal spraaksignaal, dat bij vaste telefonie wordt gecodeerd met 64 kb/s gecomprimeerd is tot 13 kb/s, met zo weinig mogelijk hoorbaar verlies van kwaliteit. 

Bij kanaalcodering worden symbolen aan het gecodeerde signaal of bericht toegevoegd om te voorkomen dat er bij het verzenden fouten optreden, die niet meer kunnen worden gerepareerd. Dit heet het toevoegen van redundantie. Wat binnen de telecommunicatie 'kanaalcodering' genoemd wordt, noemen wiskundigen coderingstheorie. Er bestaan twee vormen van bescherming tegen fouten in een kanaal: foutdetectie en foutcorrectie. Foutdetectie geeft aan de kant van de ontvanger een indicatie dat er fouten zijn opgetreden. De ontvanger kan in dat geval aan de afzender vragen om hetzelfde bericht nog eens te sturen. Bij foutcorrectie is de ontvanger in staat om uit het foutief ontvangen bericht te herleiden wat het meest waarschijnlijk verzonden bericht was, door gebruik te maken van een zogenaamde 'foutcorrigerende code'. De foutkans kan hierdoor worden verkleind, maar wordt nooit helemaal nul.

De laatste stap bij het verzenden is de lijncodering, waarbij het te verzenden digitale signaal in een amplitude- en tijd-discreet signaal wordt omgezet, dat is toegesneden op de eigenschappen van het gebruikte kanaal.

Theorie 
Claude Shannon heeft in 1948 twee stellingen voor gegevensoverdracht gegeven, waarvan de eerste mede naar hem is genoemd. De eerste is de wet van Shannon-Hartley, volgens welke de capaciteit van een kanaal lineair met de bandbreedte van het kanaal toeneemt en afhankelijk is van de signaal-ruisverhouding van het gebruikte kanaal. De tweede is het noisy-channel coderings theorema, dat een maximum geeft voor het aantal symbolen, die per seconde kunnen worden verzonden over een verbinding met ruis.

In de coderingstheorie wordt vanwege de eenvoud gewerkt met codewoorden die dezelfde lengte  hebben. Dat is in tegenstelling tot technieken uit de broncodering, zoals huffmancodering, of de morse-code, die werken met codewoorden van verschillende lengte. 

Foutdetecterende en foutcorrigerende codes werken op berichten die in digitale vorm zijn verstuurd. De berichten kunnen zijn vastgelegd met behulp van binaire symbolen, bits, of symbolen uit een of ander eindig lichaam . 

De hammingafstand tussen twee (code)woorden is het aantal posities waar de twee woorden van elkaar verschillen. De binaire woorden '110011' en '110000' bijvoorbeeld verschillen op de twee laatste posities, dus de hammingafstand is twee. De minimum hammingafstand van een verzameling van codewoorden, van een code, is de kleinste onderlinge afstand die voorkomt tussen twee woorden uit die code. Een code met minimum hammingafstand  heeft een foutcorrigerend vermogen van  fouten, dat wil zeggen dat als er in een woord tijdens het verzenden door het kanaal maximaal  fouten optreden, gegarandeerd correct het verzonden codewoord kan worden gereconstrueerd. 

Het is de uitdaging binnen de coderingstheorie om bij een gegeven woordlengte , een zo groot mogelijk foutcorrigerend vermogen te hebben, dus een grote hammingafstand, en tegelijkertijd zo veel mogelijk gegevens te kunnen verzenden, dus te kunnen kiezen uit zo veel mogelijk codewoorden. Met  wordt het maximaal mogelijke aantal codewoorden ter lengte  aangeduid, die als code een minimum hammingafstand  hebben. In Russische coderingsliteratuur wordt dit met  aangeduid.

Coderingstheorie maakt veel gebruik van technieken uit de discrete wiskunde, en maakt volgens sommigen daar dan ook deel van uit.

Belangrijke wetenschappers 
 Robert Gallager
 Marcel J.E. Golay
 Richard Hamming 
 Claude Shannon
 Neil Sloane
 Andrew Viterbi

Voorbeelden 
 Blokcodes 
 BCH-codes
 Constant gewicht codes
 Convolutiecodes
 Cyclic redundancy check
 Cyclische codes 
 Golay-codes 
 Goppa Codes 
 Lee-codes
 Lineaire codes, waaronder de Hamming-code
 Low-density parity-check codes
 Reed-Muller-codes
 Reed-Solomoncodes 
 Turbocodes

Websites 
 MathWorld. Coding Theory.
 Neil J. A. Sloane: Home Page.
 TU/e. Table of general binary codes. Lijst met maximaal aantal codewoorden A[n,d] in een binaire code

Code
Discrete wiskunde
Informatietheorie