HOME | ENGLISH | IMPRESSUM | KIT

Programmierparadigmen - Übungen

Neuigkeiten

05.12.2017 Der vorläufige Terminplan wurde um die Termine im Jahr 2018 ergänzt.
02.12.2017 Bitte beachten Sie, dass Blatt 7 aktualisiert wurde: Die Aufgabe "Tester & Generatoren" wurde auf das nächste Blatt verschoben und durch eine neue Aufgabe ersetzt.
30.11.2017 Am Dienstag, den 5.12.2017, finden die Übungsgruppen 7 (Tobias Kahlert 11:30) und 10 (Jonas Sauer 14:00) einmalig in Raum 010 (Nordflügel) statt.
09.11.2017 Der vorläufige Terminplan wurde angepasst: Am Freitag, den 24.11.2017, findet keine Vorlesung statt. Am Freitag, den 01.12.2017, findet die Vorlesung statt.
21.10.2017 Die WebInscribe-Einteilung für die Übungsgruppen ist abgeschlossen. Die Ergebnisse sind unter https://webinscribe.ira.uka.de/progpar2017 verfügbar.
18.10.2017 Hinweis: Da am Dienstag, den 31.10.2017, ein Feiertag ist, bieten wir folgende Ersatztermine an:
  • Tobias Kahlert: Freitag, den 27.10.2016, 09:45-11:15 Uhr, Raum 236 Informatikgebäude (50.34)
  • Tobias Kahlert: Freitag, den 27.10.2016, 11:30-13:00 Uhr, Raum -119 Informatikgebäude (50.34)
  • sowie alle Montagstermine

Inhalt

In den Übungen werden die Themen der Vorlesung Programmierparadigmen wiederholt und vertieft. Weiterhin werden die Übungsaufgaben vorgestellt und die Lösungen besprochen.

Material

Das Vorlesungs- und Übungsmaterial darf ausschließlich zu Zwecken genutzt werden, die in direktem Zusammenhang mit der Veranstaltung Programmierparadigmen stehen. Insbesondere die Weitergabe des hier zur Verfügung gestellten Materials an Dritte ist nicht gestattet. Foliensätze, Übungsblätter und hier veröffentlichter Quell-Code unterliegen dem Copyright des Lehrstuhls Programmierparadigmen (IPD Snelting).

Das Material kann nur aus dem Uni-Netz heruntergeladen werden. Verwenden Sie bitte den VPN-Client des SCC, falls Sie von außerhalb Zugriff benötigen.

Datum Thema Unterlagen
16.10.2017 Erste Schritte mit Haskell [Übungsblatt 0]
19.10.2017 Rekursive Funktionen und Listen [Übungsblatt 1][Zusatzblatt 1]
[Beispiellösung Blatt 1][Beispiellösung Zusatzblatt 1]
26.10.2017 Bindung, Kombinatoren, Patterns [Übungsblatt 2][Zusatzblatt 2]
[Beispiellösung Blatt 2][Beispiellösung Zusatzblatt 2]
02.11.2017 Laziness, Streams [Übungsblatt 3][Zusatzblatt 3]
[Beispiellösung Blatt 3][Beispiellösung Zusatzblatt 3]
09.11.2017 Datentypen, Typklassen [Übungsblatt 4][Zusatzblatt 4]
[Beispiellösung Blatt 4][Beispiellösung Zusatzblatt 4]
16.11.2017 λ-Kalkül, Church-Kodierungen [Übungsblatt 5][Zusatzblatt 5]
[Beispiellösung Blatt 5][Beispiellösung Zusatzblatt 5]
23.11.2017 Rekursionsoperatoren, Typprüfung [Übungsblatt 6][Zusatzblatt 6]
[Rahmen λ-Interpreter][Tests λ-Interpreter]
[Beispielllösung Blatt 6][Beispielllösung Zusatzblatt 6]
[Beispiellösung λ-Interpreter]
30.11.2017 Prolog
Update 2.12.17: Aufgabe "Tester & Generatoren" wurde auf das nächste Blatt verschoben und durch eine neue Aufgabe ersetzt
[Übungsblatt 7][Zusatzblatt 7]
[Beispiellösung Blatt 7][Beispiellösung Zusatzblatt 7]
07.12.2017 Prolog, Unifikation, Cuts [Übungsblatt 8][Zusatzblatt 8]
14.12.2017 Typinferenz, let-Polymorphismus [Übungsblatt 9][Zusatzblatt 9]
14.12.2017 Weihnachtsaufgaben [Übungsblatt X][Benötigte Dateien und Frameworks]

Bearbeitung der Übungsaufgaben

