Programmieren, WS17/18, Vorlesung
Programmieren, WS17/18, Vorlesung
Karlsruher Institut für Technologie (KIT)
Programmieren, WS17/18, Vorlesung
13: Programmieren, Vorlesung, WS 2017/18, 07.02.2018
13 | 0:00:00 Starten 0:00:14 Bedingte Sprünge - Verzweigung 0:02:01 Laufzeitkeller 0:03:36 Adressierung durch 3 Basisadressen 0:06:16 Schritte beim Aufruf einer Methode 0:07:44 Schritte beim Verlassen der Methode 0:09:17 Zusammenfassung 0:13:28 Prinzip 1: Bevorzuge Polymorphie gegnüber instanceof 0:14:06 Beispiele für schlechten Entwurf 0:19:42 Prinzip 2: Unterscheidung zwischen == und equals () 0:26:13 Prinzip 3: Die Standardimplementierung von equals () überschreiben 0:29:49 Abhilfe durch eigene Implementierung 0:33:10 Prinzip 4: Vorsicht bei der Implementierung von equals () 0:35:50 Prinzip 5: super.equals () verwenden 0:42:53 Prinzip 6: Vorsicht bei der Verwendung von instanceof in equals () 0:45:14 Motivierenden Beispiel für Verhaltensänderung
Feb 8, 2018
50 min
Video
12: Programmieren, Vorlesung, WS 2017/18, 31.01.2018
12 | 0:00:00 Starten 0:01:45 Bubblesort 0:06:34 Selectionort 0:09:42 Insertionsort 0:15:17 Der Begriff ""Bug"" 0:19:02 Debugging 0:23:12 Debugging - Stabilisieren des Fehlers 0:26:13 Debugging - Lokalisieren der Fehlerursache 0:30:00 Tipps für die Fehlersuche 0:45:40 JUNIT 0:50:31 Parametrisierte Tests 0:57:06 Prinzip 1: Datenkapselung 1:00:30 Prinzip 2: Komposition 1:11:37 Prinzip 3: Programmieren gegen Schnittstellen und nicht gegen eine Implementierung 1:13:54 Prinzip 4: Open-Closed Principle 1:18:30 Ausgewählte Prinzipien für den Schnittstellentwurf
Feb 5, 2018
1 hr 22 min
Video
11: Programmieren, Vorlesung, WS 2017/18, 24.01.2018
11 | 0:00:00 Starten 0:00:58 Lernziele Heute 0:05:28 Assertions 0:07:58 Zusicherungen 0:14:25 Assertions in Java 0:19:48 Vor- und Nachbedingungen, Invarianten 0:22:04 Beispiel Invarianten 0:27:06 assert oder if-Abfrage 0:29:49 Statische Analyse 0:32:43 Zusammenfassung 0:37:28 14 Zerteilen, Suchen und Sortieren 0:39:55 Überblick 0:40:22 Zerteilen 0:45:56 Beispiel: Taschenrechner 0:57:17 Top-Down Parsing 1:02:18 Rekursive Descent Parser: Hilfsfunktionen 1:06:27 Rekursiver Abstieg: Umsetzung Regeln 1:09:59 Zusammenfassung Parsen 1:11:28 Suchen 1:11:56 Lineare Suche 1:13:14 Lineare Suche - Implementierung 1:14:00 Lineare Suche - Visualisierung 1:15:20 Binäre Suche 1:16:42 Binäre Suche - Implementierung
Jan 25, 2018
1 hr 19 min
Video
00: Programmieren, Eröffnungsveranstaltung, WS 2017/18, 16.10.2017
– Objekte und Klassen – Typen, Werte und Variablen – Methoden – Kontrollstrukturen – Rekursion – Referenzen, Listen – Vererbung – Ein/-Ausgabe – Exceptions – Programmiermethodik – Implementierung elementarer Algorithmen (z.B. Sortierverfahren) in Java Literaturhinweise: P. Pepper, Programmieren Lernen, Springer, 3. Auflage 2007 Weiterführende Literatur: B. Eckels: Thinking in Java. Prentice Hall 2006 J. Bloch: Effective Java, Addison-Wesley 2008
Jan 19, 2018
1 hr 25 min
Video
10: Programmieren, Vorlesung, WS 2017/18, 17.01.2018
10 | 0:00:00 Starten 0:04:09 Vorlesungsüberblick 0:05:38 Lernziele heute 0:07:00 Java API 0:09:35 Das Java Collections Framework 0:12:36 Das Interface Collection 0:16:47 Exkurs: Wildcards in generischen Typen 0:20:02 Exkurs: Kovarianz/ Invarianz 0:23:31 Nochmals: Das Interface Collection 0:24:22 Sub-Surfaces von Collection 0:25:20 Das Interface Map 0:27:21 Map 0:29:15 Die Klasse Collections 0:29:55 Das Paket java.io 0:30:48 Ein- und Ausgabe in Java 0:33:27 Java Puzzlers 0:34:45 Zusammenfassung 0:35:39 Literaturhinweis 0:37:41 Murphy's Law 0:39:03 Software Fehler 0:40:31 Berühmte Software-Fehler 0:52:08 Testen 0:53:28 Beispiel: Klassifikation Dreiecke 0:57:15 Testfälle 1:04:38 Kriterien für gute Testfälle 1:07:14 Was Testen ist 1:10:53 Failure vs. Fault. 1:12:32 Beispiel 1:14:46 Was Testen nicht ist 1:15:55 Warum Testen so schwierig ist 1:19:44 Testselektion 1:23:58 Teststrategien 1:25:46 Assertions 1:25:57 Zusammenfassung
Jan 18, 2018
1 hr 26 min
Video
09: Programmieren, Vorlesung, WS 2017/18, 10.01.2018
09 | 0:00:00 Starten 0:00:11 Teil 1: Ausschnitt aus Vorlesung https://youtu.be/f9NoUhEmY2M 0:51:13 Teil 2: Ausschnitt aus Vorlesung https://youtu.be/EgOqH3gTLj8
Jan 15, 2018
1 hr 28 min
Video
08: Programmieren, Vorlesung, WS 2017/18, 20.12.2017
08 | 0:00:00 Starten 0:02:42 Lernziele Heute 0:04:04 Einführendes Beispiel 0:06:50 Konzept der Vererbung 0:10:48 Vererbung in Java 0:14:29 Beziehung zwischen Ober- und Unterklasse 0:17:14 Beispiel Vererbung in Java 0:21:04 Jetzt sind wir gefragt: Vererbung 0:21:51 Lösung: Vererbung 0:22:59 Überschreiben von Methoden 0:25:51 Dynamische Bindung 0:41:09 Dynamische Bindung vs. Fallunterscheidung 0:42:49 Jetzt sind wir gefragt: Dynamische Bindung 0:46:10 Kapitel 15 0:47:10 Dynamische Bindung: Lösung 0:50:02 Überschreiben von Attributen 0:53:26 Das Schlüsselwort super 0:55:36 Konstrukturen 0:58:30 Sichtbarkeit und Modifier 0:59:55 Jetzt sind wir gefragt: Attribute und Methoden 1:02:28 Instanceof 1:04:10 Typ-Umwandlungen 1:06:45 Up- und Down-Casts 1:08:19 Die Klasse object 1:09:51 Auszug Java-Klassenhierarchie 1:11:16 Inhaltliche Gleichheit: equals 1:16:39 Grenzen der Vererbbarkeit 1:18:00 Abstrakte Klassen 1:20:37 Zusammenfassung 1:22:37 Debugging
Dec 22, 2017
1 hr 25 min
Video
07: Programmieren, Vorlesung, WS 2017/18, 13.12.2017
07 | 0:00:00 Starten 0:00:10 Semesterplan 0:02:04 Lernziele Heute 0:03:11 Rekursive Datentypen 0:05:24 Einfach verkettete Listen - Idee 0:08:46 Erstellung einer Liste 0:11:53 Operation auf Listen 0:13:06 Einfugen von Listenelementen : addFirst 0:15:18 Einfugen von Listenelementen: AddLast 0:19:08 Löschen von Listenelementen: remove 0:25:15 Suche nach Listenelementen: contains 0:27:45 Listen als abstrakter Datentyp (ADT) - Prinzip 0:32:30 Iteratoren 0:36:17 Implementierung Iterator für Vector2DList 0:38:36 Exkurs: Command / Query-Separation 0:42:59 Gesamtstruktur Listenimplementierung in Java 0:43:52 Verwendung der Listenimplementierung 0:45:24 Vergleich Listen 0:50:00 Implementierung doppelt verkettete Liste 0:50:48 Einfügen von Listenelemente 0:52:09 Verwendung von Listen 0:53:18 Zusammenfassung 0:55:26 Rekursion 0:57:43 Motivation 1:02:20 Rekursice Methoden 1:03:50 Beispiel: Fakultätsfunktion 1:07:22 Binomialfunktion 1:09:41 Instanzen der Methode binom 1:12:01 Methoden im Aufrufstapel 1:15:56 Binomialfunktion mit Caching 1:16:18 Rekursion vs. Iteration 1:18:23 Die Kochsche Schneeflockenkurve 1:25:19 Rekursion- Zusammenfassung
Dec 14, 2017
1 hr 26 min
Video
06: Programmieren, Vorlesung, WS 2017/18, 06.12.2017
05 | 0:00:00 Starten 0:00:07 Arrays und Schleifen: Weitere Beispiele 0:02:49 Mehrdimensionale Arrays 0:03:29 Matrizen 0:05:15 Mehrdimensionale Arrays 0:07:44 Beispiel: Sieb des Eratosthenes 0:31:13 Generelles zum Optimieren 0:33:44 Mehr zu Arrays 0:36:40 Mehr zu mehrdimensionalen Arrays 0:37:39 Quiz 0:42:37 Zusammenfassung 0:43:01 Vorlesungsüberblick 0:43:30 6. Konvertierung, Datenkapselung, Sichtbarkeit 0:43:55 Lernziele heute 0:45:11 Typ-Konvertierung 0:47:30 Widening Primitive Conversions 0:50:29 Narrowing Primitive Conversions 0:52:16 String Conversions 0:55:47 Casting Conversions 0:59:50 Datenkapselung 1:02:57 Datenkapselung: Zugriffsrechte 1:05:05 Zugriffsrechte: Beispiel 1:06:38 Gültigkeit, Lebensdauer von Variablen 1:08:47 Beispiel Gültigkeitsbereich (lokale Variablen) 1:10:22 Gültigkeit 1:10:48 Überschattung 1:13:32 Überschattung: Beispiel 1:14:43 Sichtbarkeit (Visiblity) 1:15:38 Pakete 1:18:14 Gleichheit von Objekten 1:20:56 Verwendungsbeispiel: Gleichheit von Objekten 1:21:59 Zusammenfassung
Dec 7, 2017
1 hr 23 min
Video
05: Programmieren, Vorlesung, WS 2017/18, 29.11.2017
05 | 0:00:00 Starten 0:01:09 Vorlesungsüberblick 0:02:28 Lokale Variablen 0:04:10 Parameter als lokale Variablen 0:06:49 Methodenaufrufe und Objektreferenzen 0:12:10 Lokale Variablen vs. Attribute 0:16:36 Klassenvariablen (Statische Attribute) 0:23:11 Überladen von Methoden 0:27:14 Hilfsmethoden 0:31:45 Die Methode main 0:34:24 Methoden zur Ein- und Ausgabe 0:36:53 Typische Struktur eines Java-Programms 0:40:20 Jetzt sind Sie gefragt: Methodenrätsel 0:48:27 Zusammenfassung 0:50:08 5.1 Arrays 0:50:50 Vorlesungsüberblick: Objekt-orientiertes Programmieren in Java 0:52:19 Lernziele 0:53:08 Definition 0:54:54 Array-Deklaration 0:57:50 Deklaration und Initialisierung 0:59:28 Ansprechen von Elementen 1:02:07 Arrays und Schleifen: Beispiele 1:11:17 Polygone 1:15:02 Arrays und Schleifen: for-each 1:18:17 Matrizen 1:19:25 Mehrdimensionale Array 1:22:15 Quiz
Dec 5, 2017
1 hr 26 min
Video
Load more