Course announcement

Essential Coding Theory (Harvard CS 229r - Spring 2020)

Prereq: CS 121/124/125 + Mathematical Maturity
Time: MW 3-4:15pm

Location: Cabot Instruction Room Lower Level

The theory of error correcting codes dates back to the work of Shannon (1948) and Hamming (1950). The theory emerged as a reaction to some of the pressing engineering problems of the time in the communication and storage of digital information. The resulting theory turns out to have deep connections to many areas of mathematics and computer science. The theory shows how to build codes (or prove their existence) using probabilistic, algebraic, and graph-theoretic methods. Limits (non-existence) of codes are proved by combinatorial and analytic methods. And the algorithmic tasks of encoding and decoding lead to new connections as well. Today these codes play a central role as tools in the design and analysis of algorithms, and also in many aspects of computational complexity. This course will cover some of the essential elements of this theory, focussing on clean mathematical definitions, and constructions of algorithmic and asymptotic importance. Most of the material will be built from "first principles" - so no specific prior background is necessary; but a general mathematical maturity will be essential to get to the many motivating questions, and to understand the proofs. The course will roughly break down into four (unequal) parts.
A tentative list of topics is available at the course website. If you are interested (even tentatively) in the course, please sign up on the piazza site (

Instructor: Madhu Sudan