DiscoverProgrammieren, WS19/20, Vorlesung
Programmieren, WS19/20, Vorlesung
Claim Ownership

Programmieren, WS19/20, Vorlesung

Author: Karlsruher Institut für Technologie (KIT)

Subscribed: 34Played: 331
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
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
Comments 
loading