\( \newcommand{\data}{\textnormal{data}} \newcommand{\lower}{\textnormal{lower}} \newcommand{\upper}{\textnormal{upper}} \newcommand{\array}{\textnormal{array}} \newcommand{\depth}{\textnormal{depth}} \newcommand{\height}{\textnormal{height}} \newcommand{\BST}{\textnormal{BST}} \newcommand{\floor}[1]{\left\lfloor #1 \right\rfloor} \newcommand{\ceil}[1]{\left\lceil #1 \right\rceil} \newcommand{\lognpone}{\ceil{\log_2(n+1)}} \newcommand{\bitsize}{\textnormal{bitSize}} \newcommand{\mult}{\textnormal{mult}} \newcommand{\inneighbors}{\textnormal{inNeighbors}} \newcommand{\outneighbors}{\textnormal{outNeighbors}} \newcommand{\neighbors}{\textnormal{neighbors}} \newcommand{\indeg}{\textnormal{indeg}} \newcommand{\outdeg}{\textnormal{outdeg}} \newcommand{\scc}{\textnormal{scc}} \newcommand{\R}{\mathbb{R}} \newcommand{\val}{\textnormal{val}} \newcommand{\dist}{\textnormal{dist}} \newcommand{\flows}{\textnormal{flows}} \)

Dieses Vorlesungsskript ist der zentrale "Landeplatz" für alle Materialien, Beispiele, Code, Übungsaufgaben.

Literatur und Software

  • Algorithms von Dasgupta, Papadimitriou und Vazirani.
  • Das Buch Introduction to Algorithms bzw. Algorithmen - eine Einführung von Cormen, Leiserson, Rivest und Stein (im Volksmund einfach CLRS genannt). Wenn Sie sich im Hochschulnetz befinden, können Sie bei de Gruyter auf eine pdf-Version zugreifen.
  • Java. Wenn wir kompliziertere Algorithmen implementieren, dann vorzugsweise in Java.
  • Python. Sie sollten auf Ihrem Rechner oder auf einem Hochschulrechner mit Python programmieren können. Gerade, wenn wir Algorithmen schreiben, die mit sehr großen Zahlen arbeiten müssen, dann ist Python bequemer als Java.

Überschneidung mit anderen Veranstaltungen

Es wird sicherlich leichte Überschneidungen mit dem Modul Algorithmen und Programmierung von Herrn Professor Matthias Werner geben. Dabei liegt der Fokus in dieser Veranstaltung weniger auf Aspekten der Implementierung und Programmierung sondern mehr auf den Ideen, die den Algorithm zugrunde liegenden und darauf, wie man ihre Korrektheit zeigt und ihre Laufzeit analysiert. In den hinteren Kapiteln, z.B. Netzwerkflüsse, wird es Überschneidungen mit dem Modul Einführung in die Diskrete Mathematik von Herrn Professor Helmberg geben, die aber wohl nur ein Teil von Ihnen besuchen wird.