11: Vorlesung |
0:00:00 Starten
0:00:10 Gliederung ""Was erwartet Sie heute?""
0:01:18 Zerteilen (engl. ""parsing"")
0:03:49 Beispiel: Taschenrechner
0:05:42 Beispiel: Taschenrechner: Parsebaum
0:06:33 Top-Down Parsing
0:08:12 Recursive Descent Parser: Hilfsfunktionen
0:09:50 Rekursiver Abstieg: Umsetzung Regeln
0:12:08 Zusammenfassung Parsen
0:13:42 Suchen
0:14:03 Lineare Suche
0:14:45 Lineare Suche - Implementierung
0:16:13 Lineare Suche - Visualisierung
0:17:34 Binäre Suche
0:18:47 Binäre Suche - Implementierung
0:20:33 Binäre Suche - Visualisierung
0:22:26 Sortieren
0:22:57 Bubblesort
0:24:05 Bubblesort - Implementierung
0:24:56 Bubblesort - Beispiel
0:25:56 Bubblesort: Zitat
0:26:44 Bubblesort: Animation
0:27:20 Selectionsort
0:28:30 Selectionsort - Implementierung
0:29:09 Selectionsort - Beispiel
0:30:03 Selectionsort: Animation
0:30:27 Insertionsort
0:31:12 Insertionsort - Implementierung
0:31:59 Insertionsort - Beispiel
0:33:09 Video: The Sound of Sorting
0:35:09 16 Objekt-orientierte Design-Prinzipien
0:35:14 Prinzipien für objekt-orientiertes Design
0:36:25 Prinzip 1: (Datenkapselung) Minimiere die Zugriffsmöglichkeiten auf Klassen und Attribute
0:36:40 Datenkapselung (Information Hiding)
0:37:43 Vorteile Datenkapselung
0:39:56 Prinzip 2: Bevorzuge Komposition gegenüber Vererbung
0:40:02 Komposition
0:41:06 Vorteile/Nachteile Komposition
0:42:55 Vererbung
0:43:24 Vorteile/Nachteile Vererbung
0:44:42 Beispiel Komposition vs. Vererbung
0:48:51 Beispiel mit Komposition
0:51:18 Prinzip 3: Programmiere gegen Schnittstellen und nicht gegen eine Implementierung
0:51:25 Vorteile/Nachteile Interfaces
0:52:27 Beispiel Interface
0:53:52 Prinzip 4: (Open-Closed Principle) Software-Komponenten sollten offen für Erweiterung, aber geschlossen für Änderung sein
0:55:21 Beispiel OCP
0:58:38 OO-Design-Prinzipien
1:01:17 Ausgewählte Prinzipien für den Schnittstellenentwurf
1:02:38 Gute Schnittstellen
1:04:01 Schnittstellenentwurf für Kapselung/Wiederverwendbarkeit
1:05:55 Trennung von Befehl und Anfrage
1:08:57 Schlechte Abstraktion
1:10:09 Bessere Abstraktion
1:10:35 Auftrennung von Klassen und Schnittstellen
1:11:14 Gemischtes Abstraktionsniveau
1:12:12 Konsistentes Abstraktionsniveau
1:12:36 Wahl von Methodennamen
1:15:34 Zusammenfassung der Vorlesung