Die Lehrveranstaltung vermittelt Theorie und Praxis der Programmierung von Software am Beispiel der Sprachen Java und Prolog.
Diskutiert werden Algorithmen und Datenstrukturen zum Sortieren und Suchen, Graphenalgorithmen, Algorithmen und Datenstrukturen zur Implementierung objekt-orientierter Sprachen sowie die deklarative Programmierung. Diese Inhalte werden in den allgemeineren Kontext der Softwareproduktion eingebettet.
Die Vorlesungsinhalte umfassen unter anderem:
Objektorientierte Programmierung
Typen, Module, Klassen und Objekte
Einführung in die Sprache Java
Analyse von Algorithmen
Modultest und Test-Driven Development
Datentypen in Java
Elementare & optimierte Sortieralgorithmen
Datenstrukturen und Algorithmen zur Suche
Logische Programmierung mit Prolog
Objektorientierter Entwurf und Programmierung | 00:57:24 | |
---|---|---|
Objektorientierter Entwurf | 00:08:49 | |
Objektorientierte Programmierung | 00:10:06 | |
Vererbung | 00:13:29 | |
Unit 3b | 00:13:10 | |
Charakteristika von Objekten | 00:11:50 |
Freispeicherverwaltung | 01:22:29 | |
---|---|---|
Organisatorisches | 00:01:26 | |
Einführung | 00:07:28 | |
malloc & free | 00:35:30 | |
Automatische Speicherverwaltung | 00:12:36 | |
Garbage Collection | 00:25:29 |
Typen, Module, Klassen, Objekte | 01:30:00 | |
---|---|---|
Abstrakte Datentypen in C | 00:04:39 | |
Objekte, Klassen, Metaklassen | 00:24:40 | |
Polymorphie und Vererbung | 00:16:28 | |
Vererbung in C | 00:24:44 | |
Makros | 00:19:29 |
Java | 01:26:34 | |
---|---|---|
Java Geschichte | 00:19:29 | |
Lexik | 00:15:26 | |
Datentypen, Referenztypen, Variablen | 00:26:11 | |
Arrays | 00:11:49 | |
Methoden und Klassen | 00:13:39 |
Java (2) | 01:24:53 | |
---|---|---|
Klassen | 00:43:51 | |
static | 00:06:10 | |
Zugriffsteuerung & Überladung | 00:14:46 | |
Konstruktoren | 00:10:54 | |
Programme & Java Werkzeugkette | 00:09:12 |
Java (3) | 01:23:54 | |
---|---|---|
Java-Werkzeugkette & Pakete | 00:15:25 | |
java.lang | 00:12:13 | |
Ausdrücke | 00:03:50 | |
Anweisungen | 00:12:46 | |
Konstante Ausdrücke | 00:16:43 | |
Klassen | 00:13:04 | |
Typenkompatibilität und Polymorphie | 00:09:53 |
Java & Analyse von Algorithmen | 01:28:20 | |
---|---|---|
final-Methoden | 00:03:47 | |
Abstrakte Klassen und Methoden | 00:11:19 | |
Schnittstellen | 00:05:01 | |
Ausnahmebehandlung | 00:33:13 | |
Weitere Java-Konzepte | 00:08:45 | |
Analyse von Algorithmen | 00:26:15 |
Analyse von Algorithmen | 01:28:02 | |
---|---|---|
Vernetzungsprobleme - ein Beispiel | 00:44:27 | |
Empirische Analyse | 00:05:56 | |
Mathematische Analyse | 00:28:47 | |
Komplexitätsklassen | 00:08:52 |
Modultests & JUnit | 01:23:14 | |
---|---|---|
Einführung | 00:08:34 | |
Grundlagen & Terminologie | 00:20:12 | |
Test-Driven Development | 00:05:50 | |
Modultests mit JUnit | 00:28:52 | |
Fragen, Beispiele, ... | 00:19:46 |
Datentypen in Java | 01:30:10 | |
---|---|---|
Primitive Datentypen | 00:13:48 | |
Objekt-Typen | 00:06:01 | |
Strings | 00:15:09 | |
Datentypen | 00:25:38 | |
Ordnungsrelationen | 00:07:45 | |
Listenoperationen | 00:21:49 |
Datentypen in Java (2) | 01:28:28 | |
---|---|---|
Prüfung/Übung | 00:05:24 | |
Beispiel Theoretische Analyse | 00:35:35 | |
Beispiel Josephus-Auswahl | 00:24:22 | |
Sortieren von Listen | 00:23:07 |
Elementare Sortieralgorithmen | 01:22:16 | |
---|---|---|
Einführung | 00:08:14 | |
Sortieren | 00:19:26 | |
Selection Sort | 00:10:17 | |
Insertion Sort | 00:10:21 | |
Bubble Sort | 00:07:00 | |
Shellsort | 00:21:59 | |
Zusammenfassung | 00:04:59 |
Optimierte Sortieralgorithmen | 01:25:32 | |
---|---|---|
Beispiel Testfall | 00:32:53 | |
Einführung | 00:12:26 | |
Quicksort | 00:09:33 | |
Quicksort: Partitionierung | 00:30:40 |
Optimierte Sortieralgorithmen (2) | 01:32:06 | |
---|---|---|
Quicksort | 00:10:44 | |
Mergesort | 00:27:53 | |
Heaps | 00:41:53 | |
Radixsort | 00:11:36 |
Optimierte Sortieralgorithmen & Suchen | 01:10:28 | |
---|---|---|
Radixsort | 00:13:15 | |
LSD-Sortierung | 00:09:29 | |
Suchen: Einführung | 00:04:01 | |
Symboltabellen | 00:18:20 | |
Binäre Suchbäume | 00:25:23 |
Code-Review & Suchen | 01:28:29 | |
---|---|---|
Zur Übung | 00:15:25 | |
Code Review: Hintergrund | 00:21:09 | |
Arbeitsweise der Gutachter | 00:07:14 | |
Suchen - Wiederholung | 00:44:41 |
Suchen | 01:26:27 | |
---|---|---|
Einfügen in Wurzel | 00:11:09 | |
Balancierte Bäume | 00:13:32 | |
2-3-4 Bäume | 00:07:34 | |
Rot-Schwarz-Bäume | 00:07:10 | |
AVL-Bäume & Skiplisten | 00:11:52 | |
Hash-Tabellen | 00:27:26 | |
Hashtabellen und Binäre Suchbäume | 00:07:44 |
Prolog | 01:23:21 | |
---|---|---|
Einführung | 00:09:02 | |
Was ist Prolog? | 00:22:04 | |
Beispiel: Listenverkettung | 00:14:30 | |
Anwendungsgebiete | 00:09:50 | |
Fakten | 00:23:57 | |
Boolesche Algebra | 00:03:58 |
Prolog - Regeln | 01:28:29 | |
---|---|---|
Regeln | 00:23:20 | |
Syntax | 00:10:17 | |
Operatoren | 00:10:07 | |
Strukturen | 00:14:52 | |
Arithmetik | 00:12:45 | |
Listen | 00:00:00 |
Prolog (3) | 01:02:12 | |
---|---|---|
Listenoperationen | 00:13:21 | |
Cut | 00:28:44 | |
Weitere Prolog-Funktionen | 00:12:19 | |
Zusammenfassung | 00:07:48 |