ECE 6606 - Coding Theory & Applications

Course information

ECE 6606 Coding Theory and Applications is a graduate-level class that introduces the theory and practice of error-correction coding. Error-correction techniques for digital data are implemented in many devices that we use in our everyday life. For instance, they are used in digital transmission systems to eliminate transmission errors and in magnetic, optical, and semiconductor storage devices as hard disks, DVDs, or flash memory to cancel read and write errors. Topics covered in class include algebraic codes (block codes, cyclic codes, BCH codes, Reed-Solomon codes), convolutional codes, and modern graph-based codes (Turbo-Codes and LDPC codes). Codes will be mainly discussed in the context of channel coding. The objectives of the course are

  • to understand the theoretical framework in which error-correction codes are designed and optimized;
  • to develop of working knowledge of error-correction coding by implementing encoding and decoding algorithme in Matlab.


The course is not primarily meant as a theoretical course but a solid understanding of algebra (MATH 2406 or equivalent) and basic probability theory (ECE 3075 or equivalent) is required. A background in digital communications, signal processing, or information theory is also helpful, although it is not a prerequisite. Relevant background will be revised throughout the course

Recommended Textbooks

Error Control Coding 2nd Ed., Shu Lin and Daniel J. Costello Junior, Prentice Hall 2004

Error Correction Coding, Todd. K Moon, Wiley Interscience, 2005

The Theory of Error-Correcting Codes, MacWilliams and Sloane, North Holland, 1977

Channel Codes: Classical and Modern, Ryan and Lin, Cambridge University Press, 2009

Course schedule

Tuesday and Thursday 12:05pm-1:25p, ESM Building, Room 210

Office hours

Tuesday 1:30pm-3pm