Introduction to Coding Theory (236309)


2016/2017 Winter Semester

When: Wednesday 14:30–16:30 (lecture) 16:30–17:30 (recitation class)
Where: Taub 3
Instructor: Ronny Roth, Taub 637, ronny(at)
Teaching assistant: Helal Assi, Taub 532, helal.assi(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 to students who are enrolled to the course. To obtain the material, please send an email to Helal with the subject “textbook” and include in that email your name and ID number. Enrolled students will be mailed back a pdf copy of the relevant chapters of the textbook.

Topics covered in the course are as follows:

  • Introduction (26 Oct through 09 Nov 16)
  • Linear codes (09 and 16 Nov 16)
  • Introduction to finite fields (16 through 30 Nov 16)
  • Bounds on the parameters of codes (30 Nov 16)
  • GRS and related codes (30 Nov through 14 Dec 16)
  • Decoding of GRS codes (14 and 21 Dec 16)
  • Structure of finite fields (04 and 11 Jan 17)
  • Cyclic codes (11 through 25 Jan 17)

Homework assignments

  • Homework assignment 1:
    Problems 1.10, 1.12, 3.3, 3.13, A.1 (parts 1–3).
    Due date: 23 Nov 2016.
  • Homework assignment 2:
    Problems 2.3, 2.13, 2.14, 3.4, 3.5.
    Due date: 07 Dec 2016.
  • Homework assignment 3:
    Problems 2.4, 2.6, 2.7, 3.21, 3.22.
    Due date: 21 Dec 2016.
  • Homework assignment 4:
    Problems 3.31 (parts 1–5), 3.32, 4.9, 4.10, 4.14.
    Due date: 12 Jan 2017.
  • Homework assignment 5:
    Problems 5.2, 6.3, 6.11, 7.10, 8.9.
    Due date: 25 Jan 2017.


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