Algorithmen-Lehrkraft: Datenstrukturen und Algorithmen
Zuletzt aktualisiert:
7 Min. Lesezeit

Algorithmen und Datenstrukturen lernt man nicht durch Zuschauen. Der Unterschied zwischen dem Anhören einer Quicksort-Erklärung und dem eigenhändigen Sortieren eines Arrays auf Papier, Schritt für Schritt, zeigt sich in dem Moment, in dem das Klausurblatt oder die Interviewfrage vor Ihnen liegt. Bei der Wahl einer Lehrkraft kommt es deshalb weniger darauf an, wie viel sie weiß, als darauf, wie viel sie Sie selbst tun lässt. Dieser Leitfaden zeigt, welche Art von Unterricht zu welchem Ziel passt, worauf Sie in einer Probestunde achten, wann Einzelunterricht nicht hilft und in welcher Reihenfolge die Themen sinnvoll sind.
Drei Ziele, drei Arten von Unterricht
Wenn Sie im ersten Semester eine Einführung in Programmierung und Algorithmen belegen, liegt das Problem meist beim Programmieren selbst und nicht bei den Algorithmen. Solange Ablaufdiagramme, Pseudocode, Schleifen und Arrays nicht sitzen, ist Komplexitätsanalyse sinnlos. In dieser Phase brauchen Sie jemanden mit Geduld, der kleine Aufgaben mit Ihnen löst und Sie nachdenken lässt, bevor die Antwort kommt. Bei schwachen Grundlagen ist es womöglich sinnvoller, zuerst dem Weg aus Programmieren lernen: womit anfangen zu folgen.
Wenn Sie sich auf die Klausur in „Algorithmen und Datenstrukturen“ vorbereiten, ist Ihr Bedarf sehr konkret: die Aufgabentypen lösen können, die Ihr Lehrstuhl stellt. Diese Klausuren finden überwiegend auf Papier statt. Sie fügen Elemente in einen Baum ein und zeichnen ihn, zeigen jeden Schritt eines Sortierverfahrens oder bestimmen die Laufzeit eines Codeausschnitts. Die passende Nachhilfe arbeitet in der Sprache Ihrer Vorlesung (C, Java, Python) und mit der Notation Ihres Skripts und fragt in der ersten Stunde nach Altklausuren und Übungsblättern.
Wenn Sie als berufstätige Entwicklerin oder berufstätiger Entwickler ein technisches Interview vorbereiten, verschieben sich die Erwartungen erneut. Beweise müssen Sie nicht schreiben. Sie müssen ein unbekanntes Problem laut denkend lösen, begründen, warum Sie eine Datenstruktur wählen, und die Komplexität Ihrer Lösung nennen. Gesucht ist jemand, der Sie keine Aufgaben auswendig lernen lässt, sondern Lösungsmuster vermittelt und Probeinterviews mit Ihnen führt.
Worauf Sie in der Probestunde achten sollten
Am besten beurteilen Sie eine Algorithmen-Lehrkraft, wenn Sie ihr beim unvorbereiteten Lösen eines Problems zusehen. Bringen Sie eine mittelschwere Aufgabe Ihrer Wahl zur Probestunde mit und schlagen Sie vor, sie gemeinsam zu lösen. Kann die Lehrkraft ihr Denken in Worte fassen? Bemerkt sie einen Irrweg und kehrt um? Hier trennt sich, wer auswendig gelernte Lösungen wiederholt, von dem, der tatsächlich Probleme lösen kann.
Stellen Sie außerdem diese Fragen:
- In welcher Sprache arbeiten wir, und können Sie sich an die Notation meiner Vorlesung halten?
- Gibt es eine schriftliche Themenfolge, und wird sie an meinen Klausurtermin angepasst?
- Bekomme ich nach jeder Stunde Aufgaben, und wie sehen Sie meine Lösungen durch?
- Üben wir das schrittweise Durchspielen von Algorithmen per Hand auf Papier?
- Gibt es veröffentlichte Lösungen, Artikel oder Code von Ihnen?
Zwei kleine Prüffragen helfen. Warum liegt die binäre Suche in O(log n)? Warum ist der schlechteste Fall von Quicksort O(n²), und bei welcher Eingabe tritt er auf? Eine gute Lehrkraft nennt nicht nur das Ergebnis, sondern lässt Sie an einem Beispiel mitzählen, bis Sie selbst darauf kommen. Komplexität herleiten zu können ist weit mehr wert, als sie auswendig zu wissen, denn in der Klausur steht ein Codeausschnitt, den Sie noch nie gesehen haben.
In einer guten ersten Stunde halten meist Sie den Stift. Die Lehrkraft zeichnet eine Datenstruktur, führt eine Operation vor, lässt Sie die nächste ausführen und bittet Sie, das Verstandene in eigenen Worten zu erklären. Sie gehen mit einigen gelösten Aufgaben und einigen neuen, die Sie allein versuchen.
Vorsicht ist angebracht bei:
- Einer garantierten Note oder einem garantierten Interviewergebnis
- Dem Ansatz „Lernen Sie diese 300 Aufgaben auswendig“, ohne dass Muster besprochen werden
- Ausschließlich Code am Bildschirm und nie einem Durchspielen per Hand
- Lösungen, die kommen, bevor Sie überhaupt nachgedacht haben
- Dem Angebot, Ihr Übungsblatt für Sie zu bearbeiten
- Einem Stundenpaket gegen Vorkasse ohne schriftlichen Plan
Einzelunterricht, Lehrbuch oder Video?
Kostenloses Material gibt es in diesem Fach reichlich und in guter Qualität. Frei zugängliche Vorlesungsaufzeichnungen von Hochschulen (etwa MIT OpenCourseWare), Visualisierungsseiten wie VisuAlgo und Aufgabenplattformen wie LeetCode reichen für das Selbststudium völlig aus. Hinzu kommen an vielen Hochschulen Tutorien und Lerngruppen, die nichts kosten und genau auf Ihre Klausur zugeschnitten sind. Nutzen Sie diese, bevor Sie für Nachhilfe zahlen. Die klassischen Lehrbücher sind umfassend, aber schwer. Als Nachschlagewerk sind sie gut, als erste Quelle weniger.
Die Schwäche des Selbststudiums ist, dass Sie eigene Missverständnisse nicht erkennen. Ihre Lösung besteht die Testeingaben, ihre Laufzeit ist schlechter als erwartet, und niemand sagt es Ihnen. Videovorlesungen eignen sich, um einem Thema zum ersten Mal zu begegnen. Die Gefahr liegt darin zu glauben, man beherrsche den Stoff, weil man der Erklärung folgen konnte. In diesem Fach heißt Beherrschen, es auf ein leeres Blatt schreiben zu können.
Einzelunterricht zahlt sich in folgenden Fällen aus: wenig Zeit bis zur Klausur und keine Vorstellung, was Vorrang hat; wenn Sie lange am selben Thema hängen (meist Rekursion oder Bäume); oder wenn Sie Probeinterviews und Rückmeldung zu Ihren Lösungen brauchen. Er zahlt sich nicht aus, wenn Sie ohne eigenen Lösungsversuch in die Stunde kommen, wenn Sie noch keine Schleifen und Funktionen schreiben können (dann brauchen Sie Programmierunterricht) oder wenn Sie zwischen den Terminen keine Zeit zum Üben finden. Sich abzumühen gehört in diesem Fach zum Lernen. Eine Lehrkraft, die Ihnen die Lösung zu schnell gibt, nimmt Ihnen diesen Teil, so gut es gemeint sein mag.
Eine Lernreihenfolge für Datenstrukturen und Algorithmen
- Programmiergrundlagen: Schleifen, Arrays, Funktionen und einfache Rekursion. Ohne sie lässt sich nichts aufbauen.
- Komplexitätsanalyse. Big-O-Notation und Zeitkomplexität ist der Maßstab für jedes spätere Thema.
- Lineare Strukturen: Array, verkettete Liste, Stack und Queue. Vergleichen Sie jeweils die Kosten für Einfügen, Löschen und Suchen.
- Suchen und Sortieren. Selection Sort, Insertion Sort, Mergesort und Quicksort sollten Sie per Hand Schritt für Schritt ausführen können. Dafür sind die Prüfungsfragen zu Sortieralgorithmen mit Lösungen gedacht.
- Rekursion und Teile-und-herrsche. Wer den Aufrufbaum zeichnen kann, hat es bei vielen späteren Themen leichter.
- Hashtabellen. Wie sie in einer Sprache praktisch aussehen, zeigt List, Set und Map in Dart.
- Bäume und der binäre Suchbaum. Für Aufgaben zu Einfügen, Löschen und Traversierung siehe die Prüfungsfragen zum binären Suchbaum.
- Heaps und Prioritätswarteschlangen.
- Graphen: Darstellungen, Breitensuche, Tiefensuche und Kürzeste-Wege-Algorithmen.
- Greedy-Verfahren und dynamische Programmierung.
Bereiten Sie sich auf eine Klausur vor, gleichen Sie die Liste mit dem Modulhandbuch und dem Skript ab und lernen Sie nur, was abgedeckt ist. Für Interviews begegnen Ihnen die Schritte drei, sechs, sieben und neun am häufigsten.
Wie viel eine Stunde bringt, entscheiden Sie
Kommen Sie zu jedem Termin mit Aufgaben, an denen Sie mindestens zwanzig Minuten gearbeitet haben und gescheitert sind, und zeigen Sie, wo es hakte. Ihr halbfertiger Versuch ist die wertvollste Information für eine Lehrkraft, weil er zeigt, welches Konzept fehlt. Legen Sie eine gesehene Lösung weg und lösen Sie dieselbe Aufgabe einige Tage später erneut auf einem leeren Blatt. Gelingt das nicht, haben Sie sie nicht verstanden, sondern nur wiedererkannt.
Findet die Klausur auf Papier statt, sollte auch Ihr Üben auf Papier stattfinden. Autovervollständigung und Compiler sitzen nicht mit im Hörsaal. Lösen Sie Altklausuren mit Zeitlimit und bitten Sie Ihre Lehrkraft, sie wie ein Korrektor anzusehen. Zu wissen, welcher fehlende Schritt Punkte kostet, verbessert die Note oft stärker als ein neues Thema.
Mein Unterricht
Ich biete Online-Einzelunterricht und Unterstützung bei der Prüfungsvorbereitung in Algorithmen und Datenstrukturen an. Einzelheiten stehen auf der Seite zur Prüfungsvorbereitung. Die Fragen aus diesem Leitfaden dürfen Sie gern auch mir stellen.
Häufig gestellte Fragen
Welche Programmiersprache brauche ich, um Algorithmen zu lernen?
Die Konzepte sind sprachunabhängig. Für eine Klausur nehmen Sie die Sprache Ihrer Vorlesung, für Interviews die, in der Sie am sichersten schreiben. Wichtig ist, dass Sie Schleifen, Arrays und Funktionen darin ohne Nachdenken hinschreiben können.
Wie viel Mathematik braucht man für Algorithmen?
Für die Grundlagen der Komplexitätsanalyse genügen Summenformeln, Logarithmen und etwas vollständige Induktion. Beweislastige Analysevorlesungen verlangen mehr diskrete Mathematik, für Interviews und die Praxis reicht Schulmathematik mit wenigen Ergänzungen.
Hilft Nachhilfe zwei Wochen vor der Klausur noch?
Ja, wenn Sie sich auf bekannte Aufgabentypen konzentrieren, aber Wunder sollten Sie nicht erwarten. Ein ganzes Semester lässt sich in zwei Wochen nicht aufholen. Realistisch ist, die Themen zu bestimmen, die sicher drankommen, und deren Lösung per Hand zu üben.
Wie viele Unterrichtsstunden pro Woche reichen aus?
Ein bis zwei Stunden pro Woche genügen den meisten. Entscheidend ist die Zahl der Aufgaben, die Sie zwischen den Terminen allein lösen. Eine Stunde nach einer Woche ohne eigenes Üben ist größtenteils Wiederholung.
Verwandte Artikel
Big-O-Notation und Laufzeitkomplexität: Leitfaden mit Übungen
Was Big O bedeutet und wie Sie die Komplexität von Schleifen und Rekursion bestimmen: O/Ω/Θ, Master-Theorem, Speicherbedarf und 8 gelöste Übungen.
Sortieralgorithmen: Prüfungsfragen mit Lösungsweg erklärt
Bubble, Selection, Insertion, Merge und Quick Sort: Vergleichstabelle, Array-Zustände nach jedem Durchlauf und 8 Klausuraufgaben mit Lösungsweg.
Binärer Suchbaum: Prüfungsfragen zu Einfügen und Löschen
BST-Eigenschaft, Einfügen, Suchen und Löschen, Inorder/Preorder/Postorder, Höhe und entarteter Baum; 7 Klausuraufgaben mit gezeichneten Bäumen.