Error-Correcting Codes

This course is an introduction to algebraic methods for devising error-correcting codes. These codes are used, for example, in satellite broadcasts, CD/DVD/Blu-ray players, memory chips, two-dimensional bar codes (including QR codes), and digital video broadcasting. The mathematical ingredients for the course are linear algebra, elementary number theory (integers modulo n and congruences), and abstract algebra (groups, rings, ideals, and finite fields). The necessary abstract algebra will be introduced as needed.

Learning outcomes

On successful completion of this course, students will be able to:

  1. Demonstrate a fundamental understanding of the binary symmetric channel, decoding strategies, and the challenges with designing good codes;
  2. Construct codes, and devise efficient encoding and decoding algorithms for them as a means of gaining exposure to the applications of linear algebra and abstract algebra; 
  3. Analyze the properties of major families of algebraic codes including linear codes, Hamming codes, Golay codes, cyclic codes, BCH codes, and Reed-Solomon codes.
Bilibili lectures

Full Playlist (thanks to Zijie Lu and Brandon Shi for uploading the videos to Bilibili)

Short introduction to coding theory

If would like a short introduction to coding theory, it will suffice to view V0, V1a-V1c (Fundamentals), and V3a-V3f (Linear codes).


YouTube Lectures

Full Playlist

V0: Introduction

V1: Fundamentals

V2: Finite Fields

V3: Linear Codes

V4: Golay Codes

V5: Cyclic Codes

V6: BCH Codes

V7: Reed-Solomon (RS) Codes

V8: Wrap-Up

V9: Linear Algebra Review


Additional Material

Lecture slides
Exercises
Handouts
References