Coding Theory for Storage and Networks

Lecturer (assistant)
Duration4 SWS
TermSommersemester 2024
Language of instructionEnglish
Position within curriculaSee TUMonline
DatesSee TUMonline

Admission information


At the end of the course, the students are able to - name current areas of applications of coding theory, - for those applications which were discussed in the lecture: to choose a suitable coding scheme, adapt its parameters, evaluate it, and implement it in software, - for a known given coding scheme and a given application: to evaluate its error-correcting capabilities and limits, also in comparison to classical error-correcting codes, - to understand coding schemes which were not discussed in the lecture after appropriate literature research.


- Coding for efficient data recovery in distributed data storage: locally repairable codes and regenerating codes. - Decoding of Reed-Solomon codes beyond half the minimum distance: list decoding, power decoding. - Interleaved Reed-Solomon codes and algorithms to correct burst errors. - Network coding: Rank-metric codes, subspace codes, application to error-correction in networks. - Coding for correcting insertions and deletions. - Coding for non-volatile memory: coding for stuck and partially stuck cells.


- Mathematical basics (in particular linear algebra) - The lecture "Channel Coding" is recommended.

Teaching and learning methods

lecture with integrated lab. Lecture: The fundamental theoretical contents are presented in the lecture (by a slide presentation and on the black board) and illustrated with examples. Students are encouraged to ask questions and discuss the topics of the lecture. Tutorial: In an accompanying tutorial, on the hand problems are calculated and discussed and on the other hand small programming tasks are given and supervised. For these programming tasks, the content of the lecture is implemented in sagemath (Python). Therefore, task descriptions are handed out which are first presented by the teaching assistants. Afterwards the students will implement the programming tasks in teams of two students independently, with monitoring of the teaching assistants. After finishing a task, there will be a discussion of each team with a supervisor.


The students can hand in a report about two programming tasks. When this report is evaluated as passed, these students get a 0.3 grade reduction on the final exam. Writing this report requires on the one hand to apply the content of the lecture in the programming tasks by using MATLAB and on the other hand to document two of these tasks in an understandable manner. In a final written exam about the content of the lecture, the students should demonstrate their understanding of the considered coding schemes and the respective applications. They have to show, without supporting material, that they can evaluate and design coding schemes for the considered applications (network coding, distributed data storage, communication channels with delay constraints and insertion/deletion channel).