Auf dieser Seite finden Sie die Folien, Übungen, Zusatzmaterialien und Programmbeispiele für die Vorlesung.
Kap./Abschn. | Folien (4 auf 1) | Folien (1 auf 1) | Titel | Version |
---|---|---|---|---|
01_Einfuehrung | 01_Einfuehrung_4auf1.pdf | 01_Einfuehrung_1auf1.pdf | Organisatorisches, Einführung | |
02_SyntaxSemantik | 02_SyntaxSemantik_4auf1.pdf | 02_SyntaxSemantik_1auf1.pdf | Syntax, Syntaxdiagramme, Kontextfreie Grammatiken, Semantik | Update: 29.10., 10:10 |
03_BasisDatentypen | 03_BasisDatentypen_4auf1.pdf | 03_BasisDatentypen_1auf1.pdf | Compilieren und Ausführen von Java-Programmen, Integrierte Datentypen | |
04_Algorithmus | 04_Algorithmus_4auf1.pdf | 04_Algorithmus_1auf1.pdf | Begriff: Algorithmus, Verzweigungen, Schleifen | Update: 09.11., korrigierte Version |
05_Arrays | 05_Arrays_4auf1.pdf | 05_Arrays_1auf1.pdf | Arrays, for-Schleifen, Ein-/Ausgabe | Update: 12.11., korrigierte Version |
06_Prozeduren | 06_Prozeduren_4auf1.pdf | 06_Prozeduren_1auf1.pdf | Prozeduren als Statische Methoden, Gültigkeitsbereich von Variablen | |
07_Rekursion | 07_Rekursion_4auf1.pdf | 07_Rekursion_1auf1.pdf | Rekursion, statisch / dynamisch, Lebensdauer | |
08_Spezifikation_Testen | 08_Spezifikation_Testen_4auf1.pdf | 08_Spezifikation_Testen_1auf1.pdf | Spezifikationen, Unit-Tests | Update: 23.11., korrigierte Version mit Lösungsvorschlägen + Ergänzung zum Testen von Seiteneffekten |
09_ObjekteKlassen | 09_ObjekteKlassen_4auf1.pdf | 09_ObjekteKlassen_1auf1.pdf | Objektorientierung, Objekte, Klassen | |
10_Fallstudie | 10_Fallstudie_4auf1.pdf | 10_Fallstudie_1auf1.pdf | Fallstudie: Lauftagebuch, einfachverkettete Listen | |
11_Kapselung | 11_Kapselung_4auf1.pdf | 11_Kapselung_1auf1.pdf | Kapselung und Information Hiding, Exceptions, Characters | |
12_ListenBaeume | 12_ListenBaueme_4auf1.pdf | 12_ListenBaueme_1auf1.pdf | Listen, Bäume, Iteratoren | |
13_Subtyping | 13_Subtyping_4auf1.pdf | 13_Subtyping_1auf1.pdf | Schnittstellen, Interfaces, Klassifizierung, Subtyping | Update: 09.12., korrigierte Version |
14_Vererbung | 14_Vererbung_4auf1.pdf | 14_Vererbung_1auf1.pdf | Vererbung, Abstrakte Klassen | Update 10.12.: korrigierte Version mit Lösungsvorschlag |
15_Typhierarchien | 15_Typhierarchien_4auf1.pdf | 15_Typhierarchien_1auf1.pdf | Typhierarchien am Beispiel, Exceptions, Klassenattribute/-methoden | |
16_Algorithmenanalyse | 16_Algorithmenanalyse_4auf1.pdf | 16_Algorithmenanalyse_1auf1.pdf | Laufzeitanalyse, Speicherbedarf, Speicherverwaltung | |
17_Fallstudie | 17_Fallstudie_ArithExpr_4auf1.pdf | 17_Fallstudie_ArithExpr_1auf1.pdf | Wiederholung: Arith. Ausdrücke, Parsen | Update 23.12.: kleinere Korrekturen und Ergänzungen |
18_Sortieren | 18_Sortieren_4auf1.pdf | 18_Sortieren_1auf1.pdf | Binäre Suche, Sortieren durch Auswahl, durch Einfügen, QuickCheck | |
19_HeapStackQueue | 19_HeapStackQueue_4auf1.pdf | 19_HeapStackQueue_1auf1.pdf | Mergesort, Heapsort, Abstrakte Datentypen | Laufzeit von Quicksort und Heapsort |
20_GenericsCollections | 20_GenericsCollections_4auf1.pdf | 20_GenericsCollections_1auf1.pdf | Parametrisierte Datentypen, Java Collection Framework | Update 14.01.: Kleinere Verbesserungen |
21_AnwendungCollections | 21_CollectionsExamples_4auf1.pdf | 21_CollectionsExamples_1auf1.pdf | Anwendung von Collections, Comparators | Update 19.01.: Korrektur des Vergleichs, kleine Ergänzungen |
22_Maps | 22_Maps_4auf1.pdf | 22_Maps_1auf1.pdf | Abstrakte Datentypen, Maps, geschachtelte Klassen | |
23_Graphen | 23_Graphen_4auf1.pdf | 23_Graphen_1auf1.pdf | Graphen, kürzeste Wege | |
24_Streams | 24_Streams_4auf1.pdf | 24_Streams_1auf1.pdf | Ströme zur Ein- und Ausgabe, Ein- und Ausgabe von Objekten | |
25_AndroidFramework | 25_AndroidFramework_4auf1.pdf | 25_AndroidFramework_1auf1.pdf | Frameworks und Benutzeroberflächen am Beispiel Android | |
26_SpieleprogrammierungAndroid | 26_SpieleprogrammierungAndroid_4auf1.pdf | 26_SpieleprogrammierungAndroid_1auf1.pdf | Spieleentwicklung am Beispiel Android | Update 04.02.2016: Kleine Korrekturen |
27_CompilerConstruction | 27_CompilerConstruction_4auf1.pdf | 27_CompilerConstruction_1auf1.pdf | Übersetzer und Werkzeuge zur Sprachverarbeitung, Generieren von Scannern und Parsern | |
28_Tools | 28_Tools_4auf1.pdf | 28_Tools_1auf1.pdf | Programmierwerkzeuge wie Buildsysteme, Versionsverwaltungssysteme und IDEs |
Kap./Abschnitt | Programmtext | Beschreibung | Hinweis |
---|---|---|---|
06 Prozeduren | Statistics.java | Bibliothek zur Datenauswertung | Zum Compilieren benötigen Sie ausserdem im gleichen Verzeichnis die Dateien StdOut.java und StdIn.java von hier bzw. aus den Übungen |
07 Rekursion | Aufrufbaum.java | Beispiel zum Aufrufbaum | |
08 Testen | GCD.java MinPos.java junitrunner.jar | Beispiele zum Testen | |
10 Fallstudie | Date.java Entry.java Node.java RunnersApp.java RunnersDiary.java RunnersDiaryIterator.java | Java Code zur Fallstudie „Lauftagebuch“ (mit Kapselung und Iterator aus Kapitel 11) | |
16 Algorithmenanalyse | TimingSort.java TimingSortRandom.java | Laufzeitmessung für Sortieren durch Auswählen | |
17 Arith. Ausdrücke | interpreter.zip | Objekt-orientierte Variante des Parsers | Enthält Tests sowie die Variante aus den Übungen |
18 Sortierverfahren | SortArray.java | Experimenteller Vergleich klassischer Sortierverfahren auf Arrays | |
19 Abstrakte Datentypen | ADT.zip | Verschiedene Implementierungen von Stack und Queue | |
20 Parametrisierte Datentypen | Generics.zip | String-Listen vs. Generische Listen | |
21 Anwendung von Collections | Collections.zip | Beispiel: TodoListe, Comporator für Date-Objekte | |
22 Graphen | Graph.zip | Implementierung für Graphen als Adjazenzliste | |
25 Android | androidTodoList.zip | TodoList-Beispiel aus der Vorlesung | benötigt Android-SDK, mehr Informationen unter http://developer.android.com/index.html |
Bitte drucken Sie die Blätter nicht selbst auf den SCI-Druckern aus, da dies unnötig Deckblätter verschwendet. Ausdrucke werden in den Übungen verteilt.
Nr. | Blatt | LHV | Material | Bemerkungen |
---|---|---|---|---|
01 | ||||
02 | ||||
03 | ||||
04 | StdDraw.java GraphBeispiel.java StdIn.java StdOut.java PrintfExample.java wahlen.txt | Korrektur: Auf dem Ausdruck fehlte in Aufgabe 2c) der Parameter für die Beschriftungen. | ||
05 | ParenthesisParser.java ParenthesisParserTest.java ExprParserTest.java SpecificationTesting.java | Korrektur (25.11.): Die Datei SpecificationTesting.java hatte noch eine unbenutzte Variable i, die nicht auf dem Übungsblatt war. | ||
06 | physik.zip IntList.java IntListTest.java | Hinweis: In Aufgabe 3f) bezieht sich das Einfügen von Elementen auf die vorgegebene Methode „add“, welche ein Element am Ende der Liste einfügt. | ||
07 | Aufgabe 1: Besucher.java WebStats.java Aufgabe 2: TreeNode.java Aufgabe 3: SortedBinTree.java DLIntList.java Aufgabe 4: DLIntListTest.java Aufgabe 5: SortedBinTree.java TreeNode.java | Korrektur: In der Datei DLIntList.java zu Aufgabe 3 war noch eine Zeile „package remdups;“, die dort nicht sein sollte. | ||
08 | Zu Aufgabe 4: IntArrayList.java IntArrayListIterator.java SLIntList.java SLIntListIterator.java Zu Aufgabe 6: StringBuilderTest.java | Hinweis: Die Abgabe für die Freitags-Gruppen ist am 23.12. | ||
09 | secret.zip | Korrektur: In Aufgabe 2, Zeile 12 fehlte der Absolutbetrag auf der rechten Seite der Ungleichung. Die Ergebnisse der Zusatzaufgabe sind hier einsehbar. Die Punkte dort werden am Ende des Semesters angerechnet. |
||
10 | Aufgabe 2 und 3: Node.java SortTest.java Aufgabe 4: QueueTest.java Aufgabe 5: MathFunction.java InverseFunctionTest.java | |||
Probeklausur PDF | ||||
11 | Aufgabe 1: DLIntList.java Aufgabe 3: SortedBinTree.java Aufgabe 4: probeklausur.zip | Dokumentation zu Java Collections | ||
12 | Aufgabe 2: Multiset.java Aufgabe 3: Word.java GetWords.java Aufgabe 4: vorlage-interpreter.zip | In Aufgabe 2c) steht „h(e)“ abkürzend für „e.hashCode()“ | ||
13 | gson-2.5.jar beispiel.txt london.txt Informationen zu Gson todoList.zip | Die Syntax des JSON-Beispiels in Aufgabe 3 ist nicht korrekt. Die Datei beispiel.txt enthält die korrigierte Fassung. | ||
14 | ||||
Z | morse.csv |
Die Abgabe erfolgt über das Exclaim System. Bei Programmier-Aufgaben sind kompilierbare Java-Dateien abzugeben. Bitte halten Sie Ihren Code lesbar und halten Sie sich an den Java Style Guide für SE1.