Coding Theory for Storage and Networks

Lecturer (assistant)
Duration2 SWS
TermSommersemester 2020
Language of instructionEnglish
Position within curriculaSee TUMonline
DatesSee TUMonline


Admission information

See TUMonline
Note: keine


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.


- 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 flash memories: write-once-memory codes, coding for stuck memory cells. - Coding for distributed data storage: locally repairable codes, regenerating codes. - Coding for correcting insertions and deletions.


- Mathematical basics (in particular linear algebra) - For the lab: knowledge of Python or another programming language is recommended. - 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. Lab: In an accompanying lab, the content of the lecture is implemented in sagemath (Python). Therefore, lab descriptions are handed out which are first presented by lab assistants. Afterwards the students will implement the lab tasks in teams of two students independently, with monitoring of the lab assistants. After finishing a lab task, there will be a discussion of each team with a supervisor.


The students can hand in a report about two labs. 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 lab by using MATLAB and on the other hand to document two of these labs 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, flash memories).

Recommended literature

If necessary, current research papers to each of the topics are uploaded or handed out.