Inhalte und Lernziele:
Die Studierenden lernen grundlegende Strukturen der Programmiersprache Java kennen und anwenden, insbesondere Kontrollstrukturen, einfache Datenstrukturen, Umgang mit Objekten, und Implementierung elementarer Algorithmen. Sie erwerben grundlegende Kenntnisse in Programmiermethodik und die Fähigkeit zur autonomen Erstellung kleiner bis mittlerer, lauffähiger Java-Programme.
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
Dozentin: Jun.-Prof. Dr. Anne Koziolek | Karlsruher Institut für Technologie (KIT), Institut für Programmstrukturen und Datenorgansiation
Vorlesungsaufzeichnung: KIT | WEBCAST: http://webcast.kit.edu
All content for Programmieren, WS17/18, Vorlesung is the property of Karlsruher Institut für Technologie (KIT) and is served directly from their servers
with no modification, redirects, or rehosting. The podcast is not affiliated with or endorsed by Podjoint in any way.
Inhalte und Lernziele:
Die Studierenden lernen grundlegende Strukturen der Programmiersprache Java kennen und anwenden, insbesondere Kontrollstrukturen, einfache Datenstrukturen, Umgang mit Objekten, und Implementierung elementarer Algorithmen. Sie erwerben grundlegende Kenntnisse in Programmiermethodik und die Fähigkeit zur autonomen Erstellung kleiner bis mittlerer, lauffähiger Java-Programme.
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
Dozentin: Jun.-Prof. Dr. Anne Koziolek | Karlsruher Institut für Technologie (KIT), Institut für Programmstrukturen und Datenorgansiation
Vorlesungsaufzeichnung: KIT | WEBCAST: http://webcast.kit.edu
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
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
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
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
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
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
04 |
0:00:00 Starten
0:00:47 Vorlesungsüberblick: Objekt-orientiertes Programmieren in Java
0:01:49 Lernziele Heute
0:02:41 Jetzt sind Sie gefragt: while-Schleife
0:03:24 (do-) while-Schleife: Syntax
0:06:26 Die for-Schleife
0:09:36 Die for-Schleife: Kontrollfluss
0:11:49 Jetzt sind Sie gefragt: Geschachtelte Schleife
0:18:15 Die Break-Anweisung
0:21:17 Die continue-Anweisung
0:24:31 Jetzt sind Sie gefragt
0:26:44 Schleifenorganisation
0:32:20 Zusammenfassung
0:33:26 Literaturhinweise
0:37:48 Konstruktoren
0:38:52 Parameter
0:40:29 Syntax von Konstruktoren
0:43:03 this-Referenz
0:44:58 Default-Konstruktor
0:46:41 Mehrere Konstruktoren
0:48:52 Jetzt sind Sie gefragt: Konstruktoren
0:52:54 Methoden
0:55:47 Methoden- Signatur
0:57:00 Methoden- Aufruf
0:58:00 Beispiel- Methoden
1:00:47 Der Rückgabetyp void
1:02:41 Zugriffsfunktionen (getter/setter)
1:07:47 Bezugsobjekt
1:10:38 Was passiert beim Aufruf einer Methode?
1:13:21 Jetzt sind Sie gefragt: Methoden
1:16:32 Statische Methoden
1:18:00 Klassen- vs. Objekt-Methode
1:21:05 Lokale Variablen
03 |
0:00:00 Starten
0:00:44 über die heutige Vorlesung
0:01:54 Ausdrücke
0:05:24 Weitere Ausdrücke in Java
0:10:28 Anweisungen
0:16:31 Ausdruck vs. Anweisung
0:18:16 Quiz
0:37:45 Eingaben über die Konsole
0:40:56 Zahlen über die Konsole eingeben
0:42:42 Kontrollfluss-Anweisungen (control-flow-statements)
0:45:35 Die if-Anweisung
0:49:22 Geschaltete if-Anweisungen
0:52:32 Übung
0:56:01 Die switch-Anweisung
1:08:28 Programmieren von Schleifen
1:15:19 Übung: while-Schleife
01 |
0:00:00 Starten
0:01:25 Semesterplan
0:03:24 Lernziele
0:04:20 Was ist Programmierung?
0:05:05 War das nun ,,Programmieren''?
0:06:00 Bubblesort _ Implementierung
0:07:18 Einfaches Programm
0:09:19 Praxis: Übersetzen von Java-Klassen
0:10:25 Einfaches Programm
0:12:32 Praxis: Ausführen von Java-Programmen
0:13:25 Einfaches Programm
0:13:35 Wozu Compiler?
0:16:47 Compiler vs. Interpreter
0:18:00 Übersetzung in Maschinennahe Sprache
0:18:41 Interpretation nach Vorübersetzung
0:19:53 Übersetzung und Ausführung in Java
0:20:30 Just In Time Compilation
0:21:30 Einfaches Programm
0:27:39 Zusammenfassung
0:29:00 Dritte Teil der Vorlesung
0:29:54 Lernziele
0:30:36 Billard-Spiel
0:32:59 Objektorientierte Programmierung (OOP)
0:34:51 OOP am Beispiel ,,Billard-Spiel''
0:36:08 Klassen: Der ,,Bauplan'' von Objekten
0:37:37 Definition: Objekte und Klassen
0:39:16 Ursprung Objektorientierter Programmierung
0:39:59 Klassen in Java
0:42:17 Ist die Klassendefinition gut so?
0:43:09 Abstraktion: Klasse für Koordinatenpaare
0:44:42 Wie erzeugt man Objekte?
0:46:19 Wir modelieren die Mensa
0:51:58 Frage
0:55:46 Zusammenfassung
Inhalte und Lernziele:
Die Studierenden lernen grundlegende Strukturen der Programmiersprache Java kennen und anwenden, insbesondere Kontrollstrukturen, einfache Datenstrukturen, Umgang mit Objekten, und Implementierung elementarer Algorithmen. Sie erwerben grundlegende Kenntnisse in Programmiermethodik und die Fähigkeit zur autonomen Erstellung kleiner bis mittlerer, lauffähiger Java-Programme.
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
Dozentin: Jun.-Prof. Dr. Anne Koziolek | Karlsruher Institut für Technologie (KIT), Institut für Programmstrukturen und Datenorgansiation
Vorlesungsaufzeichnung: KIT | WEBCAST: http://webcast.kit.edu