Algorithmen und Datenstrukturen

Die Vorlesung Algorithmen und Datenstrukturen gehört zu den Pflichtveranstaltungen des Bachelorstudiums, da es zum einen einige Grundlegende Konzepte der Informatik behandelt und zum anderen Problemlösungsverfahren gezeigt, erklärt und angwendet werden.

Es sei gesagt, dass ich nach der Prüfungsordnung 2010 studiert habe. Mittlerweile gibt es eine neue Prüfungsordnung bei der es auch zur Umgestaltung von Modulen kam. Aktuelle Informationen sind hier zu finden.

Dozent der Vorlesung ist Prof. Dr. Alexander Wolff, welcher einen sympathischen, offenen und hilfsbereiten Eindruck macht. Um den Inhalt in Kurzform etwas verständlich zu machen, sollen erst einmal die Begriffe Algorithmus und Datenstruktur (nach Wolff) definiert werden.

„Ein Algorithmus ist eine (wohldefinierte, endliche) Folge von Anweisungen, die aus einer Eingabe eine Ausgabe produziert. […] Ein Algorithmus ist ein abstraktes Konzept; ein Programm ist eine Instanz dieses Konzeptes.“

„[Eine] Datenstruktur [ist ein] Konzept, mit dem man Daten speichert und anordnet, so dass man sie schnell finden und ändern kann.“

(vl00-organisatorisches.pdf aus der Vorlesung Algorithmen und Datenstrukturen, Wintersemester 2010/2011).

Inhalte der Vorlesung sind Sortierverfahren (Algorithmen) wie QuickSort und InsertionSort, Datenstrukturen wie Arrays, verkettete Listen und HashMaps sowie Graphen. Dabei werden auch Verfahren erlernt die Effizienz der verschiedenen Konzepte zu messen und miteinander zu vergleichen, die Korrektheit eines Konzeptes zu beweisen, sowie eigene Konzepte zu entwickeln.

Wie in allen Modulen aus dem Pflichtbereich müssen auch in Algorithmen und Datenstrukturen wöchentlich Übungsblätter bearbeitet und abgegeben werden. Hierbei gibt es zwei Aufgabentypen:

  1. Theoretische Aufgaben: z.B. ist ein binärer Suchbaum gegeben und es soll ein neues, vorgegebenes Element eingefügt und der neue Baum gezeichnet werden. Hierbei sollen auch mögliche Umstrukturierungen im Baum berücksichtigt werden. (Dies ist ein zur Veranschaulichung einfach gehaltenes Beispiel)
  2. Praktische Aufgaben: häufig gilt es bei diesem Aufgabentyp eine(n), in der Vorlesung behandelte(n), Datenstruktur / Algorithmus in Java zu implementieren, also programmatisch umzusetzen.

Neben den Übungsblättern gibt es auch drei Tests, welche einen gewissen Teil der Vorlesung abprüfen. Hat man mehr als 50% der Übungsblattpunkte und mehr als 40% der Punkte der Tests, so ist man zur Klausur zugelassen.

Die Schwierigkeit der Vorlesung liegt in meinen Augen darin, dass sich die Methoden der Problemlösung im universitären Umfeld stark von denen des schulischen Umfelds unterscheiden und die meisten Studenten ein bis zwei Semester brauchen, um sich daran zu gewöhnen. Mein Tipp: man sollte sich regelmäßig mit dem Stoff und den Übungsblättern auseinander setzen und sich nicht davor scheuen Fragen zu stellen – und sei es auch nur per Mail an den Übungsleiter.