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.
Übersicht - Programmiertechnik II | 00:58:40 | |
---|---|---|
Praktische Informatik | 00:03:06 | |
Konzepte Objektorientierter Programmierung | 00:16:16 | |
Programmiersprache Java | 00:10:37 | |
Suchen | 00:16:17 | |
Objektorientierter Entwurf und Programmierung | 00:12:22 |
Objektorientierter Entwurf und Programmierung | 01:24:51 | |
---|---|---|
Modulare Programmierung | 00:14:47 | |
Objektorientierte Programmierung als Lösung | 00:16:05 | |
Objekte als programmiersprachliche Einheiten | 00:13:41 | |
Open-Closed-Principle | 00:17:22 | |
Granularitätsprinzip | 00:14:14 | |
Weitere Konzepte Objektorientierter Programmierung | 00:08:42 |
Typen, Module, Klassen, Objekte | 01:25:09 | |
---|---|---|
Ablauf | 00:14:06 | |
Objektorienierte Konstruktion neuer Datentypen | 00:15:20 | |
Darstellung der Objektidentität | 00:06:43 | |
Objekte, Klassen, Metaklassen | 00:17:10 | |
Klassenvariablen, Instanzvariablen | 00:20:46 | |
Freispeicherverwaltung | 00:11:04 |
Freispeicherverwaltung & Polymorphie und Vererbung | 01:24:03 | |
---|---|---|
Freispeicherverwaltung | 00:17:08 | |
Darstellung von Freispeicherlisten | 00:15:22 | |
Weitere Aspekte | 00:09:49 | |
Spätes Binden | 00:15:59 | |
Realisierung von Vererbung | 00:15:51 | |
Methoden in C | 00:09:54 |
Objekte in C - Garbage Collection | 01:26:46 | |
---|---|---|
Virtuelle Methodentabellen in C | 00:12:05 | |
Makros | 00:24:38 | |
Speichermüll | 00:08:24 | |
Referenzzählung | 00:13:45 | |
Garbage Collection | 00:16:18 | |
Verfolgung von Referenzen | 00:11:36 |
Mehrfachvererbung, Interfaces & Exceptions | 00:24:28 | |
---|---|---|
Mehrfachvererbung | 00:05:30 | |
Interfaces | 00:10:54 | |
Ausnahmebehandlung | 00:08:04 |
Java Geschichte, Lexik, Datentypen & Variablendeklarationen | 01:26:13 | |
---|---|---|
Warum Java? | 00:10:24 | |
Geschichte | 00:16:13 | |
Programmierbeispiele I | 00:13:08 | |
Programmierbeispiele II | 00:09:21 | |
Lexik | 00:18:44 | |
Datentypen | 00:18:23 |
Variablen, Methoden und Klassen & Zugriffssteuerung | 01:28:04 | |
---|---|---|
Variablen | 00:18:02 | |
Class Object | 00:13:36 | |
Methoden | 00:07:56 | |
Klassen | 00:23:16 | |
Klassen (2) | 00:10:32 | |
Static | 00:14:42 |
Konstruktoren - Blöcke | 01:24:03 | |
---|---|---|
Nachtrag | 00:23:01 | |
Konstruktoren | 00:18:42 | |
Java-Werkzeugkette | 00:10:26 | |
Pakete | 00:16:14 | |
Ausdrücke | 00:08:43 | |
Blöcke | 00:06:57 |
Klassen, Vererbung, späte Bindung & Ausnahmebehandlung | 01:22:45 | |
---|---|---|
Übungsaufgaben | 00:04:56 | |
while-Schleife | 00:17:29 | |
Vererbung | 00:17:48 | |
Typkompatibilität und Polymorphie | 00:11:48 | |
Schnittstellen | 00:23:11 | |
Ausnahmebehandlung | 00:07:33 |
Analyse von Algorithmen | 01:26:35 | |
---|---|---|
Ablauf | 00:08:25 | |
Verwenden vs. Implementieren | 00:17:39 | |
Quickfind Java | 00:13:52 | |
Laufzeitabschätzung | 00:20:11 | |
Typische Laufzeiten | 00:14:20 | |
Funktionelle Näherungen | 00:12:08 |
TDD & Testen mit JUnit | 01:23:04 | |
---|---|---|
Wiederholung pt. 1 | 00:17:25 | |
Wiederholung pt. 2 | 00:07:10 | |
Modultest mit JUnit | 00:16:38 | |
Begriffe | 00:10:54 | |
Automatisierte Tests | 00:06:12 | |
Ein Beispiel: StringUtils | 00:16:35 |
Testen mit JUnit & Datentypen in Java | 01:23:18 | |
---|---|---|
JUnit: Bestimmen des Testergebnisses | 00:15:56 | |
Tests abbrechen | 00:14:09 | |
Parametrisierung von Tests | 00:08:22 | |
Datentypen in Java | 00:14:45 | |
Arraytypen | 00:15:11 | |
Implementierungsstrategie: Array | 00:14:55 |
Elementare Sortieralgorithmen | 01:29:55 | |
---|---|---|
Sortieren | 00:15:10 | |
Abstrakte Datentypen | 00:20:27 | |
Sortieren (3) | 00:13:40 | |
Insertion Sort | 00:13:18 | |
Bubble Sort | 00:11:14 | |
Shellsort | 00:16:06 |
Quicksort & Mergesort | 01:25:27 | |
---|---|---|
Sir Charles Antony Richard Hoare | 00:10:02 | |
Communicating Sequential Processes | 00:19:16 | |
Quicksort: Grundidee | 00:10:04 | |
Quicksort: Partitionierung | 00:14:06 | |
Analyse von Quicksort | 00:07:55 | |
Mergesort | 00:14:04 | |
Top-Down Mergesort | 00:10:00 |
Priority Queue, Radixsort & Timsort | 01:24:36 | |
---|---|---|
Priority Queue | 00:13:34 | |
Priority Queue: Implementierungsvarianten | 00:19:37 | |
Priority-Queue auf Heap Basis | 00:11:44 | |
Radixsort | 00:21:41 | |
Timsort | 00:14:43 | |
Zusammenfassung | 00:03:17 |
Symboltabellen und binäre Suchbäume | 01:26:53 | |
---|---|---|
Zur Hausaufgabe | 00:03:35 | |
Symboltabellen | 00:19:45 | |
Binäre Suchbäume | 00:23:12 | |
Konstruktion eines binären Suchbaums | 00:16:45 | |
Balancierte Bäume | 00:14:03 | |
2-3-4-Bäume | 00:09:33 |
Datenstrukturen - Hash-Tabellen und Binäre Suchbäume | 01:26:34 | |
---|---|---|
Rot-Schwarz-Bäume | 00:19:40 | |
AVL-Bäume | 00:16:07 | |
Hash-Tabellen | 00:14:22 | |
String-Hashing | 00:15:21 | |
Offene Adressierung | 00:07:39 | |
Dynamische Hashtabellen | 00:13:25 |
Prolog - Einführung | 01:23:50 | |
---|---|---|
Überblick | 00:19:50 | |
Prolog aus logischer Sicht | 00:13:50 | |
Anwendungsgebiete | 00:18:43 | |
Objekte und Beziehungen | 00:07:47 | |
Fakten, Fragen, Variablen und Konjunktionen | 00:11:51 | |
Boolesche Algebra und Syntax | 00:09:35 | |
Operatoren und Programmstruktur | 00:02:14 |
Regeln, Listen & Generatoren | 01:25:21 | |
---|---|---|
Programmstruktur | 00:13:28 | |
Rekursive Strukturen | 00:15:27 | |
Gleichheit und Unifikation | 00:09:21 | |
Arithmetik | 00:19:29 | |
Listen | 00:22:13 | |
Generatoren | 00:05:23 |
Listen, Generatoren & Cut | 01:08:58 | |
---|---|---|
Listenoperationen | 00:21:23 | |
Generatoren | 00:17:16 | |
Cut | 00:22:21 | |
Zusammenfassung | 00:07:58 |