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 |