Discover
Programmieren, WS19/20, Vorlesung
Programmieren, WS19/20, Vorlesung
Author: Karlsruher Institut für Technologie (KIT)
Subscribed: 34Played: 331Subscribe
Share
Description
– 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
– 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
14 Episodes
Reverse
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
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
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
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
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<K,V>
1:02:36 Map<K,V>: 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
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
08 |
0:00:00 Start
0:00:05 Start
0:00:48 Vorlesungsüberblick: Objekt-orientiertes Programmieren in Java
0:04:37 Dynamische Bindung
0:06:17 Überschreiben von Attributen
0:12:32 Konstruktoren
0:15:50 Sichtbarkeit und Modifier
0:17:54 Jetzt sind Sie gefragt: Attribute und Methoden
0:19:26 instanceof
0:22:26 Typ-Umwandlungen
0:26:50 Die Klasse Object
0:29:27 Inhaltliche Gleichheit
0:38:11 Grenzen der Vererbbarkeit
0:39:37 Abstrakte Klassen
0:44:18 Jetzt sind Sie gefragt: Abstrakte Klassen
0:48:26 Zusammenfassung
0:49:53 Debugging
0:52:07 Interfaces und Generics
0:52:44 Lernziele
0:53:44 Motivation - Interfaces
0:55:44 Interfaces als Schnittstellenbeschreibung
1:00:10 Interfaces - Syntax
1:01:46 Interfaces - Verwendung
1:04:43 Interfaces - Übersicht
1:06:21 Abstrakte Klassen vs. Interfaces
1:09:00 Aufgabe
1:10:33 Generics
1:10:39 Generics - Motivation
1:13:06 Generics - Konzept
1:14:19 Syntax - Polymorphie in Java
1:16:09 Generische Listen
1:21:29 Mehrere Typ-Parameter
1:24:23 Zusammenfassung
07 |
0:00:00 Start
0:00:05 Listen und Abstrakte Datentypen
0:04:38 Listen als ADT – Realisierung
0:15:45 Exkurs: Command / Query-Separation (1)
0:20:42 Verwendung der Listenimplementierung
0:26:44 Mehr Flexibilität: Doppelt verkettete Listen
0:30:32 Einfügen von Listenelementen: addLast
0:34:45 Begriffe
0:37:51 Zusammenfassung
0:43:57 Vorlesungsüberblick: Objektorientiertes Programmieren in Java
0:51:54 Verwendung von Vererbung
0:57:01 Beziehung zwischen Ober- und Unterklasse
1:04:28 Überschreiben von Methoden
1:07:23 Dynamische Bindung
06 |
0:00:00 Start
0:00:05 Konvertierung, Datenkapselung, Sichtbarkeit
0:02:30 Lernziele
0:04:13 Typ Konvertierung
0:11:45 String Conversions
0:15:41 Casting Conversions
0:21:44 Datenkapselung: Zugriffsrechte
0:25:57 Gültigkeit, Lebensdauer von Variablen
0:29:13 Gültigkeit
0:30:09 Überschattung
0:33:35 Sichtbarkeit
0:38:06 Pakete und Sichtbarkeit
0:42:52 Verwendungsbeispiel: Gleichheit von Objekten
0:46:21 Listen und Abstrakte Datentypen
0:50:14 Kapitel 15
0:52:54 Einfach verkettete Listen
0:56:25 Erstellung einer Liste
1:08:00 Löschen von Listenelementen: remove
1:16:43 Suche nach Listenelementen: contains
1:19:19 Listen als abstrakter Datentyp (ADT) – Prinzip
1:22:30 Listen als ADT – Realisierung
05 |
0:00:00 Start
0:00:05 Einführung
0:02:27 Lernziele
0:04:07 Definition - Array
0:06:44 Array-Deklarationen
0:10:06 Deklaration und Initialisierung
0:12:46 Ansprechen von Elementen / Länge des Arrays
0:17:20 Arrays und Schleifen: Beispiele
0:27:00 Quiz
0:31:12 Arrays und Schleifen: Weitere Beispiele
0:39:23 Beispiel: Polygone
0:41:50 Polygone erzeugen
0:46:59 Mehr zu Arrays
0:49:47 Arrays und Schleifen: for-each
0:55:05 Matrizen
0:56:31 Mehrdimensionale Arrays
1:00:56 Mehr zu mehrdimensionale Arrays
1:01:59 Quiz
1:06:17 Beispiel: Sieb des Eratosthenes
1:20:20 Generelles zum Optimieren
1:22:03 Zusammenfassung
04 |
0:00:00 Start
0:00:05 4. Konstruktoren und Methoden
0:01:33 Vorlesungsüberblick: Objekt-orientiertes Programmieren in Java
0:05:04 Lernziele heute
0:06:04 Objekte erzeugen und initialisieren
0:08:08 Konstruktoren
0:09:09 Parameter
0:10:57 Syntax von Konstruktoren
0:14:35 this-Referenz
0:16:27 Default-Konstruktor
0:18:34 Mehrere Konstruktoren
0:21:49 Jetzt sind Sie gefragt: Konstruktoren
0:26:48 Methoden
0:29:43 Methoden-Deklaration in Java
0:31:17 Methoden-Aufruf
0:32:35 Beispiel-Methoden
0:35:22 Der Rückgabetyp void
0:37:23 Zugriffsfunktionen (getter/setter)
0:41:40 Bezugsobjekt
0:45:18 Was passiert beim Aufruf einer Methode?
0:47:46 Jetzt sind Sie gefragt: Methoden
0:49:56 Statische Methoden
0:51:30 Klassen- vs. Objekt-Methode
0:53:54 Lokale Variablen
0:56:07 Parameter als lokale Variablen
0:57:24 Methodenaufrufe und Objektreferenzen
1:01:22 Lokale Variablen vs. Attribute
1:02:26 Klassenvariablen (Statische Attribute)
1:04:52 Überladen von Methoden
1:07:34 Hilfsmethoden
1:10:01 Die Methode main
1:11:31 Methoden zur Ein- und Ausgabe
1:13:41 Typische Struktur eines Java-Programms
1:16:21 Jetzt sind Sie gefragt: Methodenrätsel
1:20:58 Zusammenfassung
03 |
0:00:00 Start
0:00:05 Kontrollstrukturen
0:03:54 Lernziele heute
0:05:54 Ausdrücke
0:10:45 Weitere Ausdrücke in Java
0:14:46 Anweisungen
0:18:31 Ausdruck vs. Anweisung
0:20:53 Jetzt sind Sie gefragt!
0:27:18 Eingaben über die Konsole
0:33:00 Kontrollfluß-Anweisungen
0:40:27 Geschachtelte if-Anweisungen
0:49:11 Die switch-Anweisung
0:57:52 Programmieren von Schleifen
1:08:16 (do-)while-Schleife
1:10:23 Die for-Schleife
1:12:59 Unterschied for- und while-Schleifen
1:16:21 Beispiel: Collatz-Funktion
1:20:14 Die break-Anweisung
02 |
0:00:00 Start
0:05:27 Objekt-orientiertes Programmieren in Java
0:08:34 Grundelemente eines Java-Programms
0:09:26 Typen und Variablen
0:11:00 Datentypen
0:13:42 Die elementaren Datentypen in Java
0:26:02 Präzedenz
0:28:18 Wahrheitswertswerte
0:31:09 Die ganzen Zahlen: byte, short, int , long
0:37:37 Fliesskommazahlen
0:43:24 IEEE 754 - Gleitkommazahlen
0:49:28 ASCII - und Unicode-Zeichen
1:01:57 Variablen
1:04:31 Zuweisung
1:09:59 Attribute setzen
1:12:09 Speicherabbild
01 |
0:00:00 Start
0:01:10 Lernziele: Ein Einfaches Programm
0:02:09 Beispiel: Algorithmus für Summation
0:05:37 Beispiel: Algorithmus zur Berechnung der Summenformel
0:07:18 Einfaches Programm
0:10:31 Praxis: Übersetzen von Java-Klassen
0:14:24 Praxis: Ausführen von Java-Programmen
0:15:55 Compiler
0:19:44 Compiler vs. Interpreter
0:20:21 Übersetzung
0:28:11 Zusammenfassung: Ein Einfaches Programm
0:30:15 Lernziele: Objekte und Klassen
0:30:45 Billard-Spiel
0:34:30 Objektorientierte Programmierung (OOP)
0:37:51 Klassen
0:39:18 Definition: Objekte und Klassen
0:41:55 Klassen in Java
0:46:05 Abstraktion
0:47:24 Übungsaufgaben
0:50:00 Zusammenfassung: Objekte und Klassen



