Benutzer-Werkzeuge

Webseiten-Werkzeuge


offiziell:material

Materialien zur Vorlesung

Auf dieser Seite finden Sie die Folien, Übungen, Zusatzmaterialien und Programmbeispiele für die Vorlesung.

Vorlesungsfolien

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

Übungsblätter und Lösungshinweise/-vorschläge

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 PDF PDF
02 PDF PDF
03 PDF PDF
04 PDF PDF 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 PDF PDF 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 PDF PDF 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 PDF PDF 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 PDF PDF 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 PDF PDF 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 PDF PDF Aufgabe 2 und 3: Node.java SortTest.java
Aufgabe 4: QueueTest.java
Aufgabe 5: MathFunction.java InverseFunctionTest.java
Probeklausur PDF
11 PDF PDF Aufgabe 1: DLIntList.java
Aufgabe 3: SortedBinTree.java
Aufgabe 4: probeklausur.zip
Dokumentation zu Java Collections
12 PDF PDF 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 PDF PDF 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 PDF PDF
Z PDF 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.

offiziell/material.txt · Zuletzt geändert: 2016/02/24 19:04 von Peter Zeller