Fortgeschrittene Algorithmen und Programmierung
Prof. Dr. Alexandra Mikityuk
HTW Berlin
Von „Was ist ein Algorithmus?" über Sortieren, Komplexität, KI & Sicherheit bis zu Graphen, Dijkstra und Automatisierung — und immer die passenden C-Werkzeuge dazu.
Was sind Algorithmen & Datenstrukturen — und warum beides zusammengehört.
Datentypen in C: int, double, char, Arrays — der Wiedereinstieg nach den Grundlagen.
Ein Algorithmus = endliche, eindeutige Schritt-für-Schritt-Anleitung. Erst denken (Pseudocode), dann coden.
„Karten auf dem Tisch" — einfache Verfahren (Selection/Insertion), O(n²).
Aufwand messen statt raten: 1, log n, n, n log n, n², 2ⁿ.
Teile und herrsche (Merge Sort) — O(n log n), deutlich schneller.
| Klasse | Name | Beispiel aus dem Kurs |
|---|---|---|
| O(1) | konstant | Array-Zugriff a[i] |
| O(log n) | logarithmisch | Binäre Suche · Heap-Operation |
| O(n) | linear | Lineare Suche · BFS |
| O(n log n) | „linearithmisch" | Merge Sort · Dijkstra mit Heap |
| O(n²) | quadratisch | Bubble/Insertion Sort · Dijkstra naiv |
| O(2ⁿ) | exponentiell | alle Teilmengen durchprobieren |
Wie moderne KI-Systeme und Agenten arbeiten — und wie sie über MCP an Werkzeuge und Daten kommen.
Ein Agent, der Aufgaben zerlegt und Schritt für Schritt abarbeitet, ist selbst eine Art Algorithmus — nur auf einer höheren Ebene.
Passwörter nie im Klartext. Hash (Einbahnstraße), Salt gegen Rainbow-Tables, langsame Verfahren (bcrypt).
Symmetrisch (ein Schlüssel) vs. asymmetrisch (öffentlich/privat) — wie Daten unterwegs geschützt werden.
Knoten + Kanten, Adjazenzmatrix & -liste, Zeiger, BFS (kürzeste Wege in Schritten).
Gewichtete Wege, Relax, greedy — gebaut mit struct & malloc.
Dijkstra in C, mit Priority Queue beschleunigt, plus Automatisierung.
Immer zuerst eine korrekte Lösung — dann mit Big-O bewerten und optimieren (Sortieren, Dijkstra).
Arrays → Funktionen → struct → Zeiger → malloc. Jede VL ein neues Werkzeug.
Pseudocode zuerst — die Idee zählt, die Syntax (C/Python/…) ist austauschbar.
->, malloc/freeMischung aus Verständnisfragen, Code-Tracing und kleinen Aufgaben. Nutzt die Probeklausur in Moodle!
Erst die Idee aufschreiben (Pseudocode), dann Code. Bei Trace-Aufgaben Schritt für Schritt eine Tabelle führen.
Leichte Punkte zuerst. Nicht an einer Aufgabe festbeißen — markieren und weiter.
O(n log n) und Bubble Sort O(n²)?. vs. Pfeil -> — wann was?Ein Semester Algorithmen — vom Pseudocode bis zum Navi. 🧭
Prof. Dr. Alexandra Mikityuk
HTW Berlin · Büro Raum 308
Viel Erfolg bei der Klausur — ihr habt alle Werkzeuge dafür. 💪