Benutzer-Werkzeuge

Webseiten-Werkzeuge


offiziell:material

Materialien zur Vorlesung

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

Vorlesungsskript

Kap./Abschn. Skript Folien Inhalt Version
01 Einführung 01_Einfuehrung.pdf Folien zur Vorlesung Organisatorisches, Einführung: Software-Systeme
02 Formale Sprachen 02_SyntaxSemantik.pdf Syntax und Semantik von Programmiersprachen Update [30.11.]: Hinweise zu Fragen, [07.03.] Indentierung in Beispielen verbessert
03 Basisdatentypen 03_BasisDatentypen.pdf Unser erstes Java Programm, Basisdatentypen, Ausführen und Testen Update [30.11.]: Hinweise zu Fragen
04 Algorithmen 04_Algorithmus.pdf 04_Algorithmus.pdf Eigenschaften von Algorithmen, Variablen und Zustand, Anweisungen Update [30.11.]: Hinweise zu Fragen
05 Arrays 05_Arrays.pdf 05_Arrays.pdf Arbeiten mit Arrays, for-Schleife, Simulationen, Lesen und Schreiben auf Ein- und Ausgabeströme Update [30.11.]: Hinweise zu Fragen
06 Prozeduren 06_Prozeduren.pdf 06_Prozeduren.pdf Prozeduren deklarieren und verwenden, Gültigkeitsbereiche für Variablen und Parameter, Prozedurinkarnationen Update [30.11.]: Hinweise zu Fragen
07 Spezifikation und Testen 07_Spezifikation_Testen.pdf 07_Spezifikation_Testen.pdf Spezifikation von Prozeduren, Vorbedingung, Nachbedingung, Seiteneffekte, JUnit Update [16.11.]: Fehlerhaftes Bsp. auf S.11 ausgetauscht
Update [30.11.]: Hinweise zu Fragen
08 Rekursion und Terminierung 08_Terminierung.pdf 08_Rekursion_Terminierung.pdf Rekursion vs. Iteration, Terminierung, Abstiegsfunktionen Update [30.11.]: Hinweise zu Fragen
09 Objekte 09_Objekte.pdf 09_Objekte.pdf Objekt-Orientierung, Klassifizierungen, Objekte in Java Update [30.11.]: Hinweise zu Fragen
10 Klassendeklaration 10_Klassendeklaration.pdf 10_Klassendeklaration.pdf Erstellen von Klassen (Konstruktor, Methode, Attribut), UML-Klassendiagramm
11 Listen 11_Listen.pdf 11_Listen.pdf Datenstruktur Liste mit Implementierungen, Kapselung und Information Hiding, Iteratoren Update[06.12.]: Hinweise zu Fragen, Korrektur von Code-Beispielen
12 Subtyping 12_Subtyping.pdf 12_Subtyping.pdf Interfaces, Sub-/Supertypen Update[06.12.]: Korrektur von Code-Beispielen
13 Bäume 13_Baeume.pdf 13_Baeume.pdf Datenstruktur Baum, Suchbäume, Syntaxbäume, Terminierungsbeweise
14 Collections 14_CollectionsGenerics.pdf 14_CollectionsGenerics.pdf Abstrakte Datentypen, Parametrische Polymorphie, Java Collections Framework [09.01.] Fehler auf Seite 3 (Initialisierung des ArrayStack) + Seite 11 verbessert
15 Maps 15_Maps.pdf 15_Maps.pdf Maps, Hashing, Gleichheit von Objekten Update[21.12.]: Hinweise zu Fragen und Korrektur von Code-Beispiel, [08.01.] Korrektur Code-Beispiel S.3, [10.01.] CodeBeispiel TreeNode S. 5
16 Vererbung 16_Vererbung.pdf 16_Vererbung.pdf Vererbung von Methoden und Attributen, abstrakte Klassen Update[21.01.] Hinweise zu Fragen sowie diverse Rechtschreibfehler
17 Typhierarchien 17_Typhierarchien.pdf 17_Typhierarchien.pdf Modellierung von Typhierarchien, Exceptions, Klassenmethoden und -attribute Update[21.01.]: Hinweise zu Fragen
18 Streams 18_Streams.pdf 18_Streams.pdf Eingabe und Ausgabe mit Dateien, Streams, JSON Update[19.12.]: Beispiel Gson mit Writer/Reader behoben
19 Pakete 19_Pakete.pdf 19_Pakete.pdf Modularisierung durch Pakete Update[21.01.]: Beispiele zu Sichtbarkeiten + Hinweise zu Fragen
20 Einführung in C 20_Einfuehrung_C.pdf siehe Abschnitt 21 Einführung in C
21 Speichermanagement 21_Funktionen_Speichermanagement.pdf 21_Funktionen_Speichermanagement.pdf Funktionen, Speichermanagement in C, Arrays Update[23.01.] Tippfehler in free(ptr) Beispiel behoben
22 Strings und Structs 22_Strings_Structs.pdf 22_Strings_Structs.pdf Verwendung von Strings und Strukturen in C, Heartbleed-Bug
23 Speichermanagement 23_Speichermanagement.pdf 23_Speichermanagement.pdf Speicherverwaltung im Vergleich
24 Suchen und Sortieren 24_Sortieren.pdf 24_Sortieren.pdf
24_Algorithmenanalyse.pdf
Sortieralgorithmen, Binäre Suche Update[05.02.] Kleinere Korrektur der Indizes bei Ratespiel-Analyse
25 Programmierparadigmen 25_Programmierparadigmen.pdf 25_Programmierparadigmen.pdf Programmierparadigmen, Funktionale Programmierung, Lambda-Kalkül Update [06.02.] Ergänzungen im Skript zu den Beispielen
26 Lambda-Ausdrücke in Java 26_JavaLambdas.pdf 26_JavaLambdas.pdf Streams, Operationen auf Streams mit Lambda-Ausdrücken

