HOME | ENGLISH | IMPRESSUM | KIT

Programmierparadigmen - Übungen

Neuigkeiten

16.10.2017 Die Klausurergebnisse für die Klausur vom 25.09.2017 hängen aus (Gebäude 50.34, gegenüber von der Informatik-Bibliothek und gegenüber des Sekretariats des Lehrstuhls Snelting).
13.10.2017 Mündliche Nachprüfungen für Studierende, die die Prüfung im Drittversuch nicht bestanden haben, werden am 19.10.2017 und 25.10.2017 stattfinden. Die Prüfungstermine für Studierende, die im Zweitversuch nicht bestanden haben, werden noch bekannt gegeben; diese finden voraussichtlich in der Woche vom 23.10.2017-27.10.2017 statt. Betroffene Studierende werden per E-Mail über ihren Nachprüfungstermin benachrichtigt. Bitte melden Sie sich nach Erhalt dieser E-Mail so schnell wie möglich per Mail beim Sekretariat, um Ihren Termin zu bestätigen.
11.10.2017 Hier der Terminplan des weiteren Ablaufs bezüglich der Klausur:
  • Die Klausurergebnisse zur Klausur vom 25.09.2017 werden voraussichtlich am 16.10.2017 ausgehängt (Gebäude 50.34, gegenüber von der Informatik-Bibliothek und gegenüber des Sekretariats des Lehrstuhls Snelting).
  • Die Klausureinsicht findet am 17.10.2017 zwischen 13:00 Uhr und 14:30 Uhr im Raum 010 im Informatik-Gebäude (50.34) statt.
12.09.2017 Das Programmierparadigmen-Forum befindet sich nun im ILIAS. Die alten Beiträge sind noch im alten Forum lesbar.
08.06.2017 Die Anmeldung für die Klausur am 25.09.2017 ist nun freigeschaltet.
09.05.2017 Die Klausurergebnisse für die Klausur vom 06.04.2017 hängen aus (Gebäude 50.34, gegenüber von der Informatik-Bibliothek und gegenüber des Sekretariats des Lehrstuhls Snelting)!
Die Klausureinsicht findet am 11.05.2017 zwischen 13:15 Uhr und 15:30 Uhr im Raum -118 im Informatik-Gebäude (50.34) statt.
Mündliche Nachprüfungen werden am 15.05.2017, 17.05.2017 und 19.05.2017 stattfinden. Betroffene Studierende werden gebeten, sich nach Bekanntgabe der Ergebnisse so schnell wie möglich per Mail beim Sekretariat zu melden, um ihren Termin zu bestätigen.
28.04.2017 Der Termin für die Klausur im SS2017 steht nun fest.
11.04.2017 Falls Sie eine 4.0-Bescheinigung benötigen, schreiben Sie bitte eine kurze diesbezügliche Mail an das Sekretariat und geben Sie Ihren vollen Namen und Ihre Matrikelnummer an. Sollten Sie Probleme mit Fristen bekommen, kommen Sie bitte zu Prof. Snelting in die Sprechstunde.
07.04.2017 Hier der vorläufige Terminplan des weiteren Ablaufs bezüglich der Klausur:
  • Die Klausurergebnisse zur Klausur vom 06.04.2017 werden voraussichtlich am 09.05.2017 ausgehängt (Gebäude 50.34, gegenüber von der Informatik-Bibliothek und gegenüber des Sekretariats des Lehrstuhls Snelting).
  • Die Klausureinsicht findet voraussichtlich am 11.05.2017 zwischen 13:15 Uhr und 15:30 Uhr im Raum -118 im Informatik-Gebäude (50.34) statt.
  • Etwaige mündliche Nachprüfungen werden voraussichtlich am 15.05.2017, 17.05.2017 und 19.05.2017 stattfinden. Betroffene Studierende werden gebeten, sich nach Bekanntgabe der Ergebnisse so schnell wie möglich per Mail beim Sekretariat zu melden, um ihren Termin zu bestätigen.
05.04.2017 Die Hörsaaleinteilung steht nun fest.
10.02.2017 Wie in der Vorlesung angekündigt, findet am Donnerstag, den 30.03.2017, um 11:30 Uhr im Raum -101 im Informatikbau (50.34) eine Fragestunde statt, in der Übungsleiter und Tutoren Fragen zum Vorlesungsstoff beantworten. Idealerweise schicken Sie schon vor dem Termin Ihre Fragen per E-Mail an die Übungsleiter (Simon Bischof, Martin Hecker) oder stellen Ihre Fragen im Forum.
26.01.2017 Am Dienstag, 07. Februar, kommt es für die Übungen zu folgenden Raumänderungen:
  • Gruppe 6, 11:30 bis 13:00 Uhr, findet im Raum -120 Informatikbau (50.34) statt
  • Gruppe 8, 14:00 bis 15:30 Uhr, findet im Raum 236 Informatikbau (50.34) statt
25.01.2017 Da die Vorlesungszeit in zwei Wochen endet, wird in den Übungen in der letzten Vorlesungswoche
  • am Montag, 06. Februar, ausschließlich das Thema Parallelprogrammierung, und
  • am Dienstag, 07. Februar, ausschließlich das Thema Compiler/Bytecode
