- Algorithmen 1, Vorlesung, SS 2019
- Algorithmen 2, WS 2018/19
- Softwaretechnik 1, Vorlesung, SS 2017
- Softwaretechnik 1, Vorlesung, SS 2019
- Softwaretechnik 1, Vorlesung, SS 2021
Algorithmen 1, Vorlesung, SS 2019
Algorithmen 1, Vorlesung, SS 2019
Beschreibung:
- Ergebnisüberprüfung (Checkers) und Zertifizierung
- Asymptotische Algorithmenanalyse: worst case, average case, probabilistisch, amortisiert
- Grundbegriffe des Algorithm Engineering
- Effektive Umsetzung verketteter Listen
- Unbeschränkte Arrays, Stapel, und Warteschlangen
- Hashtabellen: mit Verkettung, linear probing, universelles Hashing
- Sortieren: effiziente Algorithmen (mergesort, quicksort), untere Schranken, radix sort
- Selektion: quickselect
- Prioritätslisten: binäre Heaps, addrssierbare Prioritätslisten
- Sortierte Folgen/Suchbäume: Wie unterstützt man alle wichtigen Operationen in logarithmischer Zeit
- Graphen (Repräsentation, Traversierung: Breitensuche, Tiefensuche, Anwendungen (topologisches Sortieren,…), Kürzeste Wege: Dijkstra’s Algorithmus, Bellman
- Ford Algorithmus, Minimale Spannbäume: Kruskals Algorithmus, Jarnik-Prim Algorithmus)
- Generische Optimierungsalgorithmen (Greedy, Dynamische Programmierung, systematische Suche, Lokale Suche)
Lehrinhalt:
- Grundbegriffe des Algorithm Engineering
- Asymptotische Algorithmenanalyse (worst case, average case, probabilistisch, amortisiert)
- Datenstrukturen z. B. Arrays, Stapel, Warteschlangen und Verkettete Listen
- Hashtabellen
- Sortieren: vergleichsbasierte Algorithmen (z.B. quicksort, insertionsort), untere Schranken, Linearzeitalgorithmen (z.B. radixsort)
- Prioritätslisten
- Sortierte Folgen,Suchbäume und Selektion
- Graphen (Repräsentation, Breiten-/Tiefensuche, Kürzeste Wege, Minimale Spannbäume)
- Generische Optimierungsalgorithmen (Greedy, Dynamische Programmierung, systematische Suche, Lokale Suche)
- Geometrische Algorithmen
Videos:
- 01: Algorithmik, Langzahl-Multiplikation, Addition, Pseudocode
- 02: Schulalgorithmus, O-Kalkül, Karatsuba-Ofman-Multiplikation
- 03: Korrektheit von Algorithmen, Asymptotische Laufzeiten
- 04: O-Kalkül, Invarianten, Laufzeiten (Teile und Herrsche Ansatz)
- 05: Laufzeitanalyse, Rekurrenzen, Master Theorem, Folgen als Felder und Listen
- 06: Folgen, Verkettete Listen, Unbeschränkte Felder, Account-Methode
- 07: Stapel, Warteschlangen, Hashing, Kollisionen
- 08: Skip List, Amortisierte Liste, Aggregat Methode, Hotlist, Duplikaterkennung
- 09: Kollisionen, Universelles Hashing, Kryptographische Hashfunktionen, Einfache Sortieralgorithmen
- 10: Einfache Sortieralgorithmen, Sortieren durch Mischen, Quicksort
- 11: Halbrekursive Implementierung, Quicksort vs. Mergesort, Ganzzahliges Sortieren
- 12: Adaptives Sortieren, Insertion Sort, Natural Merge Sort, Split Sort
- 13: Prioritätslisten, Binäre Heaps, Adressierbare Prioritätslisten
- 14: Sortierte Folgen, Binäre Baumsuche, Naives Einfügen, Initialisierung
- 15: Bucket Sort Spezial, Bucket Queue, Binary Radix Heap
- 16: Locate, Graphen, Kantenfolgenrepräsentation, Adjazenzfelder
- 17: Kantenfolgenrepräsentation, Adjazenzfelder, Adjazenzlisten, Adjazenz-Matrix, Graph-Traversierung
- 18: Dijkstras Algorithmus, Graph-Traversierung, Kürzeste Wege, Tiefensuche
- 19: Dijkstras Algorithmus, Korrektheit,Bellman-Ford Algorithmus, Kante relaxieren
- 20: Bellman-Ford Algorithmus, Transit-Node Routing
- 21: Jarnik-Prim/Kruskals-Algorithmus
- 22: Generische Optimierungsansätze
- 23: Dijkstras- und Bellmann Ford Algorithmus, Minimale Spannbäume, Steinerbäume
Algorithmen 2, WS 2018/19
Videos:
- 01: Algorithm Theory
- 02: Datenstrukturen, Pairung Heaps, Fibonacci Heaps, Union-by-Rank
- 03: Gray-/JouleSort, Pairing Heaps, Dijkstra’s Algorithmmus
- 04: Dijkstra’s Algorithmus, Radix-Heaps, Bucket-Queue, Lufzwit Dijkatra, Fibanacci Heaps
- 05: Monotone ganzzahlige Prioritätslisten, Radix-Heaps, Knotenpotenziale
- 06: DFS, Bucket Queues, Analyse für MST
- 07: Schrumpfgraph, SCC Berechnung, Linear programming, Residual Graph, Ford Fulkerson Algorithm
- 08: Ford Fulkerson Algorithm, Blocking Flows, Dijkstras Algorithmus, Floyd Warshall
- 09: Ford Fulkerson, Dinitz Algorithm,blocking flows, Dinitz analysis, Pre-flow-push algorithms
- 10: Preflow-Push Algorithms, Pratial Correctness, FIFO Preflow push, Residualgraph
- 11:Ford Fulkerson Algorithm, Blocking Flows, Random Graphs, FIFO Preflow push
- 12: Randomisierte Algorithmen, Cuckoo Hashing, Space Efficient Cuckoo Hashing
- 13: Cuckoo Hashing, Das Sekundärspeichermodell, Mittelgroße PQs, Analyse – I/Os
- 14: Spannbäume, Matching, Monte Carlo Simulation, Matrix-Matrix Multiplikation, Coupon Collector
- 15: Der Approximationsfaktor, Pseudopolynomielle Algorithmen, 9 Fixed-Parameter-Algorithmen
- 16: Naive tiefenbeschränkte Suche, Kernbildung für Vertex Cover, Parallele Algorithmen,
- 17: Analyse paralleler Algorithmen, Hyperwürfelalgorithmus, Paralleles Sortieren
- 18: Paralleles Sortieren, Parallele Algorithmen, Parametrisierte Algorithmen
- 19: Geometrische Algorithmen, Streckenschnitt, Überlappungen
- 20: Streckenschnitt, Konvexe Hülle, Geometrische Methoden, Übung
- 21: Kleinste einschließende Kugel, Wavelet Tree
- 22: Wavelet Tree, Onlinealgorithmen, Paging
- 23: Strings sortieren, Suffixe sortieren, Knuth-Morris-Pratt
- 24: Suffix-Baum, Alphabet-Modell, Übung
- 25: Suffixtabellen, Differenzenüberdeckungen, LCP-Array, Textkompression
- 26: LCP-Array, Lempel-Ziv Kompression, Burrows-Wheeler-Transformation
- 27: SAT Solving, Union-find merging, Graph Contraction, Label Propagation
- 28: Übung: In-place Multikey Quicksort, Partitionierung, Suffix-Array, LCP-Array
- 29: Algorithm Engineering, Fortgeschrittene Datenstrukturen, Fortgeschrittene Graphenalgorithmen
- 30: Approximationsalgorithmen, Pseudopolynomielle Algorithmen, Hyperwürfelalgorithmus
Algorithmen 2, Vorlesung, WS 2019/20
Videos:
- 01: Rolle der Algorithmik, Algorithm Engineering, Algorithm Libraries
- 02: Experimental Methodology, Adressierbare Prioritätenlisten, Pairing Heaps
- 03: Fortgeschrittene Datenstrukturen, Binomialbäume, Fortgeschrittene Graphenalgorithmen
- 04: Binomialbäume, Radix-Heaps, deleteMin-Operationen
- 05: All-Pairs Shortest Paths, Knotenpotentiale, Routenplanung
- 06: Repräsentation offener Komponenten, Übung: Spezielle Priority Queues, Radix Heaps
- 07: Maximum Flows and Matchings, s-t Cuts, Ford Fulkerson Algorithm, Dinitz Algorithm
- 08: Computer Blocking Flows, Übung: Kürzeste-Wege-Suche, Bidirektionale Suche, A*-Suche
- 09: Ford Fulkerson Algorithm, Level Function, Partial Correctness, FIFO Preflow push
- 10: Flows and Matchings, MFIFO Modified FIFO Selection Rule, Timings: CG 1, CG2, AMO
- 11: Randomisierte Algorithmen: Sort Checking, Hashing; Externe Algorithmen
- 12: Externe Algorithmen: Externe Prioritätslisten, Übung: Potentialmethode, preflow-push Algorithmus
- 13: Approximationsalgorithmen: Approximationsfaktor; Pseudopolynomielle Algorithmen
- 14: Fixed-Parameter-Algorithmen, Naive tiefenbeschränkte Suche, Kernbildung für Vertex Cover, Übung
- 15: Fixed-Parameter-Algorithmen, Parallele Algorithmen, Hyperwürfelalgorithmus
- 16: Paralleles Sortieren: Anfänger- und Theoretiker-Parallelisierung, Mehrwegmischen, Übung
- 17: Geometrische Algorithmen, Übung: Approximationsalgorithmen, Parametrisierte Algorithmen
- 18: Streckenschnitt, 2D Konvexe Hülle, Kleinste einschließende Kugel, 2D Bereichssuche
- 19: Bitvektoren, Übung: Geometrische Algorithmen, Bitvektoren, 2D Range Queries, Linienschnitt
- 20: Onlinealgorithmen, Paging algorithms, Conservative algorithms, Randomized algorithms
- 21: Stringology (Zeichenkettenalgorithmen): Strings sortieren, Knuth-Morris-Pratt, Border-Array
- 22: Stringology: Notation, Suffixe sortieren, Suffixbaum, Übung: Online Algorithmen
- 23: SA mit Präfix Verdopplung, Rekursion, COBS
- 24: LCP-Array, Verlustfreie Textkompression, Übung: in-place Multikey Quicksort, LCP-Array
- 25: Datenkompression, Lempel-Ziv Kompression, Burrows Wheeler Transformation, Backward Search
- 26: Efficient Document Retrieval on General Sequences
- 27: Pairing Heaps, Bucket Queue, Residual Graph, Randomisierte Algorithmen
- 28: Approximationsalgorithmen, Fixed-Parameter-Algorithmen, Parallele Algorithmen, Stringology
Theoretische Grundlagen der Informatik, Vorlesung, WS 2019/20
Videos:
- 01: Formale Sprachen, Reguläre Sprachen, Reguläre Ausdrücke, Endliche Automaten
- 02: Kontextfreie Grammatiken, Nichtderterministische endliche Automaten, Potenzmengenkonstruktion
- 03: Entfernen von ɛ-Übergängen, Satz von Kleene, Pumping-Lemma für reguläre Sprachen
- 04: Pumping-Lemma für reguläre Sprachen, Verallgemeinertes Pumping-Lemma, Äquivalenzklassenautomat
- 05: Äquivalenz, Rechtsinvarianz und Index, Satz von Nerode, Registermaschine, Turingmaschine
- 06: Turing-Maschine, berechenbar/totalrekursiv, Gödelnummer, Diagonalsprache
- 07: Satz von Rice, Post’sches Korrespondenzproblem, Kodierungsschemata, Entscheidungsproblem
- 08: Nichtdeterministische Turingmaschine, Polynomiale Transformation, Satz von Cook
- 09: Die Probleme 3SAT, 2SAT, MAX2SAT, CLIQUE, COLOR und EXACT COVER
- 10: Die Probleme SUBSET SUM, PARTITION und KNAPSACK, Polynomielle Hierarchie, Suchprobleme
- 11: Problem INTEGER PROGRAMMING, Pseudopolynomiale Algorithmen, Absolute Approximationsalgorithmen
- 12: Metrisches TSP, Approximationsschemata, Maximierungsprobleme, Optimierungsprobleme
- 13: Grammatiken, Chomsky-Hierarchie
- 14: Pumping-Lemma und Ogden´s Lemma für kontextfreie Sprachen, Eigenschaften kontextfreier Sprachen
- 15: Eigenschaften kontextfreier Sprachen, Greibach-Normalform, Kellerautomaten
- 16: Kellerautomaten, Greibach-Normalform, Sprache der korrekten Rechenwege
- 17: Informationstheorie, Entropie, Kodierungsbäume, Lauflängenkodierung
- 18: Paritätscodes, Kreuzsicherung, Block-Codes, Hamming-Distanz und Fehlerkorrektur