18.413 | Spring 2004 | Undergraduate

Error-Correcting Codes Laboratory


Course Meeting Times

Lectures: 2 sessions / week, 1.5 hours / session


Fan, John L. Constrained Coding and Soft Iterative Decoding. Kluwer International Series in Engineering and Computer Science. Boston: Kluwer Academic Publishers, 2001, SECS 627.


The field of Error-Correcting Codes has been revolutionized in the last decade by the emergence of iterative decoding techniques. Surprisingly, these techniques are elementary and rely little on the more sophisticated tools developed in the field in recent decades. While the results that sparked this revolution were purely experimental, analytical techniques have been developed that partially explain, and more importantly predict, the behavior of iterative decoding algorithms. This course will introduce students to iterative decoding algorithms and the codes to which they are applied, including Turbo Codes, Low-Density Parity-Check Codes, and Serially-Concatenated Codes. The course will begin with an introduction to the fundamental problems of Coding Theory and their mathematical formulations. This will be followed by a study of Belief Propagation — the probabilistic heuristic which underlies iterative decoding algorithms. Belief Propagation will then be applied to the decoding of Turbo, LDPC, and Serially-Concatenated codes. The technical portion of the course will conclude with a study of tools for explaining and predicting the behavior of iterative decoding algorithms, including EXIT charts and Density Evolution. We will see how these predictive tools can be used to aid code design. While students are working on finishing their final projects, lectures will focus on presentation techniques while covering material of interest that is not required for the final projects.


All work in the class will be project-based. These projects will involve computer experiments. Students may use any computing environment they like, but are recommended to work in C, Java® or MATLAB® as these are the languages with which the instructor is most familiar. As some of these projects will involve experiments that will run for hours or days, students are advised to start early or buy large supercomputers.


Attendance of most classes is required and attendance of all is recommended as much of the material to be presented in class does not appear in the texts.


Some reading will be assigned for almost every class. Most of the readings will come from the course text. Do not be intimidated by the reading! These texts might look complicated, but I will explain how to read them.

Some other readings will come from handouts to be distributed in class.

Short Labs

A short project will be assigned each week in which no more involved project is happening. The short projects will count for a small portion of the grade, but should be completed to aid comprehension and develop tools that will be used in other projects.

Regular Labs

Two involved lab projects will be assigned during the course. Each will require a write-up of around 5 pages.

Course Project

A project proposal of around 3 pages will be due almost 3 weeks before the final projects are due. The products of final projects will be oral and written reports. The written reports will be around 20 pages, and will be handed in twice — once about a month before the end of the class at which time revisions will be suggested, and again right before the end of the semester. Each student will also give a 1/2-class lecture on their final project. Students may work in groups of 2 or 3 on their projects, but must work individually on their written reports. This project will probably involve original research. Suggestions for topics will be provided.

Tests and Exams

We’ll have none of that.


Small Projects 25%
Project 1 25%
Final Project 50%

Course Info

As Taught In
Spring 2004