Die Vorlesung vermittelt Theorie und Praxis der Programmierung. Im Mittelpunkt stehen Konzepte und Techniken der Anwendungs- und Bibliotheksentwicklung. In der Vorlesung werden diese Aspekte u.a. anhand der Programmiersprachen C und C++ vermittelt.
Einführung | 01:31:04 | |
---|---|---|
Fachgebiet Computergrafische Systeme | 00:11:04 | |
Organisation | 00:21:49 | |
Literatur | 00:05:59 | |
Themenvorstellung | 00:09:06 | |
Programmieren | 00:05:13 | |
Programmiersprachen | 00:23:14 | |
Was ist Programmiertechnik? | 00:14:39 |
Einführung (2) | 00:52:12 | |
---|---|---|
Algorithmik & Notation | 00:20:19 | |
Ausdrucksfähigkeit & Berechenbarkeit, Korrektheit, Zeitbedarf | 00:14:03 | |
Historie | 00:11:24 | |
Terminologie | 00:06:26 |
Grundkonzepte der Algorithmik - Theorie | 01:22:33 | |
---|---|---|
Algorithmusbegriff | 00:10:47 | |
Formalisierte Algorithmenklassen | 00:21:44 | |
Eigenschaften von Algorithmen | 00:24:17 | |
Entwurfstechniken für Algorithmen | 00:14:16 | |
Formale Sprachen | 00:11:29 |
Praxis am Beispiel von C++ | 01:28:38 | |
---|---|---|
Elementare Operationen | 00:09:16 | |
Variablen - Speicherplätze | 00:24:48 | |
Variablen - Verwaltung | 00:10:18 | |
Zuweisungs-, Arithmetische- und Sequenzoperatoren | 00:05:21 | |
Praktische Beispiele pt. 1 | 00:17:24 | |
Praktische Beispiele pt. 2 | 00:21:31 |
Bausteine für Algorithmen | 01:30:47 | |
---|---|---|
Elementare Operationen | 00:18:45 | |
Sprunganweisungen (goto,break & continue) | 00:17:37 | |
Sprunganweisungen (return) | 00:14:22 | |
Funktionen | 00:31:10 | |
Zum 2. Übungsblatt | 00:08:53 |
Bausteine & Elementare Datentypen für Algorithmen | 01:26:50 | |
---|---|---|
Modularisierungskonstrukte | 00:15:25 | |
Namensraumdeklaration und -nutzung | 00:11:10 | |
Parallelisierungskonstrukte | 00:24:26 | |
Generische Programmierkonstrukte | 00:16:09 | |
Datentypen als Algebren | 00:07:15 | |
Übung | 00:12:25 |
Einführung & Imperatives Programmierparadigma | 01:28:13 | |
---|---|---|
Einführung | 00:15:18 | |
Programmierparadigmen | 00:21:35 | |
Imperatives Programmierparadigma | 00:09:07 | |
Imperative Programmiersprachen | 00:13:38 | |
Zustand | 00:19:33 | |
Prozedurales Programmierparadigma | 00:09:02 |
Imperative Programmierung | 01:23:08 | |
---|---|---|
Fehlermanagement | 00:14:07 | |
Fehler-Handler | 00:12:19 | |
Exeption-Handling | 00:20:05 | |
Catch Anweisung | 00:15:53 | |
Exeption Handling im professionellen Umfeld | 00:06:30 | |
Erläuterungen zur Übung | 00:14:34 |
Funktionale Programmierung | 01:30:15 | |
---|---|---|
Grundlagen | 00:16:26 | |
Funktionen höherer Ordnung | 00:19:35 | |
Beispiel: Invertieren einer Liste | 00:19:07 | |
Funktionale Programmierung | 00:12:20 | |
Funktionale Programmierung mit C++ | 00:22:47 |
Funktionale, logische und genetische Programmierparadigmen | 01:31:41 | |
---|---|---|
Filterfunktion | 00:28:49 | |
Nachtrag zum Function Wrapper | 00:20:28 | |
Terminologie | 00:04:27 | |
Logisches Programmierparadigma | 00:09:58 | |
Deduktiver Algorithmus | 00:18:46 | |
Genetische Programmierung | 00:09:13 |
Suchen in einem Lösungsraum | 01:30:40 | |
---|---|---|
Überblick & Motivation | 00:06:43 | |
Suchen in einem Lösungsraum | 00:05:44 | |
Evolutionärer Algorithmus | 00:09:43 | |
Traveling Salesman Problem | 00:06:54 | |
Evolutionärer TSP-Algorithmus | 00:49:30 | |
Zum Übungsblatt | 00:02:34 | |
Suchen in sortierten Folgen | 00:09:32 |
Suchen und Sortieren | 01:33:00 | |
---|---|---|
Itteratoren | 00:16:30 | |
Suchen in unsortierten Daten | 00:10:01 | |
Ordnungsrelationen | 00:18:04 | |
Beispiel | 00:14:39 | |
Aufwand | 00:15:59 | |
Interpolationssuche | 00:04:24 | |
Sortieren | 00:13:23 |
Sortieren | 01:30:02 | |
---|---|---|
Insertionsort | 00:13:29 | |
Shellsort | 00:26:33 | |
Selectionsort | 00:10:22 | |
Bubblesort | 00:09:14 | |
Mergesort | 00:18:45 | |
Quicksort | 00:11:39 |
Quicksort Algorithmus | 01:14:26 | |
---|---|---|
Quicksort Algorithmus | 00:12:10 | |
Quicksort Implementierung mit Pivot Element | 00:26:57 | |
Auflösen von Funktionstemplates | 00:10:56 | |
Mergesort | 00:12:37 | |
Sortierverfahren im Vergleich | 00:05:13 | |
Übungsblatt | 00:06:33 |
Greedy Algorithms | 01:29:15 | |
---|---|---|
Überblick | 00:09:03 | |
Überblick: Beispiel Median | 00:21:06 | |
Greedy Algorithmus: Kennzeichen | 00:15:41 | |
Greedy Algorithmus: Elemente | 00:15:16 | |
Greedy Algorithmus: Generelles Schema | 00:12:34 | |
Greedy-Algorithmen für MST | 00:15:35 |
Greedy Algorithms (2) | 01:30:33 | |
---|---|---|
Algorithmusschema | 00:15:34 | |
Greedy-Algorithmen für MST | 00:17:05 | |
Allgemeiner MST Greedy-Algorithmus | 00:20:17 | |
Prim MST Algorithmus | 00:13:59 | |
Übung - Prim MST Algorithmus | 00:23:38 |
Divide & Impera Algorithms, Backtracking & Dynamische Programmierung | 01:26:39 | |
---|---|---|
Interval Scheduling | 00:19:53 | |
Divide & Impera Algorithms: Kennzeichen | 00:17:53 | |
Beispiel: Linealmaßangaben | 00:13:29 | |
Backtracking | 00:06:09 | |
Backtracking: Vier-Farben-Problem | 00:16:09 | |
Dynamische Programmierung | 00:13:06 |
Dynamische Programmierung | 01:16:02 | |
---|---|---|
Backtracking: Vier-Farben-Problem | 00:14:33 | |
Rucksackproblem (Knapsack Problem) | 00:13:17 | |
Rucksackproblem - Benifitfunktion | 00:20:30 | |
Rucksackproblem - Beispiel | 00:08:45 | |
Anwendungen & Memoisierung | 00:09:55 | |
Übungsblatt | 00:09:02 |
Objektorientierte Konzepte & Klassendefinition | 01:30:27 | |
---|---|---|
Imperative Programmierung & Objektorientierte Konzepte | 00:22:00 | |
Objekte | 00:16:14 | |
Klassenkategorien & Klassenbildung | 00:24:18 | |
Klassendefinition | 00:14:22 | |
Elemente einer Klasse - Implementierung | 00:13:33 |
Klassenimplementierung | 01:32:58 | |
---|---|---|
Beispiel Bankkonto | 00:15:25 | |
Implementierung der überwachten Objektkonstruktion | 00:12:25 | |
Vererbung | 00:15:05 | |
Klassenelemente | 00:23:38 | |
Transivität | 00:08:56 | |
Einfachvererbung | 00:17:28 |
Vererbung | 01:32:34 | |
---|---|---|
Vererbung | 00:11:23 | |
Beispiel: IntervalSampiling | 00:14:11 | |
Markierungen virtueller Funktionen | 00:04:36 | |
Public, Private & Protected Inheritance | 00:20:37 | |
Up Casting & Down Casting | 00:12:07 | |
Mehrfachvererbung | 00:11:55 | |
Interfaces | 00:17:56 |
C++ Casting | 00:58:48 | |
---|---|---|
const_cast | 00:15:30 | |
static_cast | 00:26:35 | |
dynamic_cast | 00:06:10 | |
reinterpret_cast | 00:04:34 | |
Fragen | 00:05:59 |
Übersicht und Motivation | 00:33:28 | |
---|---|---|
Motivation | 00:17:27 | |
Stack Prinzip | 00:09:14 | |
Queue Prinzip | 00:06:47 |
Container als Realisierungen von abstrakten Datentypen | 01:31:17 | |
---|---|---|
Stack | 00:03:57 | |
Queue | 00:22:45 | |
Dequeue | 00:19:43 | |
Priority Queue | 00:16:01 | |
Single-Linked List & Double-Linked List | 00:13:06 | |
Sorted Associative Map, Set & Dynamic Array | 00:15:45 |
Dynamic Array, Algorithmen und Container & Klausurvorbereitung | 01:28:12 | |
---|---|---|
Dynamic Array | 00:20:00 | |
STL Container | 00:14:00 | |
Algorithmen und Container | 00:12:15 | |
C++ Referenz | 00:16:05 | |
Zur Klausur | 00:25:52 |