HOME | ENGLISH | IMPRESSUM | KIT

Programmierparadigmen - Übungen

Neuigkeiten

29.10.2021 Die vorläufigen Noten der Klausur sind nun im Campus-System eingetragen. Falls Ihre Anmeldung für die Prüfung Programmierparadigmen im Campus-System gesperrt ist oder Sie noch unter der SPO 2008 studieren, sollten Ihnen Punktzahl und Note über das WiWi-Portal mitgeteilt worden sein. Hier finden Sie ein Histogramm der erreichten Punktzahlen (Bestehensgrenze: 47 Punkte). Den Notenschlüssel finden Sie hier (nur aus dem KIT-Netz/VPN erreichbar).

Die Klausureinsicht findet am Dienstag, den 02.11.2021 ab 13:00 Uhr in der Informatikbibliothek statt. Bitte kommen sie gemäß der letzten Ziffer ihrer Matrikelnummer:

0, 12, 34, 56, 78, 9
13:0013:1513:3013:4514:00
16.09.2021 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. Für eine Ummeldung zum Master zum WS21/22 sollten die Noten rechtzeitig eingetragen sein, da die Ummeldung noch bis Ende November erfolgen kann. Sie sollten in diesem Fall keine 4,0-Bescheinigung benötigen.
24.08.2021 Von einem PSE-Team gibt es nun Typicalc, ein Tool zur Visualisierung der Typinferenz im Lambda-Kalküls.
16.08.2021 Die Klausur im SS2021 findet am 30.09.2021 um 8 Uhr im Zelt auf dem Forum statt.
07.05.2021 Jetzt neu: Punkte-Histogramm (Bestehensgrenze: 50 Punkte).
03.05.2021 Die vorläufigen Noten der Klausur sind nun im Campus-System eingetragen. Falls Ihre Anmeldung für die Prüfung Programmierparadigmen im Campus-System gesperrt ist oder Sie noch unter der SPO 2008 studieren, sollten Ihnen Punktzahl und Note über das WiWi-Portal mitgeteilt worden sein. Hier finden Sie ein Histogramm der erreichten Punktzahlen. Die Klausureinsicht findet am Donnerstag, den 06.05.2021 ab 10:00 Uhr statt. Interessenten müssen sich bis Mittwoch, den 05.05. um 15:00 Uhr hier anmelden und erhalten dann einen Zeitslot zwischen 10:00 und 14:00 Uhr zugeordnet. Aufgrund der weiter bestehenden Hygienevorgaben bitten wir Sie, sich nur bei begründetem Interesse anzumelden, zum Beispiel bei einer Punktzahl knapp unter einem Notenschritt! Den Notenschlüssel finden Sie hier (nur aus dem KIT-Netz/VPN erreichbar).
12.04.2021 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. Für eine Ummeldung zum Master zum SS21 sollten die Noten rechtzeitig eingetragen sein, da die Ummeldung noch bis Ende Mai erfolgen kann. Sie sollten in diesem Fall keine 4,0-Bescheinigung benötigen.
09.04.2021 Die Hörsaal-Einteilung zur Klausur steht nun fest.
07.04.2021 Die Einteilung in Hörsäle findet sich am Freitag um 12 Uhr auf dieser Seite.
29.03.2021 Die hohen Anmeldezahlen zur Klausur führen am KIT zu Hörsaal- und bei uns zu Personal-Engpässen. Daher bitten wir Studierende, die absehen können, dass sie die Klausur nicht mitschreiben werden, sich möglichst bis zum Abend des 5. April abzumelden. Danken wird es Ihnen die Raumverwaltung des KIT sowie Ihre Kommilitonen, auf deren Fragen bei dünnbesetztem Personal evtl. nicht eingegangen werden kann. Die Durchführbarkeit der Klausur ist in jedem Fall gewährleistet.
09.02.2021 Am Mittwoch, den 31.03.2021, um 14:00 Uhr findet eine Fragestunde per Zoom (gleicher Link wie Vorlesung, siehe ILIAS) statt, in der Übungsleiter Fragen zum Vorlesungsstoff beantworten. Idealerweise schicken Sie schon vor dem Termin Ihre Fragen per E-Mail an die Übungsleiter (Sebastian Ullrich, Sebastian Graf) oder stellen Ihre Fragen im ILIAS-Forum.
11.01.2021 Die Vorlesung vom 15.02.2021 wurde auf den 17.02.2021 verschoben.
09.12.2020 Die Klausur im WS2020/21 findet am 09.04.2021 um 17 Uhr im Zelt auf dem Forum statt.
25.11.2020 Am 11.12. findet ein zusätzlicher Vorlesungstermin statt.
29.10.2020 Aufgrund der aktuellen Entwicklungen hat das Ministerium Präsenz in Vorlesungen und Tutorien bis auf Weiteres abgesagt. Die erste Vorlesung findet Mi, 4.11. um 14.00 Uhr per Zoom statt. Bitte melden Sie sich unbedingt im ILIAS an. Weitere Infos folgen.

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 ab Mittwoch, den 4.11.2020, um 14:00 Uhr unter http://go.wiwi.kit.edu/propa2021 statt. Eine Übersicht über die Termine der 8 Übungsgruppen finden Sie unten. Sie brauchen nur eine der Übungsgruppen besuchen. Die Anmeldung endet am Freitag, den 6.11.2020, um 16:30 Uhr.

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
04.11.2020 Erste Schritte mit Haskell [Übungsblatt 0]
09.11.2020 Rekursive Funktionen in Haskell [Übungsblatt 1] [Beispiellösung Blatt 1]
16.11.2020 Endliche und unendliche Listen [Übungsblatt 2] [Beispiellösung Blatt 2]
23.11.2020 Datentypen, Typklassen [Übungsblatt 3] [Beispiellösung Blatt 3]
30.11.2020 λ-Kalkül, Church-Kodierungen [Übungsblatt 4] [Beispiellösung Blatt 4]
07.12.2020 Rekursionsoperatoren, Typprüfung [Übungsblatt 5] [Beispiellösung Blatt 5]
14.12.2020 Vier Farben, reguläre Ausdrücke, Rätsel [Übungsblatt 6] [Beispielllösung Blatt 6]
21.12.2020 Prolog, Cuts [Übungsblatt 7] [Beispiellösung Blatt 7]
27.12.2020 Weihnachtsaufgaben [Übungsblatt X][Benötigte Dateien und Frameworks]
11.01.2021 Parallelprogrammierung Grundlagen, C, MPI [Übungsblatt 8][Code Aufgabe 3]
[Beispiellösung Blatt 8]
18.01.2021 Java [Übungsblatt 9][Code Aufgabe 3][Code Aufgabe 5] [Beispiellösung Blatt 9][Beispiellösung Producer-Consumer]
25.01.2021 Aktormodell, Design by Contract
[Übungsblatt 10] [Beispiellösung Blatt 10][Beispiellösung Philosophen]
01.02.2021 Unifikation, Typinferenz, let-Polymorphismus
Update 10.02.2021: Beispiellösung Aufgabe 2: Anwendung der Var-Regel an Vorlesungsschema angepasst
[Übungsblatt 11] [Beispiellösung Blatt 11]
08.02.2021 Syntaktische Analyse
Update 10.02.2021: Aufgabe 3: Code und Aufgabentext angepasst
[Übungsblatt 12] [Benötigte Dateien für Aufgabe 3]
[Beispiellösung Blatt 12]
[Beispiellösung Aufgabe 3]
15.02.2021 Codeerzeugung [Übungsblatt 13] [shortcut.j] [Beispiellösung Blatt 13]
23.02.2021 Zusatzaufgaben [Zusatzblatt] [Beispiellösung Zusatzblatt]
[Beispiellösung λ-Interpreter] [Beispiellösung Code Merge-Sort] [Beispiellösung Code Merge-Sort] [Beispiellösung Code Merge-Sort]

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!

