Coding Theory for Storage and Networks
Vortragende/r (Mitwirkende/r) | |
---|---|
Nummer | 0000001694 |
Art | |
Umfang | 4 SWS |
Semester | Sommersemester 2024 |
Unterrichtssprache | Englisch |
Stellung in Studienplänen | Siehe TUMonline |
Termine | Siehe TUMonline |
Teilnahmekriterien
Lernziele
Am Ende der Lehrveranstaltung sind die Studierenden in der Lage
- aktuelle Anwendungsbereiche der Codierungstheorie zu nennen,
- für die in der Vorlesung behandelten Anwendungen ein passendes Codierungsschema auszuwählen, die Parameter anzupassen, es zu evaluieren und in Software zu implementieren.
- für ein gegebenes bekanntes Codierschema und eine gegebene Anwendung die Korrekturfähigkeit und Grenzen zu beurteilen, auch im Vergleich zu klassischen fehlerkorrigierenden Codes.
- nicht in der Vorlesung behandelte Codierschemata nach entsprechender Literaturrecherche zu verstehen.
Beschreibung
- Decodierung von Reed-Solomon Codes über die halbe Mindestdistanz: Listendecodierung, Power-Decodierung.
- Interleaved Reed-Solomon Codes und Algorithmen zur Burst-Fehler-Korrektur.
- Network Coding: Rang-Metrik Codes, Untervektorraum Codes, Anwendung zur Fehlerkorrektur in Netzwerken.
- Codierung für Flash Speichermedien: Write-Once-Memory Codes, Codierung von defekten Speicherzellen.
- Codierung für verteilte Datenspeicher: Locally Repairable Codes, Regenerating Codes.
- Codes zur Korrektur von Insertions und Deletions.
Inhaltliche Voraussetzungen
- Mathematische Grundkenntnisse (vor allem lineare Algebra).
- Der vorherige Besuch der Vorlesung "Channel Coding" wird empfohlen.
Lehr- und Lernmethoden
Vorlesung mit integrierter Übung
VL: Die notwendigen theoretischen Inhalte werden im Vortrag vermittelt (mit Folienpräsentation und Tafelanschrieb) und durch kurze Beispiele veranschaulicht. Die Studierenden sind zur Diskussion der Inhalte angehalten und werden mit zahlreichen Zwischenfragen zur Beteiligung motiviert.
In einem begleitenden Tutorium werden zum einen Übungsaufgaben gerechnet und zum anderen Programmieraufgaben gestellt und betreut.
In diesen Tutorials werden die Inhalte der Vorlesung in sagemath (Python) umgesetzt. Hierzu werden Anleitungen gestellt, welche zunächst vorgestellt und erklärt werden. Die Studierenden sollen anschließend eigenständig (in Zweier-Teams), mit Begleitung der Betreuer, die Programmieraufgaben umsetzen. Nach Fertigstellung des Versuches erfolgt eine Besprechung jedes Teams mit einem Betreuer.
Studien-, Prüfungsleistung
Die Studierenden können einen Bericht über zwei der Programmieraufgaben abgeben. Wenn dieser positiv bewertet wird, bekommen diese Studierenden einen 0,3-Notenbonus. Das Verfassen dieses Berichts erfordert zunächst, die Inhalte der Vorlesung unter Verwendung von MATLAB anzuwenden und die Ergebnisse zweier Programmieraufgaben verständlich zu dokumentieren.
In einer schriftlichen Prüfung über den Inhalt der Vorlesung demonstrieren die Studierenden ihr Verständnis der vorgetragenen Codierungschemata und der behandelten Anwendungen. Sie zeigen ferner ohne Rückgriff auf Hilfmittel, dass sie für die entsprechenden Anwendungen (Network coding, distributed data storage, flash memories) Codeklassen evaluieren und designen können.
Die Modulnote ist somit die Note der schriftlichen Prüfung über die Vorlesung minus dem eventuellen Notenbonus von 0,3.