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 Zahlen | 01:31:24 | |
|---|---|---|
| Start | 00:17:24 | |
| Überlauf | 00:03:15 | |
| Ganze Zahlen | 00:27:04 | |
| Wertebereiche | 00:13:32 | |
| Gleitkommazahlen | 00:19:02 | |
| MSDN und Microsoft Student Partners | 00:11:07 |
| Darstellung von Text | 01:28:03 | |
|---|---|---|
| Gleitkommazahlen | 00:27:33 | |
| Plain Text | 00:20:58 | |
| 8-Bit-Zeichensätze | 00:04:46 | |
| Unicode | 00:23:10 | |
| Unicode-Zeichen | 00:11:36 |
| Programmiersprachen (2) | 01:24:25 | |
|---|---|---|
| Fortran | 00:14:37 | |
| Java | 00:15:08 | |
| Vorbedingungen und Nachbedingungen | 00:08:54 | |
| Flussdiagramme: ein Beispiel | 00:19:55 | |
| Aufbau von Programmen | 00:17:53 | |
| Implementierung von Spezifikationen | 00:09:11 |
| Vom Algorithmus zum Programm | 01:26:56 | |
|---|---|---|
| Vom Algorithmus zum Programm | 00:10:31 | |
| Datentypen | 00:13:13 | |
| ggT mit Integer-Division | 00:19:42 | |
| Datentypen in Python | 00:08:50 | |
| Weitere Stringoperationen | 00:04:18 | |
| Der Kern imperativer Sprachen | 00:13:52 | |
| Sequentielle Komposition | 00:17:36 |
| Formale Beschreibung von Programmiersprachen | 01:20:40 | |
|---|---|---|
| Lexikalische Regeln | 00:10:42 | |
| Schlüsselwörter in Python | 00:18:39 | |
| EBNF-Regel | 00:13:56 | |
| (Statische) Semantische Regeln | 00:17:56 | |
| Erweiterung der Kernsprache | 00:20:24 |
| Programmiersprachen | 01:25:00 | |
|---|---|---|
| UTF-8 | 00:15:47 | |
| Bewegte Bilder | 00:15:33 | |
| Imperative Sprachen | 00:14:41 | |
| Compiler | 00:13:41 | |
| Programmierfehler | 00:17:11 | |
| Programmierfehler (2) | 00:08:07 |
| Subsystems 2 | 01:24:17 | |
|---|---|---|
| Wechselseitige Rekursion | 00:07:26 | |
| Allgemeine Rekursion | 00:13:56 | |
| Lineare Rekursion | 00:16:57 | |
| Transformation von Fibonacci-Zahlen | 00:17:51 | |
| Ausnahmebehandlung | 00:23:59 | |
| Konstruktion neuer Datentypen | 00:06:08 |
| Subsystems | 01:29:41 | |
|---|---|---|
| Zur Übung | 00:11:23 | |
| Prozedurale Abstraktion | 00:12:40 | |
| Top-Down-Entwurf | 00:16:02 | |
| NIM-Spiel: Der bestmögliche Zug | 00:13:11 | |
| Verarbeitung der Rekursion | 00:20:49 | |
| Rekursive Prozeduren | 00:15:36 |
| Induktive Definition | 01:25:08 | |
|---|---|---|
| Ein Beispiel | 00:13:40 | |
| Schritt 1 | 00:09:07 | |
| Schritt 2 | 00:19:09 | |
| Funktionen als Werte | 00:21:56 | |
| Vermeidung von Fehlern | 00:04:51 | |
| Zwischenbehauptungen | 00:16:25 |
| Korrektheit von Algorithmen | 01:20:35 | |
|---|---|---|
| PCAs: Ein Beispiel | 00:21:06 | |
| Zuweisungsregel | 00:10:30 | |
| Rückwärtsbeweis | 00:09:54 | |
| If-then-else-Regel | 00:14:30 | |
| Schleifenregel | 00:07:37 | |
| Starke und schwache Invarianten | 00:07:06 | |
| Programmverifizierer | 00:09:52 |
| Construction of New Data Types | 01:22:41 | |
|---|---|---|
| Mengenkonstruktionen | 00:14:24 | |
| Mengenkonstruktionen 2 | 00:10:11 | |
| Listen | 00:21:15 | |
| Dictionaries | 00:09:48 | |
| Dateien | 00:15:47 | |
| Induktiv definierte Typen | 00:11:16 |
| Versionen in Subversion | 01:30:37 | |
|---|---|---|
| Versionen in Subversion | 00:18:45 | |
| Arbeitskopien | 00:26:17 | |
| Änderungsdateien | 00:06:46 | |
| Branches | 00:15:57 | |
| Programmieren im Großen | 00:05:30 | |
| Modulare Programmierung | 00:17:22 |
| Subversion | 01:26:28 | |
|---|---|---|
| Software Configuration Management | 00:17:14 | |
| Revision Control | 00:14:07 | |
| Begriffe | 00:10:41 | |
| Versionsverwaltung mit Subversion | 00:15:15 | |
| Check In | 00:16:41 | |
| /usr/bin/svn | 00:12:30 |
| Datenkapselung | 01:32:58 | |
|---|---|---|
| Datenkapselung (2) | 00:26:23 | |
| Vererbung | 00:18:57 | |
| Polymorphie | 00:16:41 | |
| Beispiel: Kreise | 00:13:50 | |
| Beispiel: Rechtecke | 00:03:37 | |
| LSP: Liskov Substitution Principle | 00:13:30 |
| Klassen und abstrakte Datentypen | 01:24:11 | |
|---|---|---|
| Abstrakte Datentypen | 00:11:21 | |
| Stack | 00:13:39 | |
| Queue | 00:08:45 | |
| Stack in Python | 00:22:17 | |
| Lösungsvorschläge | 00:16:56 | |
| Implementierungsstrategie 2 | 00:04:49 | |
| Einfach verkettete Listen | 00:06:24 |
| Java | 01:29:45 | |
|---|---|---|
| Wiederholung: Abstrakte Datentypen | 00:12:13 | |
| Java | 00:12:14 | |
| Geschichte | 00:20:11 | |
| Lexik | 00:11:30 | |
| Operatoren: Semantikbeispiele | 00:21:11 | |
| Lexik: Schlüsselwörter | 00:12:26 |
| Java (3) | 01:29:35 | |
|---|---|---|
| Überladung | 00:18:10 | |
| Überladung und Konstruktoren | 00:17:15 | |
| Programme | 00:11:07 | |
| Pakete | 00:14:55 | |
| Was ist system? | 00:11:40 | |
| Ausdrücke | 00:16:28 |
| Anweisungen in Java | 01:27:35 | |
|---|---|---|
| Einfache Anweisungen | 00:16:35 | |
| Blöcke | 00:10:31 | |
| Switch-Anweisung | 00:13:33 | |
| For-Schleife | 00:27:20 | |
| Späte Bindung an Java | 00:19:36 |
| PLT-Scheme | 01:07:33 | |
|---|---|---|
| PLT-Scheme | 00:10:03 | |
| Definitionen | 00:11:25 | |
| Listen | 00:13:49 | |
| Prädikate | 00:17:20 | |
| Ein-/Ausgabe | 00:14:58 |
| Module in Python | 01:26:16 | |
|---|---|---|
| Module in Python | 00:11:31 | |
| Module in Python (2) | 00:18:54 | |
| Module in Python (3) | 00:13:25 | |
| Objektorientiertes Programmieren (OOP) | 00:12:43 | |
| OOP (2) | 00:11:22 | |
| Datenkapselung | 00:13:35 | |
| Beispiel | 00:06:46 |
| Einführung | 01:31:41 | |
|---|---|---|
| Kursziele | 00:14:03 | |
| Informatik | 00:17:48 | |
| Darstellung der Information | 00:11:53 | |
| Zahlendarstellung in einem Positionssystem | 00:17:36 | |
| Dateigrößen | 00:11:07 | |
| Ausblick | 00:19:14 |