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 |