Digital communication links transmit information bits from here to there. Computer memories and other digital storage systems transmit information from now to then. In either case noise or failures causes the received data to differ, slightly or worse, from the original data. Error-correction coding is the art of introducing controlled redundancy in the form of additional check bits in the original message so as to achieve high degree of reliability over space and/or time, despite the presence of noise.

Throughout this course students will learn how to design and decode high-performance error-correcting codes matched to various noise environments, that can achieve performance very close to the theoretical limits with manageable decoding complexity.