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 Inhalt Version
01 Einführung 01_Einfuehrung.pdf Organisatorisches, Einführung: Software-Systeme
02 Formale Sprachen 02_SyntaxSemantik.pdf Syntax und Semantik von Programmiersprachen 08.11.16: Hinweise zu Fragen
03 Grundkonzepte: Basisdatentypen 03_BasisDatentypen.pdf Wert, Ausdruck, Typ, Integrierte Datentypen in Java 08.11.16: Hinweise zu Fragen, Ergänzungen zu Operatorpräzedenz
04 Algorithmen 04_Algorithmus.pdf Eigenschaften von Algorithmen, Variablen und Zustand, Anweisungen 08.11.16: Hinweise zu Fragen, kleinere Änderungen an Grammatik
05 Arrays 05_Arrays.pdf Arbeiten mit Arrays, for-Schleife, Simulationen, Lesen und Schreiben auf Ein- und Ausgabeströme 07.02.16: Hinweise zu Fragen
06 Prozeduren 06_Prozeduren.pdf Prozeduren, globale und lokale Variablen, Bibliotheken
07 Spezifikation und Testen 07_Spezifikation_Testen.pdf Spezifikationen von Prozedur, JUnit-Tests 17.11.16: Hinweise zu Fragen, Ergänzung zu Arrays
08 Objekte und Klassen 08_ObjekteKlassen.pdf Konzept der Objektorientierung, Verwendung von Objekten
09 Klassendeklaration 09_Klassendeklaration.pdf Deklaration von Klassen in Java, Fallstudie: Lauftagebuch, Einfach-verkettete Listen Update(23.11.16): Ergänzung von Beispielen
10 Kapselung 10_Kapselung.pdf Kapselung, Information Hiding, Zugriffsmodifikatoren, Datenstruktur Liste, Iteratoren
11 Bäume und Rekursion 11_BaeumeRekursion.pdf Datenstruktur Baum, Rekursion 01.12.16: Fehlerkorrektur in Code-Snippets, Hinweise zu Fragen
12 Subtyping 12_Subtyping.pdf Objekt-orientierte Modellierung, Schnittstellen, Klassifizierung und Subtyping 07.02.17: Hinweise zu Fragen
13 Collections und Generics 13_CollectionsGenerics.pdf Abstrakte Datentypen, Java Collections, Parametrisierte Datentypen Update(08.12.16): Hinweise zu Fragen
14 Maps 14_Maps.pdf Maps, Löschen auf Suchbäumen, Hashing, Vergleichen von Objekten
15 Vererbung 15_Vererbung.pdf Vererbung, abstrakte Klassen 26.12.16: Hinweise zu Fragen
16 Typhierarchien 16_Typhierarchien.pdf Umsetzung von Typhierarchien, Exceptions, statische Methoden, Attribute, Klassen 07.01.17: Hinweise, Fehlerkorrekturen
17 Streams 17_Streams.pdf Streams, Dateien
18 Pakete 18_Pakete.pdf Pakete, Verzeichnisorganisation
19 Einführung in C 19_Einfuehrung_C.pdf Compilieren und Ausführen von C Programmen, Basisdatentypen, Operatoren, Variablen, einfaches I/O 19.01.17: Tippfehler
20 Funktionen und Speichermanagement in C 20_Funktionen_Speichermanagement.pdf Funktionen, Zeiger, Arrays, Dynamische Speicherallokation 19.01.17: Tippfehler
21 Strings und Strukturen in C 21_Strings_Structs.pdf Strings, Heartbleed Bug, Strukturen, Beispiel: Einfach verkettete Liste
22 Sortieralgorithmen 22_Sortieren.pdf Sortieren durch Auswählen, Sortieren durch Einfügen, Mergesort, Quicksort
23 Effizienz von Algorithmen und Datenstrukturen 23_Algorithmenanalyse.pdf Messung von Laufzeit, math. Analyse, O-Notation 26.01.17: Tippfehler
24 Speichermanagement 24_Speichermanagement.pdf Speicherverwendung und -verwaltung, automatische Garbage Collection
25 Programmmierparadigmen 25_Programmierparadigmen2.pdf Imperative vs. deklarative Programmierung, Funktionale Programmierung und Lambda-Kalkül 02.02.17 (2): Korrektur: call-by-value/name, Ergänzung formale Definitionen, verbessertes Bsp. zur Substitution
(07.02.17) Präzisere Definition der Auswertungsstrategien, Substitutionen und alpha-Konversionen
26 Lambda-Ausdrücke in Java 26_JavaLambdas.pdf Lambda-Ausdrücke, Streams, Operationen auf Streams (map, filter, reduce, …) 07.02.17: Hinweise zu Fragen
27 Programmierwerkzeuge 27_Tools.pdf Build-Systeme, Abhängigkeitsverwaltung, Versionierungssysteme, IDEs
Inhaltsverzeichnis Inhaltsverzeichnis.pdf Übersicht behandelter Themen keine Garantie für Vollständigkeit
Kap./Abschnitt Programmtext Beschreibung Hinweis
03 Grundkonzepte Schaltjahr.java Programm zur Berechnung von Schaltjahren
04 Algorithmen Endlos.java Nicht-terminierendes Programm
05 Arrays Erathostenes.java ErathostenesOptimized.java Primzahlen
05 Arrays Wettspiel.java Sammelkarten.java Simulationen
05 Arrays Mittelwert.java Ein-/Ausgabe
06 Prozeduren Absolutbetrag.java MaxDrei.java Aufrufbaum.java Abstraktion durch Prozeduren
06 Prozeduren Statistics.java Bibliothek zur Datenauswertung Zum Compilieren benötigen Sie ausserdem im gleichen Verzeichnis die Dateien StdOut.java und StdIn.java aus den Übungen (siehe unten)
07 Spezifikation und Testen junitrunner.jar Bibliothek und Programm zum Ausführen von JUnit Tests
07 Spezifikation und Testen GCD.javaArrayBeispiel.javaArrayBeispielTest.java MinPos.javaSortiertTest.java Beispiele zu JUnit Tests
08 Objekte und Klassen ColorSquares.javaLuminanceTest.java Verwendung von Objekten
09 Klassendeklaration Date.java Entry.java Node.java RunnersDiary.java Lauftagebuch
10 Kapselung/Listen IntList.java IntListIterator.java Node.java IntListTest.java Einfach verkettete Listen
11 Bäume BinTree.javaTreeNode.java Markierter Binärbaum
13 Collections und Generics Duo.javaGenericList.zip Generische Klassen
13 Collections und Generics Word.javaCollectionsTest.java Tests und Beispiel zum Umgang mit Collections
14 Maps Maps.zip ListMap, TreeMaph, HashMap, Tests
14 Maps Birthdays.zip Geburtstagslisten
15 Vererbung GeometrischeFiguren.zip Wetter.zip Attributvererbung.java Zustandserweiterung.java Beispiele aus dem Skript
17 Streams 17_Streams.zip Liebesbriefadapter, CharStream-Beispiele
23 Effizienz von Algorithmen und Datenstrukturen 23_Algorithmenanalyse.zip

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

