Introduction to Coding Theory (236309)


2023/2024 Winter Semester

When: Wednesday 14:30–16:30 (lecture) 16:30–17:30 (recitation class)
Where: TBD
Instructor: Ronny Roth, Taub 637, ronny(at)
Teaching assistant: Boaz Moav, boazmoav(at)
WebCourse site:


Error-correcting codes are methods for protecting transmitted or stored data against errors that are caused by factors such as noise, failing nodes in a network, physical defects in a storage medium, or malfunctioning of a memory device. Reed–Solomon codes and BCH codes are examples of error-correcting codes that are widely used in applications such as computer memories, disks, solid-state drives (flash memories), optical storage (DVD, Blu-ray), disk arrays (RAID), and bar codes (QR code, PDF417). Numerous other applications of error-correcting codes can be found in other branches of computer science.

The course provides the basics of the theory of error-correcting codes. The topics to be covered include the following:

  • Basic concepts: error correction, error detection, and erasure correction
  • Linear error-correcting codes; Hamming codes
  • Introduction to finite fields
  • Specific constructions: Reed–Solomon codes, BCH codes, and alternant codes
  • Decoding algorithms
  • Bounds on the parameters of error-correcting codes


Knowledge of basic terms in linear and modern algebra is assumed (but will nevertheless be recapped in the recitation class during the first few weeks of the semester). Examples of such terms include: vector spaces, groups, and rings.


  1. Introduction
    • The q-ary symmetric channel
    • Maximum-likelihood decoding
    • Error correction, error detection, and erasure correction
  2. Linear codes
    • Representation through generator and parity-check matrices
    • Syndrome decoding
    • Hamming codes
  3. Introduction to finite fields and double-error-correcting codes
    • Irreducible polynomials
    • Primitivity
    • Double-error-correcting codes
  4. Bounds on the parameters of codes
    • The Singleton bound; MDS codes
    • The Hamming sphere-packing bound; perfect codes
    • The Gilbert–Varshamov bound
  5. Reed–Solomon and related codes
    • Generalized Reed–Solomon (GRS) codes
    • BCH codes and alternant codes as subfield subcodes of GRS codes
    • Concatenated codes
    • Decoding GRS codes using Euclid’s algorithm
  6. Structure of finite fields and cyclic codes
    • Minimal polynomials
    • Cyclic codes
    • BCH codes as cyclic codes
    • The BCH bound


Books for further reading

  • R.E. Blahut,
    Algebraic Codes for Data Transmission,
    Cambridge University Press, Cambridge, UK, 2003.
  • S. Lin, D.J. Costello, Jr.,
    Error Control Coding: Fundamentals and Applications,
    Second Edition,
    Prentice-Hall, Upper Saddle River, New Jersey, 2004.
  • F.J. MacWilliams, N.J.A. Sloane,
    The Theory of Error-Correcting Codes,
    North-Holland, Amsterdam, 1977.
  • R.J. McEliece,
    The Theory of Information and Coding,
    Second Edition,
    Cambridge University Press, Cambridge, 2002.

Lecture notes

  • Soft copies of the course material (the first eight chapters of the textbook) will be provided at the beginning of the semester to students who are enrolled to the course.


  • There will be fivefour home assignments which will constitute 20% of the final grade. The remaining 80% will be determined by a final exam.