Lösungen können in unserer Praktomat-Instanz abgegeben werden. Ihre Abgaben werden von Ihrem Tutor korrigiert und digital zurückgegeben.

Forum

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

Termine

Die Übungsgruppen finden wöchentlich statt!
Die Anmeldung findet vom 4.11.2020 14:00 bis 6.11.2020 16:30 unter http://go.wiwi.kit.edu/propa2021 statt. Die erste Übung ist am 10.11.2020-13.11.2020.
Die Übungsgruppen finden in Präsenz oder online statt. Präsenzgruppen können nur von Studierenden besucht werden, die für die jeweilige Gruppe angemeldet sind! Onlinegruppen finden auf MS Teams statt, siehe ILIAS-Kurs für Details. Bei Problemen und Fragen wenden Sie sich bitte an Ihre Übungsleiter (siehe unten).
WICHTIG: Bis auf Weiteres finden alle Tutorien unabhängig von der Angabe unten online statt. Das Vorgehen für das Neue Jahr steht zum aktuellen Zeitpunkt noch nicht fest.

Gruppe Tag Uhrzeit Ort Gruppenleiter
1 Dienstags 10:00-11:30 Hertz-Hörsaal (10.11) Paul Brinkmeier
2 Dienstags 12:00-13:30 online Samuel Teuber
3 Dienstags 14:00-15:30 Seminarraum -119 (50.34) Thomas Weidmann
4 Mittwochs 10:00-11:30 online Samuel Teuber
5 Mittwochs 12:00-13:30 Chemie, Neuer Hörsaal (30.46) Moritz Potthoff
6 Donnerstags 10:00-11:30 Hertz-Hörsaal (10.11) Thomas Weidmann
7 Donnerstags 12:00-13:30 online Lars König
8 Donnerstags 14:00-15:30 online Lars König
9 Freitags 12:00-13:30 Engelbert-Arnold-Hörsaal (11.10) Moritz Potthoff

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 die aus PSE entstandene Web-IDE verwenden:

Oder einen der zahlreichen anderen Web-Interpreter:

Typinferenz

Um die Typinferenz nachvollziehbarer zu machen, hat ein PSE-Team ein Tool zur Visualisierung erstellt:

Feedback und Kontakt zu den Autoren gerne über gitlab.

Prolog

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

Ebenfalls im Rahmen von PSE entstanden sind zwei Prolog-Interpreter, welche die in der Vorlesung vorgestellten Ausführungsbäume anzeigen können:

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. Die Bibliothek wird über Maven Central bereitgestellt, weshalb der einfachste Weg die Verwendung eines Maven-Projektes mit der passenden Dependency ist:

  • GroupId: com.typesafe.akka
  • ArtifactId: akka-actor_2.11
  • Version: 2.5.19

Hinweis: Verwenden Sie Akka mindestens in der Version 2.5.x. Die Versionen 2.4.x und früher haben eine andere API, die zwar (teilweise) noch vorhanden ist, aber als deprecated deklariert wurde.

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
Paul Brinkmeier
Lars König
Moritz Potthoff
Samuel Teuber
Thomas Weidmann
Wissenschaftliche Mitarbeiter
Sebastian Graf
Ehemalige Mitarbeiter
Dr.-Ing. Sebastian Ullrich