Umweltinformatik

"Algorithmen und Datenstrukturen"

(frühere Bezeichnung: Algorithmen und Datenstrukturen 2 )


jeweils 6 KP, 3V +1 Ü

Die beiden Module "inf001 Algorithmen und Programmierung" und "inf002 Algorithmen und Datenstrukturen" bieten einen Überblick über zentrale Grundlagen der Praktischen Informatik und ergänzen die Module „Programmierkurs“ und „Software Engineering“ um eine stärker konzeptionell und auf Effizienz ausgerichtete Betrachtung von Software.Diese Module bilden daher eine wesentliche Grundlage für eine spätere praktische Tätigkeit in der Software-Entwicklung.

 

 

Ziele des Moduls Algorithmen und Datenstrukturen:

Die Studierenden sollen

□    allgemeine Konzepte zum Entwurf von Algorithmen (z.B. Gready-Verfahren, Divide-and-Conquer-Verfahren) kennen lernen,

□    Algorithmen und Datenstrukturen zur Lösung von häufig vorkommenden Problemen verstehen und in ihrer Anwendbarkeit bewerten können,

□    Probleme der Effizienz von algorithmischen Lösungen konkreter Fragestellungen verstehen und bewerten können,

□    eine fundierte Auswahl eines Algorithmus und einer Datenstruktur zur Lösung eines konkreten Problems treffen können,

□    die gelernten Algorithmen und Datenstrukturen sinnvoll auf gegebene konkrete Probleme anwenden können,

□    Praktische Erfahrungen in der Programmentwicklung auf neue Aufgaben übertragen können,

□    lernen, Lösungen zu kleinen Aufgaben in Teams zu 2-3 Studierenden zu erarbeiten und die Ergebnisse in einer Gruppe zu präsentieren.

Inhalte des Moduls Algorithmen und Datenstrukturen:

Algorithmen sind ein Kernkonzept der Informatik, das sich in allen Anwendungsbereichen findet. Sie stellen Abläufe für die Lösung von Problemen dar und sind untrennbar mit Datenstrukturen zur Repräsentation der verarbeiteten Daten verbunden. Essentiell zum Entwurf von Algorithmen und Datenstrukturen ist die Frage ihrer Effizienz, d.h. des Berechnungsaufwands in Abhängigkeit vom Umfang der zu verarbeitenden Daten.

Das Modul stellt für verschiedene, häufig vorkommende Problemstellung bekannte, effiziente Algorithmen und Datenstrukturen vor. Konkreter sind dies u.a. beispielsweise

•    Verfahren zum Suchen nach Schlüsseln, sowie Einfügen und Löschen in dynamischen Datenmengen, z.B. AVL-Bäume, B-Bäume, Hash-Verfahren,

•    Methoden zur Suche nach Textmustern,

•    Verfahren zum Sortieren von Daten nach Schlüsselwerten, z.B. Quick-Sort und Heap-Sort,

•    Graph-basierte Anwendungen, z.B. zur Ermittlung kürzester Wege in Graphen,

•    einfache numerische Verfahren, z.B. zum Lösen linearer Gleichungssysteme,

•    ein Beispiel eines diskreten Optimierungsverfahrens, z.B. das Simplex-Verfahren.