Nr. Blatt LHV Material Bemerkungen
01 PDF PDF Keine Abgabe
02 PDF PDF vorwissenstest.pdf
03 PDF PDF
04 PDF PDF StdIn.java StdOut.java StdDraw.java wahlen.txt wahlen15.txt wahlen16.txt
05 PDF PDF junitrunner.jar (siehe oben)
Zu Aufgabe 1: Intersection.java IntersectionTests.java
Zu Aufgabe 2: Procs.java
Zu Aufgabe 3: SpecificationTesting.java
Zu Aufgabe 4: Histograms.java klausur.txt ReadStrings.java
Zu Aufgabe 5: Picture.java PicEditTests.java
06 PDF PDF Zu Aufgabe 1: StringBuilderTest.java
Zu Aufgabe 3: carambolage.zip
Auf manchen Rechnern kann es bei Aufgabe 3 zu Anzeige-Fehlern kommen. Probieren Sie in diesem Fall die Zeile „createBufferStrategy(20);“ in Gui.java durch „createBufferStrategy(1);“ zu ersetzen. Sollte der Fehler bei Ihnen auftreten, schicken Sie bitte eine Mail mit Angabe von Betriebssystem, Java-Version und Grafikkarten-Modell an Peter Zeller.
07 PDF PDF Zu Aufgabe 1: DLIntList.java DNode.java DLIntListTest.java Sum.java
Zu Aufgabe 2: Siehe Material zur Vorlesung
08 PDF PDF Stack.java StackImpl.java
09 PDF PDF Grafikeditor.zip
10 PDF PDF Zu Aufgabe 2: DefProg.java
Zu Aufgabe 3: Queue.java QueueTest.java
Zu Aufgabe 4: Installation von C
PK PDF PDF Die Ergebnisse der Probeklausur können Sie im STAT System einsehen. Die korrigierten Klausuren werden in der Woche nach der Probeklausur in den Übungen zurückgegeben.
11 PDF PDF Zu Aufgabe 4: sort.c Hinweis zu Aufgabe 1 und 3: Wenn die Eingabe zu Ende (leer) ist, gibt scanf den Wert EOF (eine Konstante mit negativem Wert) zurück.
12 PDF PDF Zu Aufgabe 1: linkedlist.c
Zu Aufgabe 2: dict.c
Korrektur (26.01.): Die main-Funktion in der Vorlage dict.c konnte zu einem Absturz des Programms führen, wenn „dict_get“ NULL zurückgibt.
13 PDF PDF Zu Aufgabe 3: Umwandeln.java
Zu Aufgabe 4: aufwand.c
14 PDF PDF Zu Aufgabe 6: Lambdas.java
Zu Aufgabe 7: lambda.zip
Hinweis zu Aufgabe 8: Racket ist auf tux5 und tux6 vom SCI für Sie installiert

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.

Zusatzmaterial für Fortgeschrittene

Die Extra-Übungsgruppe findet immer Mittwochs, 15:30, in Raum 34-420 statt.

Wenn möglich, bringen Sie bitte einen Laptop mit eingerichteter Entwicklungsumgebung und WLAN Zugang mit.

Blatt Material Beschreibung
PDF parser_template.zip Template zur Implementierung eines Parsers nach dem Prinzip des rekursiven Abstiegs
PDF
PDF
PDF
PDF
PDF
offiziell/material.txt · Zuletzt geändert: 2017/03/07 11:27 von Mathias Weber