Fehler melden

Kap./Abschnitt Programmtext Beschreibung Hinweis
01 Einführung MensaWecker.java MensaWecker Programm
04 Algorithmen Schaltjahr.java
Schaltjahr2.java
Schaltjahr Programme
04 Algorithmen Zweierpotenz.java Zweierpotzenzen ausgeben
05 Arrays Sum.java
Primzahlen.java
Strings.java
Arrayreferenz.java
Programme zu Arrays
06 Prozeduren Mittelwert.java
Aufrufbaum.java
Programme zu Prozeduren
09 Objekte ColorSquares.java
LuminanceTest.java
10 Klassendeklaration Entry.javaDate.java
CoderDiary.java CoderDiaryApp.java
MenschTest.java
11 Listen IntList.zip
IntArrayList.zip
Update[19.12.] IntArrayListVisualizer korrigiert
12 Subtyping ListOfInt.java
UniversityManagement.zip
13 Bäume TreeNode.java BinTree.javaSortedBinTree.javaSortedBinTreeTest.java
14 Collections GenericList.zip
Stack.zipQueue.zip Word.java CollectionsTest.java
15 Maps Maps.zip Birthdays.zip [08.01.] Korrektur in TreeMap und MapTests
16 Vererbung GeometrischeFiguren.zip Wetterdaten.zip
17 Typhierarchien 17_Typhierarchien.zip Hinweis: Klassen sind z.T. umbenannt, damit es keine Namenskonflikte gibt
18 Streams SearchReplace1.java
SearchReplace2.java
Programm zum Suchen und Ersetzen von Strings in Dateien. Variante ohne Streams und mit Streams.
19 Pakete sichtbar.zip Beispiele für Zugriffsmodifikatoren
20 C 20_C.zip Code-Beispiele für C
24 Sortieren 24_SuchenSortieren.zip Implementierung der Sortieralgorithmen, Binäre Suche, Ratespiel

Bibliotheken

Die in der Vorlesung und Übung verwendeten Bibliotheken finden Sie hier:

Datei Beschreibung
StdIn.java Prozeduren zum Verwenden der Standard-Eingabe
StdOut.java Prozeduren zum Verwenden der Standard-Ausgabe
StdDraw.java Prozeduren zum Zeichnen
junitrunner.jar JUnit-Runner (Anleitung in Kapitel 07, Abschnitt 2.1)
gson-2.8.2.jar Gson Bibliothek zum Arbeiten mit JSON (siehe Kapitel 18)

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

