Die Lehrveranstaltung vermittelt Theorie und Praxis der Programmierung von Software am Beispiel der Sprachen C, Java und Prolog.
Diskutiert werden Algorithmen und Datenstrukturen zum Sortieren und Suchen, Algorithmen und Datenstrukturen zur Implementierung objekt-orientierter Sprachen sowie die deklarative Programmierung. Diese Inhalte werden im allgemeineren Kontext der Softwareproduktion eingebettet.
Sortieren: Einfache Algorithmen | 01:19:18 | |
---|---|---|
Sortieren | 00:12:56 | |
Aufsteigende Sortierung | 00:25:54 | |
Selection Sort | 00:20:08 | |
Insertion Sort | 00:20:20 |
Quicksort und Mergesort | 00:48:31 | |
---|---|---|
Quicksort | 00:10:55 | |
Quicksort: Rekursion | 00:15:30 | |
Quicksort: Partitionierung | 00:10:29 | |
Optimierung: Kleine Mengen | 00:11:37 |
Modultests | 01:24:32 | |
---|---|---|
java.util.Map | 00:14:50 | |
IdentityHashMap | 00:16:03 | |
Modultests | 00:11:49 | |
Probleme | 00:15:13 | |
Testen mit JUnit | 00:13:43 | |
Praxisbeispiel: JUnit | 00:12:54 |
Radixsort | 01:02:02 | |
---|---|---|
Heapsort | 00:19:13 | |
Radixsort | 00:18:35 | |
Leistungsbewertung | 00:15:50 | |
Binäre Suchbäume | 00:08:24 |
Code-Durchsicht | 01:16:05 | |
---|---|---|
Übersicht | 00:13:10 | |
Binäre Suchbäume | 00:15:46 | |
2-3-4-Bäume | 00:14:26 | |
AVL-Bäume | 00:10:19 | |
Prolog | 00:22:24 |
Programmieren in Prolog | 01:30:02 | |
---|---|---|
Programmieren in Prolog | 00:15:32 | |
Variablen | 00:13:51 | |
Regeln | 00:21:32 | |
Gleichheit und Unifikation | 00:18:07 | |
Generatoren | 00:08:49 | |
Cut | 00:12:11 |
Priority Queues and Heapsort | 01:21:41 | |
---|---|---|
Mergesort | 00:16:52 | |
Mischen im selben Speicher | 00:11:03 | |
Top-Down Mergesort | 00:15:07 | |
Verbesserung: Mischen ohne Kopieren | 00:12:35 | |
Priority Queue | 00:14:06 | |
Erzeugung von Heaps | 00:11:58 |
Hash-Tabellen | 01:20:16 | |
---|---|---|
Anwendungen des Cut: Optimierung | 00:11:44 | |
Anwendungen des Cut: cut-fail | 00:15:45 | |
Hash-Tabellen | 00:14:52 | |
Hashfunktionen (2) | 00:16:52 | |
Perfektes Hashing | 00:11:33 | |
Offene Adressierung: Löschen | 00:09:30 |
Einführung und Programmiersprache C | 01:27:49 | |
---|---|---|
Einführung in die Vorlesung | 00:23:43 | |
Programmiersprache C | 00:15:26 | |
Programmstruktur | 00:15:05 | |
Programmstruktur (2) | 00:15:16 | |
Semantik | 00:18:19 |
Semantik | 01:26:29 | |
---|---|---|
Semantik | 00:25:36 | |
Anweisungen | 00:19:34 | |
Zusammengesetzte Typen | 00:15:06 | |
Arrays und Pointer | 00:14:09 | |
Funktionen | 00:12:04 |
Variablen, Ausdrücke, Speicherverwaltung | 01:31:23 | |
---|---|---|
Variablen | 00:17:52 | |
Standardbibliothek | 00:25:31 | |
Zeichenkettenverarbeitung | 00:17:27 | |
Ein-/Ausgabe | 00:19:09 | |
Fehlerbehandlung bei Ein-/Ausgabe | 00:11:24 |
Arbeitsweise des Präprozessors | 01:27:03 | |
---|---|---|
Arbeitsweise des Präprozessors | 00:28:35 | |
Bibliotheken | 00:16:07 | |
Darstellung von Methoden | 00:15:22 | |
Schnittstellen | 00:13:19 | |
Allokator für Objekte fester Größe | 00:13:40 |
Polymorphie und spätes Binden | 01:26:05 | |
---|---|---|
Darstellung von Freispeicherlisten | 00:17:34 | |
Allokation | 00:16:34 | |
Polymorphie und spätes Binden | 00:15:29 | |
Realisierung von Methoden | 00:20:05 | |
Funktionszeiger | 00:10:26 | |
Virtuelle Methodentabellen in C | 00:05:57 |
Spätes Binden und automatische Speicherverwaltung | 01:25:11 | |
---|---|---|
Makros | 00:14:59 | |
Erreichbarkeit und Lebendigkeit | 00:15:05 | |
Referenzzählung | 00:15:39 | |
Garbage Collection | 00:20:39 | |
Copying GC | 00:11:46 | |
Varianten | 00:07:03 |
Weitere Konzepte | 01:26:07 | |
---|---|---|
Copying GC | 00:12:09 | |
Verfolgung von Referenzen | 00:11:45 | |
Weitere Konzepte | 00:21:34 | |
Parametrierte Typen | 00:20:06 | |
Empirische Analyse | 00:15:09 | |
Statistische Streuung | 00:05:24 |
Empirische Analyse | 01:26:16 | |
---|---|---|
Empirische Analyse | 00:23:24 | |
Grundlagen der Analyse | 00:25:45 | |
Logarithmus und ganze Zahlen | 00:12:36 | |
Bestimmung der asymptotischen Komplexität | 00:15:07 | |
Binäre Suche | 00:09:24 |
Datentypen in Java | 01:15:36 | |
---|---|---|
Primitive Typen in Java | 00:08:51 | |
Strings | 00:23:22 | |
Objekttypen | 00:15:15 | |
Datentypen | 00:19:05 | |
java.util.Set | 00:09:03 |
Java.util.List | 01:13:51 | |
---|---|---|
Abstrakte Datentypen | 00:11:36 | |
Java.util.List | 00:19:04 | |
Komplexität einer Add-Operation | 00:25:30 | |
Java.util.-iterator | 00:17:41 |