Die Bearbeitung der Übungsaufgaben ist keine Voraussetzung für die Teilnahme an der Klausur. Wir empfehlen Ihnen trotzdem sehr, die Übungsaufgaben selbstständig zu bearbeiten und regelmäßig an den Übungen teilzunehmen. Insbesondere empfehlen wir, selbst am eigenen Rechner mit den vorgestellten Programmiersprachen zu experimentieren und eigene Programme zu schreiben!

Digitale Lösungen können in unserer Praktomat-Instanz abgegeben werden, Lösungen auf Papier in unserem Abgabekasten im Untergeschoss des Informatikgebäudes; nähere Informationen entnehmen Sie bitte dem jeweiligen Übungsblatt. Ihre Abgaben werden von Ihrem Tutor korrigiert und digital bzw. in der entsprechenden Übung zurückgegeben.

Forum

Für Fragen, Hilfe und Gedankenaustausch zur Übung oder den Übungsaufgaben stehen Foren im ILIAS zur Verfügung.

Termine

Die Übungsgruppen finden wöchentlich statt! Die erste Übung ist am 23.10.2017 bzw. am 24.10.2017. Alle Übungsgruppen finden in Seminarräumen des Informatik-Baus (Gebäude 50.34) statt.

Gruppe Tag Beginn Ort Gruppenleiter
1 Montags 09:45 Uhr SR 131 Roman Langrehr
2 Montags 11:30 Uhr SR 236 Henning Dieterichs
3 Montags 14:00 Uhr SR 131 Daniel Krüger
4 Montags 14:00 Uhr SR 301 Jonas Sauer
5 Montags 17:30 Uhr SR 236 Roman Langrehr
6 Dienstags 09:45 Uhr SR 236 Tobias Kahlert
7 Dienstags 11:30 Uhr SR 131 Tobias Kahlert
8 Dienstags 11:30 Uhr SR 301 Henning Dieterichs
9 Dienstags 14:00 Uhr SR -119 Daniel Krüger
10 Dienstags 14:00 Uhr SR 131 Jonas Sauer

Programmierparadigmen VM-Image

Eine Virtuelle Maschine mit vorinstallierten Entwicklungsumgebungen für alle in der Vorlesung behandelten Sprachen ist verfügbar.

Haskell

Zum Experimentieren und zur Bearbeitung der Übungsaufgaben zum Thema funktionale Programmierung benötigen Sie eine Haskell Programmierumgebung. Wir empfehlen dazu die Installation der

Diese enthält neben einem Compiler (GHC) auch den Interpreter GHCi. Falls Sie Ihre Haskell-Programme nicht in einem einfachen Texteditor schreiben wollen, empfehlen sich

Die Haskell Platform ist auch auf den Rechnern im ATIS-Rechnerpool verfügbar.

Neben der in der Vorlesung empfohlenen Literatur weisen wir auch auf folgende Online-Einführungen hin:

λ-Kalkül

Zum Ausprobieren können Sie z.B. die Web-λ-Interpreter unserer Tutoren verwenden:

Oder z.B. auch:

Prolog

Zur Bearbeitung der Übungsaufgaben zum Thema logische Programmierung benötigen Sie eine Prolog-Programmierumgebung. Zum Einstieg reicht hierfür eine Web-IDE:

Gängige Prolog-Implementierungen, jeweils verfügbar für Linux/Windows/MacOS X, sind:

Neben einem normalen Texteditor gibt es zur Bearbeitung von Prolog-Programmen u.A.

Als zusätzliche Lernmaterialien empfehlen wir folgende Online-Einführung:

Hiervon existiert auch eine Variante mit integrierter Web-IDE für Beispiele und Übungsaufgaben.

Akka

Um Akka Aktoren in Java zu verwenden, müssen Teile der Akka Bibliothek in den Classpath eingebunden werden. Dazu gibt es verschiedene Möglichkeiten, unter anderem:

  • Herunterladen der Akka Bibliothek (Standalone Distribution) und Einbinden der Jars akka-actor, scala-library und config in den Java Classpath
  • Erstellen eines Maven Projektes und Hinzufügen einer Dependency zu Akka:
    • GroupId: com.typesafe.akka
    • ArtifactId: akka-actor_2.11
    • Version: 2.4.11

Compiler

Ein Verfahren zur systematischen Berechnung von First1 und Follow1 Mengen wird z.B. hier gezeigt (Implementierung in Haskell). Online ausprobieren können Sie z.B.

Veranstalter

Partner
Heiko Klare
Wissenschaftliche Mitarbeiter
Simon Bischof
Sebastian Ullrich
Tutoren
Henning Dieterichs
Tobias Kahlert
Daniel Krüger
Roman Langrehr
Jonas Sauer