Nr. Blatt LHV Material Bemerkungen / Korrekturen
01 PDF - Keine Abgabe
02 PDF PDF Parser.java
FemtoParser.java
femto-test-eingaben.zip
30.10. Vorlage Parser.java aktualisiert: In der alten Version wurde typ_int statt typeInt als Name für das Terminalsymbol verwendet.
03 PDF PDF 07.11. Zu Aufgabe 4 wurde noch ein Hinweis zur Modulo-Operation mit negativen Zahlen eingefügt.
04 PDF PDF ArraysAndProcedures.java
ShowMatrix.java (benötigt StdDraw.java)
wahlen.txt
wahlen17.txt
Bibliotheken: siehe oben
05 PDF PDF Aufgabe 1: Intersection.java IntersectionTests.java
Aufgabe 2: Procs.java
Aufgabe 3: Recursion.java
Aufgabe 4: Histograms.java klausur.txt
Zusatzaufgabe: superpowers.in.txt superpowers.out.txt
23.11. In Aufgabe 2 wurde eine Datei namens „ProcTests.java“ gefordert, es sollte aber „ProcsTest.java“ sein
In Aufgabe 4 bezieht sich ReadStrings.readStrings() auf die in Aufgabe 3 Blatt 4 geschriebene Prozedur. Kopieren Sie die ReadStrings.java zusammen mit StdIn.java und StdOut.java in den gleichen Ordner wie die Datei Histograms.java und kompilieren Sie das Programm mit javac Histograms.java.
06 PDF PDF Aufgabe 1: StringProcsTests.java
Aufgabe 2: PicEditTests.java Picture.java
Aufgabe 3: AufzugTests.java IntQueue.java
Aufgabe 4: SpreadsheetTest.java
30.11. Beispiel in Aufgabe 4 korrigiert, Details zum Runden in Aufgabe 3
07 PDF PDF Aufgabe 1: DLIntList.java DNode.java
Aufgabe 2: Vec2Tests.java
Aufgabe 3: carambolage4.zip
07.12. Neue Version von Gui.java in Carambolage-Vorlage sollte Treiber-Probleme unter Windows beheben
08.12. Neue Version von Gui.java und SEGraphics.java, verhindert Flackern auf manchen Rechnern
08 PDF PDF Aufgabe 1: Subtyping.java
Aufgabe 2: Figures.java FigurenTest.java
Aufgabe 4: MonitoringTest.java
Aufgabe 5: BinTreeTest.java
12.12. Freiwillige Zusatzaufgabe zu Aufgabe 2
09 PDF PDF Aufgabe 4: StoreTest.java
10 PDF PDF Aufgabe 2: Grafikeditor.zip
Aufgabe 3: femto_parser.zip
PK PDF PDF Probeklausur
11 PDF PDF Aufgabe 1: Entry.java DefProg.java
Aufgabe 2: Queue.java QueueTest.java
Aufgabe 3: Grafikeditor11b.zip gson-2.8.2.jar
Aufgabe 4: StringStream.java StringStreamTests.java
Aufgabe 5: Installation von C
19.01. Grafikeditor Vorlage korrigiert (vorherige Version hatte in Gui.java zum Speichern auch einen Lade-Dialog verwendet)
12 PDF PDF Aufgabe 4: sort.c
Aufgabe 6: flatten.c
13 PDF PDF Aufgabe 2: dict.c
Aufgabe 3: linkedlist.c
Aufgabe 4: mergesort.c
14p PDF PDF zur Bearbeitung in der Übung und Vorbereitung auf Blatt 14
14 PDF PDF Zu Aufgabe 6: Lambdas.java
Zu Aufgabe 7: lambda.zip
08.02. Klarstellung in Aufgabe 3: α-Konversionen dürfen direkt in einem Schritt durchgeführt werden
10.09. Lösung zu Aufgabe 1 korrigiert (Lambda-Zeichen fehlten)
15 PDF PDF

Fehler melden

Als Hilfestellung zu den Funktionen in der C-Standardbibliothek können Sie C_stdlib.pdf verwenden. Dort sind wichtige Parameter, Beschreibungen der Rückgabewerte sowie wichtige Hinweise zu Randfällen zusammengefasst.

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: 2018/09/10 15:56 von Peter Zeller

Seiten-Werkzeuge