Lernergebnisse
Die Studierenden werden befähigt, komplexe Problemstellungen algorithmisch zu lösen. Hierzu werden fortgeschrittene Methoden der Programmierung in Java vermittelt. Es werden grundlegende Datenstrukturen sowie darauf basierende Algorithmen vermittelt, welche häufig Rekursionen beinhalten. Die Studierenden lernen, die Effizienz der Algorithmen sowie deren Korrektheit zu beurteilen vor dem Hintergrund der jeweiligen Anwendungsgebiete. Durch Umsetzung der behandelten Algorithmen und Datenstrukturen werden außerdem die Elemente der Programmiersprache gefestigt. Mit dem vermittelten Wissen können die Studierenden komplexe Probleme im eigenen Studienfach und im späteren Berufsleben algorithmisch formulieren und anschließend implementieren.
Lehrinhalte
1. Vertiefung der Programmierung
1. Generische Datentypen
2. Iteratoren
3. Abstrakte Datentypen
2. Datenstrukturen
1. Verkettete Listen, Stacks, Queues
2. Bäume, binäre Suchbäume, Heaps
3. Graphen
3. Algorithmen
1. Suchen und Sortieren von Feldern
2. Komplexitätsberechnung von Algorithmen
3. Durchsuchen und Rekonfigurieren von Bäumen
4. Suche nach Elementen und kürzesten Wegen in Graphen
4. Boolesche Algebra
1. Schaltungsentwurf, Normalformen, Vereinfachungsverfahren