behandelt. Sie dürfen und sollten daher in dieser Woche zwei Übungstermine wahrnehmen.
23.01.2017 Die Anmeldung für die Klausur am 06.04.2017 ist freigeschaltet. Anmeldeschluss ist der 28.03.2017.
09.12.2016 Hinweis: Die hier veröffentlichten Vorlesungs- und Übungsunterlagen sind von den Änderungen rund um §52a UrhG nicht betroffen und bleiben auch nach dem 31.12.2016 hier verfügbar.
25.11.2016 Am Fr., 02.12.2016 findet die Vorlesung statt!.
17.11.2016 Die Vorlesung am Mi., 14.12.2016 entfällt.
Stattdessen findet diese statt am Fr., 16.12.2016.
21.10.2016 Die WebInscribe-Einteilung für die Übungsgruppen ist jetzt verfügbar.
21.10.2016 Hinweis: Da am Dienstag, den 1.11.2016, ein Feiertag ist, bieten wir folgende Ersatztermine an:
  • Lucas Werkmeister: Freitag, den 28.10.2016, 15:45-17:15 Uhr, Raum -119 Informatikbau (50.34)
  • Jonas Sauer: Montag, den 31.10.2016, 9:45-11:15 Uhr, Raum 236 Informatikbau (50.34)
  • Henning Dieterichs: Montag, den 31.10.2016, 17:30-19:00 Uhr, Raum 236 Informatikbau (50.34)
  • Jonas Sauer: Mittwoch, den 2.11.2016, 15:45-17:15 Uhr, Raum 301 Informatikbau (50.34)

Inhalt

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

Anmeldung für die Übungsgruppen

Die Einteilung der Übungsgruppen findet über WebInscribe statt. Eine Übersicht über die Termine der 8 Übungsgruppen finden Sie unten. Sie brauchen nur eine der Übungsgruppen besuchen.

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
11.10.2016 Erste Schritte mit Haskell [Übungsblatt 0]
20.10.2016 Rekursive Funktionen und Listen [Übungsblatt 1][Zusatzblatt 1]
[Beispiellösung Blatt 1][Beispiellösung Zusatzblatt 1]
27.10.2016 Bindung, Kombinatoren, Pattern [Übungsblatt 2][Zusatzblatt 2]
[Beispiellösung Blatt 2][Beispiellösung Zusatzblatt 2]
03.11.2016 Laziness, Streams [Übungsblatt 3][Zusatzblatt 3]
[Beispiellösung Blatt 3][Beispiellösung Zusatzblatt 3]
10.11.2016 Datentypen, Typklassen [Übungsblatt 4][Zusatzblatt 4]
[Beispiellösung Blatt 4][Beispiellösung Zusatzblatt 4]
17.11.2016 λ-Kalkül, Church-Zahlen, Typen [Übungsblatt 5][Zusatzblatt 5]
[Beispiellösung Blatt 5][Beispiellösung Zusatzblatt 5]
24.11.2016 Rekursionsoperatoren, Typprüfung [Übungsblatt 6][Zusatzblatt 6]
[Rahmen λ-Interpreter][Tests λ-Interpreter]
[Beispielllösung Blatt 6][Beispielllösung Zusatzblatt 6]
[Beispiellösung λ-Interpreter]
01.12.2016 Prolog, Ausführungsbäume [Übungsblatt 7][Zusatzblatt 7]
[Beispiellösung Blatt 7][Beispiellösung Zusatzblatt 7]
08.12.2016 Prolog, Unifikation, Cuts [Übungsblatt 8][Zusatzblatt 8]
[Beispiellösung Blatt 8][Beispiellösung Zusatzblatt 8]
15.12.2016 Typinferenz, let-Polymorphismus [Übungsblatt 9][Zusatzblatt 9]
[Beispiellösung Blatt 9][Beispiellösung Zusatzblatt 9]
15.12.2016 Weihnachtsaufgaben [Übungsblatt X][Benötigte Dateien und Frameworks]
[Beispiellösung Blatt X][Beispiellösung Musik-Aufgabe][Beispiellösung OSM-Aufgabe]
12.01.2017 C, MPI [Übungsblatt 10][Zusatzblatt 10][Code Aufgabe 2]
[Beispiellösung Blatt 10][Beispiellösung Zusatzblatt 10]
19.01.2017 Java [Übungsblatt 11][Zusatzblatt 11][Vorgegebener Code]
[Beispiellösung Blatt 11][Beispiellösung Zusatzblatt 11][Beispiellösung Merge-Sort]
26.01.2017 Aktormodell, Design by Contract [Übungsblatt 12][Zusatzblatt 12]
[Beispiellösung Blatt 12][Beispiellösung Philosophen][Beispiellösung Zusatzblatt 12]
01.02.2017 Codeerzeugung, syntaktische Analyse [Übungsblatt 13][shortcut.j]
[Benötigte Dateien für Aufgabe 3]
[Zusatzblatt 13][Benötigte Dateien für Aufgabe Z1]
[Beispiellösung Blatt 13][Beispiellösung Zusatzblatt 13]
[Beispiellösung Aufgabe 3][Beispiellösung Aufgabe Z1]

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!

Forum

Für Fragen, Hilfe und Gedankenaustausch zur Übung oder den Übungsaufgaben steht das Forum zur Verfügung.

Termine

Die Übungsgruppen finden wöchentlich statt! Die erste Übung ist am 24.10.2016 bzw. am 25.10.2016. 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 Tobias Kahlert
2 Montags 11:30 Uhr SR 236 Tobias Kahlert
3 Montags 14:00 Uhr SR 131 Lucas Werkmeister
4 Montags 14:00 Uhr SR 301 Henning Dieterichs
5 Dienstags 09:45 Uhr SR 236 Jonas Sauer
6 Dienstags 11:30 Uhr SR 131 Jonas Sauer
7 Dienstags 11:30 Uhr SR 301 Lucas Werkmeister
8 Dienstags 14:00 Uhr SR 131 Henning Dieterichs

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 unserere 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

Ehemalige Tutoren
Henning Dieterichs
Tobias Kahlert
Partner
Heiko Klare
Ehemalige Tutoren
Jonas Sauer
Lucas Werkmeister
Ehemalige Mitarbeiter
Dr.-Ing. Martin Hecker
M.Sc. Simon Bischof