In dieser Vorlesung werden die Grundlagen höherer Programmiersprachen vorgestellt, wie sie heutzutage in der industriellen Softwareproduktion zum Einsatz kommen. Die Teilnehmer sollen im Rahmen der Lehrveranstaltung selbständig Programmiererfahrungen sammeln.
| Darstellung von Informationen | 01:18:02 | |
|---|---|---|
| Kursziele und Organisatorisches | 00:11:10 | |
| PKI: Public Key Infrastructure | 00:15:53 | |
| Informatik | 00:13:16 | |
| Information (nach Broy) | 00:15:15 | |
| Zahlendarstellung in einem Positionssystem | 00:13:35 | |
| Dateien | 00:08:53 |
| Darstellung von Zahlen | 01:16:31 | |
|---|---|---|
| Darstellung von Zahlen | 00:19:46 | |
| Arithmetische Operationen | 00:08:41 | |
| Ganze Zahlen | 00:22:31 | |
| Wertebereiche | 00:13:05 | |
| Gleitkommazahlen | 00:12:28 |
| Darstellung von Zahlen (2) | 00:34:19 | |
|---|---|---|
| Gleitkommazahlen | 00:13:55 | |
| Gleitkommazahlen (5) | 00:14:45 | |
| Andere Zahlen | 00:05:39 |
| Darstellung von Text | 00:36:25 | |
|---|---|---|
| Plain Text | 00:18:00 | |
| 8-Bit-Zeichensätze | 00:09:19 | |
| Andere Zeichensätze | 00:09:06 |
| Darstellung von anderen Daten / Programmiersprachen | 01:14:07 | |
|---|---|---|
| Unicode | 00:21:56 | |
| Unicode-Zeichen | 00:15:38 | |
| Darstellung von anderen Daten | 00:13:00 | |
| Übungsaufgabe | 00:05:05 | |
| Programmierspachen | 00:15:43 | |
| Imperative Sprachen | 00:02:46 |
| Deklarative Sprachen | 01:17:05 | |
|---|---|---|
| Vom Programm zur Maschine | 00:12:54 | |
| Portabilität von Programmen | 00:03:37 | |
| Programmierfehler | 00:14:09 | |
| Programmierfehler (2) | 00:17:28 | |
| Einige Sprachen | 00:19:40 | |
| Spezifikationen | 00:04:53 | |
| Ein Beispiel | 00:04:26 |
| Deklarative Sprachen (2) | 00:36:45 | |
|---|---|---|
| Spezifikation: Ein Beispiel | 00:19:22 | |
| Programme: Ein Beispiel | 00:09:20 | |
| EBNF: Ein Beispiel | 00:08:03 |
| Deklarative Sprachen (3) | 00:46:17 | |
|---|---|---|
| Implementierung von Spezifikationen | 00:15:26 | |
| Ein/Ausgabe | 00:13:06 | |
| Datentypen in Python | 00:17:45 |
| Datentypen & Formale Beschreibung von Programmiersprachen | 01:19:41 | |
|---|---|---|
| Datentypen in Python | 00:15:42 | |
| Sonderzeichen in Strings | 00:14:38 | |
| Kontrollstrukturen | 00:11:03 | |
| Formale Beschreibung von Programmiersprachen | 00:16:42 | |
| Lexikalische Regeln (3) | 00:12:00 | |
| (Statische) Semantische Regeln | 00:09:37 |
| Unterprogramme | 01:21:19 | |
|---|---|---|
| Syntactic Sugar | 00:18:58 | |
| Unterprogramme | 00:21:28 | |
| Top-Down-Entwurf | 00:16:13 | |
| Vervollständigung zu Demo-Programm | 00:13:03 | |
| Rekursion | 00:11:37 |
| Rekursion | 01:14:36 | |
|---|---|---|
| Formulierung von Rekursion | 00:09:35 | |
| Die Türme von Hanoi | 00:11:07 | |
| Backtracking | 00:11:41 | |
| Allgemeine Rekursion | 00:18:06 | |
| Lineare Rekursion | 00:14:21 | |
| Zur Übung | 00:09:46 |
| Ausnahmebehandlung | 00:45:24 | |
|---|---|---|
| Laufzeitfehler | 00:17:49 | |
| Ausnahmebehandlung in Python | 00:16:03 | |
| Fragen zur Übungsaufgabe | 00:11:32 |
| Konstruktion neuer Datentypen | 00:37:37 | |
|---|---|---|
| Mengenkonstruktionen | 00:15:45 | |
| Mengenkonstruktionen (2) | 00:08:44 | |
| Listen | 00:04:06 | |
| Tupel | 00:09:02 |
| Datentypen in Python | 01:19:53 | |
|---|---|---|
| Tupel | 00:24:30 | |
| Dictionaries | 00:13:02 | |
| Dateien | 00:07:12 | |
| Dateien (3) | 00:18:08 | |
| Induktiv definierte Typen | 00:17:01 |
| Induktive Datentypen und Verifikation | 01:20:00 | |
|---|---|---|
| Induktive Definition: Ein Beispiel | 00:04:47 | |
| Schritt 2 | 00:21:19 | |
| Funktionen als Werte | 00:19:47 | |
| Verifikation | 00:10:34 | |
| Vermeidung von Fehlern | 00:15:33 | |
| Testen | 00:08:00 |
| Verifikation | 01:22:45 | |
|---|---|---|
| Partielle Korrektheit | 00:20:04 | |
| Zerlegung durch Zwischenbehauptungen | 00:18:57 | |
| Rückwärtsbeweis | 00:16:34 | |
| if-then-else-Regel | 00:14:59 | |
| Schleifenregel | 00:12:11 |
| Versionsverwaltung | 01:14:12 | |
|---|---|---|
| Software Configuration Management | 00:14:15 | |
| Bekannte Versionsverwaltungssysteme | 00:13:39 | |
| Begriffe | 00:11:45 | |
| Versionsverwaltung mit Subversion | 00:07:30 | |
| Subversion Demo | 00:20:24 | |
| Entwicklungsprozess mit Subversion | 00:06:39 |
| Subversion und Objektorientierte Programmierung | 01:15:55 | |
|---|---|---|
| Entwicklungsprozess mit Subversion | 00:22:01 | |
| Versionen in Subversion | 00:16:37 | |
| Tags und Branches | 00:16:02 | |
| Weitere Themen | 00:07:58 | |
| Objektorientierte Programmierung | 00:13:17 |
| Modulare Programmierung | 01:25:53 | |
|---|---|---|
| Beispiel Projektmanager | 00:14:57 | |
| Module in Python | 00:10:55 | |
| Objektorientiertes Programmieren OOP | 00:10:21 | |
| Datenkapselung | 00:13:04 | |
| Vererbung | 00:09:11 | |
| Polymorphie | 00:09:33 | |
| Beispiel Kreise | 00:17:52 |
| Klassen und Abstrakte Datentypen | 01:21:11 | |
|---|---|---|
| Beispiel 2-D-Objekte | 00:13:52 | |
| LSP: Liskov Substitution Principle | 00:16:15 | |
| Spezialmethoden | 00:07:32 | |
| Klassen und Abstrakte Datentypen | 00:10:02 | |
| Stack in Python | 00:17:54 | |
| Einfach verkettete Listen | 00:15:36 |
| Java | 01:19:54 | |
|---|---|---|
| Warum Java? | 00:13:59 | |
| Geschichte | 00:14:30 | |
| Operatoren | 00:16:44 | |
| Datentypen | 00:14:13 | |
| Referenztypen | 00:05:27 | |
| Arrays | 00:15:01 |
| Java: Überladung, Konstruktoren & Pakete | 01:21:43 | |
|---|---|---|
| Wiederholung | 00:18:01 | |
| Static | 00:13:58 | |
| Überladung | 00:18:23 | |
| Konstruktoren | 00:06:58 | |
| Programme | 00:11:06 | |
| Pakete | 00:13:17 |
| Java: Imperative Programmierung & Objektorientierte Konzepte | 01:16:12 | |
|---|---|---|
| Pakete | 00:15:15 | |
| Ausdrücke | 00:18:00 | |
| Einfache Anweisungen | 00:09:11 | |
| while-Schleife | 00:15:41 | |
| Objektorientierte Konzepte | 00:18:05 |
| Java und Funktionale Programmierung | 01:20:03 | |
|---|---|---|
| Abstrakte Klassen und Methoden | 00:17:16 | |
| Schnittstellen | 00:12:26 | |
| Ausnahmebehandlung | 00:15:21 | |
| Vordefinierte Ausnahmen | 00:17:50 | |
| Weitere Java-Konzepte | 00:07:37 | |
| Funktionale Programmierung: Scheme | 00:09:33 |
| LISP | 01:19:29 | |
|---|---|---|
| Programmelemente | 00:09:52 | |
| LISP | 00:19:49 | |
| Racket (War: PLT Scheme) | 00:14:32 | |
| Definitionen | 00:15:00 | |
| Listen | 00:20:16 |
| LISP/Scheme und Themenübersicht | 01:11:07 | |
|---|---|---|
| Strukturen | 00:16:51 | |
| Imperative Konzepte in Scheme | 00:10:51 | |
| Doppelpunkte suchen | 00:17:54 | |
| Themenübersicht | 00:14:38 | |
| Weiteres Feedback | 00:10:53 |
| GPU Computing with OpenCL | 01:17:32 | |
|---|---|---|
| Hybrid Compute Environment | 00:13:10 | |
| Why GPU Compute Devices | 00:08:44 | |
| CPU vs. GPU Architecture | 00:14:41 | |
| Open Compute Language (Open CL) | 00:10:47 | |
| Vector Addition: Host Program | 00:18:01 | |
| Best Practices for Performance Tuning | 00:12:09 |