## Introduction to Coding Theory

Lectures: Vitaly Skachek (office hours: to be announced)

Practice: Yauhen Yakimenka

Language of instruction: English

### Final Exam

The final exam will take place on **Friday, December 14th, between 14:15-17:15, room Paabel 220**. Any written and printed material is allowed in the exam. No electronic devices are allowed (no phones, computers, tablets, calculators, etc.)

### Schedule

Lectures: | `Thr 16.15-17.45` | `Ülikooli 17-220 (Paabel 220)` |

Practice: | `Fri 14.15-15.45` | `Ülikooli 17-220 (Paabel 220)` |

### About the course

- How is a compact disc protected from scratches?
- How polynomials can help to keep a secret?
- How to send more bits over the network link that link can carry?

We will answer these and other questions. The course is dealing with mathematical methods and algorithms for reliable transmission and storage of information. The main object under consideration is an error-correcting code, which is typically a set of vectors equipped with certain properties. The discussed methods make use of linear algebra and finite fields. Only knowledge of linear algebra (introductory course into linear algebra) is assumed. All necessary mathematics will be explained in the course.

### Prerequisites

- Linear algebra or equivalent course
- Interest in application of mathematics to computer science and engineering

The course is suitable for all levels: Bachelor, Master and Ph.D. The basic knowledge of linear algebra is assumed (linear transformations, vectors spaces, solving systems of linear equations). Beyond that, all necessary mathematical background will be explained in the course. However, knowledge of basics in probability theory, discrete mathematics and finite fields can be helpful.

### Preliminary syllabus

Lecture 1 | communications model; BSC and BEC channels; code and its parameters. |

Lecture 2 | ML and nearest-neighbour decoding; examples of simple codes; Shannon theorems. |

Lecture 3 | correction and detection of errors; correction of erasures. |

Lecture 4 | linear codes; generator matrix; parity-check matrix. |

Lecture 5 | construction of finite fields; primitive elements. |

Lecture 6 | parity-check matrix; dual code; Hamming code. |

Lecture 7 | extended Hamming code; concatenated code; syndrome decoding. |

Lecture 8 | Singleton bound; sphere-packing bound; Gilbert-Varshamov bound. |

Lecture 9 | asymptotic bounds; Reed-Solomon codes; Vandermonde matrix. |

Lecture 10 | generalized Reed-Solomon codes; GRS codes as cyclic codes. |

Lecture 11 | decoding of GRS codes; key equation; Peterson-Gorenstein-Zierler decoding algorithm. |

Lecture 12 | solving key equation by using extended Euclid's algorithm. |

Lecture 13 | finding error values by using Forney's algorithm; summary of decoding of GRS codes; example. |

Lecture 14 | NP-hardness of nearest-neighbour decoding; LDPC codes. |

### Literature

- R.M. Roth,
*Introduction to Coding Theory*, Cambridge University Press, 2008 (the course mainly follows parts of this book; available in UT library) - F.J. MacWilliams, N.J.A. Sloane,
*The Theory of Error-Correcting Codes*, North-Holland Publishing Company, 1977 (newly published copy is available in UT library) - J.H. van Lint,
*Introduction to Coding Theory*, Springer 1999

### Final grade structure

- Homeworks: 60%
- Final exam: 40%

Final exam will be open-book, i.e. any printed or written materials allowed but no electronic devices.

### Previous exams

##### Final exam January 24th, 2018:

##### Final exam December 28th, 2016:

##### Final exam June 8th, 2015:

##### Final exam June 10th, 2014:

### Last year

You might also be interested in last year course page.