
Programmieren, WS15/16, Vorlesung
Podcast von Karlsruher Institut für Technologie (KIT)
Programmieren, WS15/16, Vorlesung
Kostenlos testen für 30 Tage
Nach der Testphase nur 4,99 € / Monat.Jederzeit kündbar.
Alle Folgen
14 Folgen
12: Vorlesung | 0:00:00 Starten 0:00:10 Der Begriff ""Bug"" 0:03:44 Failure-Fault-Defect-Error-Bug 0:06:11 Debugging 0:07:20 Schritte der klassischen wissenschaftlichen Methode 0:11:08 Wissenschaftliche Methode angewendet auf Debugging 0:13:02 Debugging-Stabilisierung des Fehlers 0:17:59 Tipps für Fehler 0:35:15 Syntaxfehler 0:38:17 Zusammenfassung

14: Vorlesung | 0:00:00 Starten 0:01:20 Bvorzugte Polymorphie gegenüber instanceof 0:01:50 Beispiel für schlechtes Design 0:05:28 Beispiel für ein geeignetes Design 0:07:20 Prinzip 2: Unterscheidung zwischen == und equals 0:07:30 Häufige Fragen 0:07:33 Beispiel 0:10:21 == vs. equals 0:10:29 Weiteres Beispiel 0:13:46 Prinzip 3: Die Standardimplementierung von equals überschreiben 0:14:54 Beispiel 0:17:11 Implementierung der equals-Methode 0:17:29 Abhilfe durch eigene Implementierung 0:21:07 Probleme der vorherigen Implementierung 0:24:16 Mögliche Lösungsideen 0:26:11 Beispiel - MyStringBuffer 0:28:52 Beispiel - Golfball 0:30:05 Prinzip 4: Vorsicht bei der Implementierung von equals 0:30:10 Wichtige Fragen bei der Implementierung 0:31:01 Prinzip 5: super.equals verwenden 0:31:12 Vererbung und equals 0:31:28 Beispiel für einen fehlerhaften Code 0:33:19 Lösung 0:34:10 Alternative Lösung 0:35:29 Mehrere Ebenen in der Vererbungshierarchie 0:36:19 Prinzip 6: Vorsicht bei der Verwendung von intanceof in equals 0:36:41 Vergleich der Objekte 0:38:22 Motivierendes Beispiel für Verhaltensänderung 0:42:18 Zusammenfassung 0:43:46 Was noch fehlt

13: Vorlesung | 0:00:00 Starten 0:01:31 Motivation 0:03:20 Halde 0:06:54 Stapelspeicher 0:08:22 Einsatz des Stapelspeichers 0:12:21 Speichereinstellung 0:13:24 Einteilung des Datenbereichs 0:14:01 Sprünge 0:18:52 Kopfgesteuerte Schleife 0:19:28 Adressierung durch 3 Basisadressen 0:20:28 Laufzeitkeller 0:22:43 Schritte beim Aufruf einer Methode 0:23:44 Schritte beim Verlassen der Methode 0:26:20 Best Practices 0:27:07 Prinzip 1: Bevorzuge Polymorphie gegenüber instanceof 0:27:40 Beispiel für ein schlechtes Design 0:31:14 Beispiel für ein geeignetes Design 0:32:31 Prinzip 2: Unterscheidung zwischen == und equals 0:32:59 Beispiel 0:34:53 == vs. equals 0:35:58 Weiteres Beispiel 0:37:58 Prinzip 3: Die Standardimplementierung von equals überschreiben 0:38:07 Beispiel 0:39:55 Implementierung der equals-Methode 0:42:04 Abhilfe durch eigene Implementierung 0:44:49 Probleme der vorherigen Implementierung 0:45:47 Mögliche Lösungsideen 0:47:35 Beispiel - MyStringBuffer 0:51:26 Beispiel - Golfball 0:52:15 Mögliche Lösungsidee Nr. 4 0:53:47 Prinzip 4: Vorsicht bei der Implementierung von equals 0:55:19 Prinzip 5: super.equals verwenden 0:56:16 Beispiel für einen fehlerhaften Code 0:59:28 Lösung 1:00:28 Alternative Lösung 1:02:05 Mehrere Ebenen in der Vererbungshierarchie 1:03:26 Prinzip 6: Vorsicht bei der Verwendung von instanceof in equals 1:03:40 Vergleich der Objekte 1:06:34 Motivierendes Beispiel für Verhaltensänderung 1:07:22 Beispiel für instanceof in equals 1:10:13 Zusammenfassung 1:11:34 Software-Technik 1:15:57 Was noch fehlt

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

10: Vorlesung | 0:00:00 Starten 0:02:34 Motivation: Divide and Conquer 0:06:57 Rekursion 0:07:36 Rekursive Methoden 0:08:42 Beispiel: Fakultätsfunktion 0:11:09 Binomialfunktion 0:13:45 Binomialfunktion mit Caching 0:14:51 Rekursion - Zusammenfassung 0:15:46 Rekursion vs. Iteration 0:17:07 Die Kochsche Schneeflockenkurve 0:18:55 12 Java API 0:19:58 Java API 0:23:02 Das Java Collections Framework 0:24:32 Das Interface Collection<E> 0:27:24 Exkurs: Wildcards in generischen Typen 0:28:41 Exkurs: Kovarianz / Invarianz 0:34:26 Sub-Interfaces von Collection<E> 0:35:39 Das Interface Map<K,V> 0:36:52 Map<K,V>: Beispiel 0:37:52 Die Klasse Collections 0:39:28 Das Paket java.io 0:40:28 Ein-und Ausgabe in Java 0:43:33 13 Testen und Assertions 0:44:36 Softwarefehler (""Bugs"") 0:46:21 Berühmte Software-Fehler 0:49:36 Software-Fehler 0:54:12 Beispiel: Klassifikation Dreiecke 0:59:19 Kriterien für gute Testfälle 1:00:45 Was Testen ist... 1:03:45 Failure vs. Fault 1:05:14 Failure vs. Fault vs. Error 1:06:10 Beispiel: Failure vs. Fault 1:09:19 Was Testen nicht ist... 1:10:20 Warum Testen so schwierig ist 1:12:32 Testselektion 1:13:09 Wann sind wir fertig? 1:14:56 Teststrategien 1:15:36 Assertions (Geek & Poke) 1:17:11 Zusicherung 1:20:36 Pre- und Postconditions, Invarianten 1:21:30 Beispiel Invarianten 1:22:31 assert oder if-Abfrage? 1:23:50 Statische Analyse
Nutze Podimo überall
Höre Podimo auf deinem Smartphone, Tablet, Computer oder im Auto!
Ein ganzes Universum voller Unterhaltung für die Ohren
Tausende Hörbücher und exklusive Podcasts
Ohne Werbung
Verschwende keine Zeit mit Werbeunterbrechungen, wenn du bei Podimo hörst
Kostenlos testen für 30 Tage
Nach der Testphase nur 4,99 € / Monat.Jederzeit kündbar.
Exklusive Podcasts
Werbefrei
Alle frei verfügbaren Podcasts
Hörbücher
20 Stunden / Monat