Dieser Kurs vermittelt einen Überblick über verschiedene Themenbereich der Algorithmik anhand einer Auswahl von Materialien zu exakten, geometrischen, randomisierten und Approximationsalgorithmen sowie zu fortgeschrittenen Datenstrukturen. Als solcher, dient dieser Kurs als eine Basis für die dazugehörigen Mastervorlesungen. Der Kurs behandelt Verbesserungen von klassichen Algorithmen sowie Ansätze um NP-schwere Probleme anzugehen. Diese Ansätze reichen vom Verständnis "guter" Algorithmen, die solche Probleme exakt lösen, über effiziente Algorithmen, die solche Probleme approximieren, bis hin zu randomisiereten Ansätzen, welche im Erwartungswert gut funktionieren. Im Zuge dessen werden wir einige interessante Datenstrukturen kennenlernen, welche hierfür ausgenutzt werden können.