Department of Electrical and Computer Engineering

ECE 556


ECE 556, TTh 12:30-13:50pm, 3020 ECEB. ECE 556 is also cross-listed as CS 577 and MATH 579.

Credit : 4 hours.

Prerequisites : Math 417 Introduction to Abstract Algebra or equivalent, or consent of instructor

Catalog description: We will start by covering the mathematical concepts needed to understand algebraic coding theory and the concepts of cyclic codes and in particular, Reed-Solomon codes.

These will heavily focus on finite fields, combinatorics and number theory.

In the second part of the course we will turn our attention to codes on graphs (LDPC codes), polar codes, codes for distributed storage, coded computing and learning and coding for synthetic biology (i.e., coding for DNA- and polymer-based data storage). Our treatment of these subjects will rely on some basic and some not-so-basic notions from combinatorics and graph theory, optimization and machine learning and rudimentary molecular biology.

Due to time limitations we will not discuss convolutional codes.



Hamming codes, linear codes, dual codes

Scribed Lecture 1

Bounds on the size of codes

MacWilliams identities

Extended coverage of MacWilliams identities

HW #1

Finite fields - basic treatment

Finite fields - more advanced treatment

Finite fields - more advanced treatment with examples

HW #2

Recommended Text I: The Theory of Error-Correcting Codes (Mac Williams and Sloane, a classic for algebraic coding theory).

Recommended Text II: Algebraic Codes for Data Transmission (Blahut, a engineering-oriented approach to coding theory).

Recommended Text III: Introduction to Coding Theory (Roth, contains a number of topics not covered in the above cited texts).

Course Directors : Professor Olgica Milenkovic (

Further information

Course Syllabus

Fall 2009 Home Page

The ECE 556 FAQ

Home Pages for Previous Semesters

ECE Department Home Page

Graduate study in
Coding and Cryptography