ErrorCorrection is the fixing of mistakes in data or structures and features to support the same.

The errors are typically transmission errors on a communication channel (network, MoDem, or WirelessNetwork link) or disk read/write errors. ErrorCorrection essentially inserts redundancy into the data to correct any mistakes that happen. How much redundancy gets inserted depends on how many errors are expected, how worried you are about loosing data and how sophisticated an Algorithm you're willing to use. ErrorCorrection algorithms can be limiting factor in throughput of systems if done at too high a level and doing them at a low level requires more silicon (and thus more cost).