Programmieren, WS19/20, Vorlesung Karlsruher Institut für Technologie (KIT)
-
- Bildung
-
– 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
Vorlesungsaufzeichnung: KIT | WEBCAST: http://webcast.kit.edu
-
- video
14: Programmieren, Vorlesung, WS 2019/20, 05.02.2020
14|
0:00:00 Start
0:01:13 Testen mit JUnit
0:02:08 Struktur/Terminologie von JUnit
0:06:21 Assertion-Methoden
0:09:06 Testfälle und Test-Fixture
0:14:43 Parametrisierte Tests
0:19:27 Ausführen von Tests
0:21:56 Zusammenfassung
0:24:50 18. Zerteilen, Suchen und Sortieren
0:36:33 Top-Down Parsing
0:39:02 Recursive Descent Parser: Hilfsfunktionen
0:41:53 Rekursiver Abstieg
0:45:55 Zusammenfassung Parsen
0:47:24 Suchen
0:47:50 Lineare Suche
0:52:07 Binäre Suche
0:57:00 Sortieren
0:57:54 Bubblesort
1:02:58 Selectionsort
1:07:20 Insertionsort
1:12:00 Zusammenfassung Kapitel 18
1:12:36 19. Vom Programmieren zur Maschine
1:14:28 Halde
1:15:10 Kellerspeicher
1:19:17 Speichereinteilung
1:20:50 Laufzeitkeller
1:24:34 Zusammenfassung Kapitel 19 -
- video
13: Programmieren, Vorlesung, WS 2019/20, 29.01.2020
13 |
0:00:00 Start
0:02:20 Vorlesungsüberblick
0:08:47 Testen: Vorgehen
0:10:14 Klassifikation Dreiecke
0:35:19 Kategorien von Tests
0:45:52 Testselektion
0:49:38 Wann ist das Testen beendet?
0:52:17 Teststrategien
0:54:45 Testgetriebene Entwicklung
0:58:15 Refactoring
1:01:05 Statische Analyse
1:04:07 Assertions
1:05:01 Zusicherungen
1:11:24 Vor- / Nachbedingungen, Invarianten
1:15:26 Assertions oder If-Abfrage?
1:18:23 JUnit -
- video
12: Programmieren, Vorlesung, WS 2019/20, 22.01.2020
12 |
0:00:00 Start
0:02:44 Vorlesungsüberblick
0:03:17 15. Finden und Beheben von Fehlern
0:03:59 Bugs
0:08:03 Fault - Defect - Bug -Error -Failure
0:12:20 Debugging
0:15:09 Schritte der klassischen wissenschaftlichen Methode
0:22:04 Stabilisieren des Fehlers
0:27:48 Lokalisieren der Fehlerursache
0:31:46 Zwischenfazit
0:32:44 Tipps für die Fehlersuche
1:00:45 Syntaxfehler
1:02:38 Zusammenfassung
1:04:52 16. Testen und Assertions, JUnit
1:06:53 Murphy's Law
1:07:30 Beispiele: Software-Katastrophen
1:18:55 Von ""Fault"" zu ""Failure""
1:23:58 Gründe für fehlerhafte Software
1:26:55 Testen: Vorgehen -
- video
11: Programmieren, Vorlesung, WS 2019/20, 15.01.2020
11 |
0:00:00 Start
0:00:21 13. Objekt-orientierte Design-Prinzipien
0:02:05 Prinzip 1: Datenkapselung
0:07:15 Prinzip 2: Komposition
0:25:20 Prinzip 3
0:29:12 Prinzip 4: Open-closed Principle
0:38:47 Ausgewählte Prinzipien für den Schnittstellenentwurf
0:42:13 Trennung von Befehl und Anfrage
0:45:45 Schlechte Abstraktion
0:47:55 Gemischtes Abstraktionsniveau
0:49:51 Wahl von Methodennamen
0:52:28 Zusammenfassung
0:56:46 14. Best Practices
0:58:13 Prinzip 1: Bevorzuge Polymorphie gegenüber instanceof
1:01:23 Prinzip 2
1:06:30 Prinzip 3
1:14:05 Prinzip 4
1:15:30 Prinzip 5
1:18:43 Prinzip 6 -
- video
10: Programmieren, Vorlesung, WS 2019/20, 08.01.2020
10 |
0:00:00 Start
0:01:50 Rekursion
0:02:25 Lernziele
0:03:12 Motivation: Divide and Conquer
0:09:07 Rekursive Methoden
0:11:24 Beispiel: Fakultätsfunktion
0:16:26 Binomialfunktion
0:21:52 Ausführung von binom(3,2)
0:24:44 Methoden im Aufrufstapel
0:31:08 Binomialfunktion mit Caching
0:33:19 Rekursion vs. Iteration
0:35:56 Die Kochsche Schneeflockenkurve
0:37:18 Kochsche Schneeflockenkurve: Aufgabe
0:48:33 Rekursion – Zusammenfassung
0:50:18 Java-API
0:53:13 Java Collections Framework
0:54:51 Interface Collection
0:57:24 Sub-Interfaces von Collection
0:59:02 Die Klasse Collections
1:00:58 Das Interface Map
1:02:36 Map: Beispiel
1:04:12 Das Paket java.io
1:05:43 Ein- und Ausgabe in Java
1:07:49 Java Puzzlers
1:08:55 Zusammenfassung -
- video
09: Programmieren, Vorlesung, WS 2019/20, 18.12.2019
09 |
0:00:00 Start
0:01:45 Lernziele
0:03:52 Motivation - Generische Klassen
0:14:52 Wildcards
0:31:45 Vergleichen von Objekten
0:36:52 Zusammenfassung
0:37:58 Exceptions
0:38:22 Lernziele
0:38:57 Exceptions: Motivation
0:40:29 Fehlerbehandlung im GOTO-Zeitalter
0:44:03 Lokale Fehlerbehandlung
0:45:33 Ausnahmen (Exceptions)
0:46:41 Exceptions in Java
1:01:50 Deklarieren von Ausnahmen
1:05:35 Behandeln von Ausnahmen
1:08:11 Eigene Exceptions
1:11:39 Faustregeln
1:18:13 Zusammenfassung