HOME | ENGLISH | IMPRESSUM | KIT

Programmierparadigmen - Übungen

Neuigkeiten

21.10.2022 Die Ergebnisse der Klausur vom 29.09.2022 sind nun vorläufig im Campus-System eingetragen. Die Klausureinsicht findet am Dienstag, den 25.10.2022, von 15:45 bis 17:15 im Raum -102 im Informatik-Gebäude (50.34) statt. Studierende, die die Prüfung wiederholt nicht bestanden haben, werden per E-Mail über den Termin ihrer mündlichen Nachprüfung 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. Den Notenschlüssel zur Klausur finden Sie hier.
2.5.2022 Die Klausureinsicht findet am Mittwoch, den 4.5.2022, von 10:00 bis 11:30 im Raum -143 (ATIS-Poolraum) im Informatik-Gebäude (50.34) statt. Studierende, die die Prüfung wiederholt nicht bestanden haben, werden per E-Mail über den Termin ihrer mündlichen Nachprüfung 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. Den Notenschlüssel zur Klausur finden Sie hier, die vorläufigen Noten der Herbstklausur sind nun im Campus-System eingetragen. Falls Ihre Anmeldung für die Prüfung Programmierparadigmen im Campus-System gesperrt ist, sollten Sie eine Mail über das Vorgehen erhalten. Ihre Punkte können Sie in diesem Fall im Sekretariat erfragen.
12.4.2022 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 SS22 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.
29.11.2021 Die Vorlesung findet weiterhin in Präsenz statt. Es dürfen nur Geimpfte und Genesene in Präsenz teilnehmen, alle anderen verwenden bitte die Aufzeichnung (siehe ILIAS). Es findet ferner eine 2G-Vollkontrolle statt. Bitte kommen Sie etwas früher und halten Ihren digitalen Impfnachweis bereit. Wir empfehlen dringend, den Impfnachweis auf die KIT-Karte aufzuspielen, da die Kontrolle dann schnell per KONKIT geschehen kann. Das Konkit-Gerät am Hertz-Hörsaal ist inzwischen repariert und auf 2G umgestellt.
5.11.2021 Ab sofort können Sie auch ohne vorherige Buchung in die Vorlesung kommen.
14.10.2021 Wie Sie heute per Mail informiert worden sein sollten, können Sie ab Montag an entsprechenden Geräten in Mensa, Bibliothek und Audimax Ihren 3G-Status auf Ihre KIT-Karte laden. Wir bitten darum, von dieser Möglichkeit Gebrauch zu machen, um den Einlass in Programmierparadigmen und andere große Vorlesungen zu beschleunigen.
11.10.2021 Für die Vorlesung wird in diesem Semester zunächst die im ILIAS verlinkte Ticketing-Funktion verwendet werden, um eine Überfüllung des Hörsaals zu vermeiden. Die Buchung für die Vorlesungen werden jeweils zwei Tage vorher um 9:00 Uhr freigeschaltet. Da wir am 20.10. die Einhaltung der 3G-Regel kontrollieren werden, bitten wir um rechtzeitiges Erscheinen, am besten schon um etwa 13:40!
9.9.2021 Die Veranstaltung wird im Wintersemester gemäß der KIT-Richtlinien hauptsächlich in Präsenz stattfinden, sowohl die Vorlesung als auch die Mehrheit der Tutorien. Hierbei wird eine Nachweispflicht für den Status als getestete, geimpfte oder genesene Person (3G) erforderlich sein. Eine Aufzeichnung der Vorlesung (nur Beamer und Audio) wird verfügbar sein.

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
19.10.2021 Erste Schritte mit Haskell [Übungsblatt 0]
22.10.2021 Rekursive Funktionen in Haskell [Übungsblatt 1] [Beispiellösung Blatt 1]
29.10.2021 Bindung, Kombinatoren, Terme [Übungsblatt 2] [Beispiellösung Blatt 2]
5.11.2021 Streams, Laziness [Übungsblatt 3] [Beispiellösung Blatt 3]
12.11.2021 Datentypen, Typklassen [Übungsblatt 4] [Beispiellösung Blatt 4]
19.11.2021 λ-Kalkül, Church-Kodierungen [Übungsblatt 5] [Beispiellösung Blatt 5]
26.11.2021 Rekursionsoperatoren, Typprüfung [Übungsblatt 6] [Beispiellösung Blatt 6]
3.12.2021 Prolog [Übungsblatt 7] [Beispiellösung Blatt 7]
10.12.2021 Prolog, Cuts [Übungsblatt 8] [Beispiellösung Blatt 8]
17.12.2021 Unifikation, Typinferenz mit let [Übungsblatt 9] [Beispiellösung Blatt 9]
21.12.2021 Weihnachtsaufgaben [Übungsblatt X] [Dateien]
14.01.2022 Parallelprogrammierung Grundlagen, C, MPI [Übungsblatt 10][Code Aufgabe 3] [Beispiellösung Blatt 10]
21.01.2022 Java [Übungsblatt 11][Code Aufgabe 3][Code Aufgabe 5]
[Beispiellösung Blatt 11][Beispiellösung Producer-Consumer]
28.01.2022 Aktormodell, Design by Contract
[Übungsblatt 12] [Beispiellösung Blatt 12][Beispiellösung Philosophen]
02.02.2022 Syntaktische Analyse [Übungsblatt 13][Dateien] [Beispiellösung Blatt 13]
02.02.2022 Codeerzeugung [Übungsblatt 14][shortcut.j] [Beispiellösung Blatt 14]
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!
Alle Präsenz-Übungsgruppen finden in Seminarräumen des Informatik-Baus (Gebäude 50.34) statt.

Gruppe Tag Uhrzeit Ort Gruppenleiter
1 Montags 10:00-11:30 SR 131 Lars König
2 Montags 12:00-13:30 SR 236 Martin Lange
3 Montags 14:00-15:30 SR 131 Martin Lange
4 Montags 14:00-15:30 SR 301 Benedikt Hahn
5 Dienstags 10:00-11:30 SR 236 Paul Brinkmeier
6 Dienstags 12:00-13:30 SR 131 Paul Brinkmeier
7 Dienstags 12:00-13:30 SR 301 Peter Naumann
8 Dienstags 14:00-15:30 SR -119 Peter Naumann
9 Dienstags 14:00-15:30 SR 131 Benedikt Hahn
10 Dienstags 16:00-17:30 Online Lars König

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, empfiehlt sich VS Code mit dem Haskell Language Server.

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

Eine Web-IDE für Haskell gibt es auf Replit.

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
Benedikt Hahn
Lars König
Martin Lange
Peter Naumann
Partner
Larissa Schmid
Wissenschaftliche Mitarbeiter
Dr. Jakob von Raumer
Ehemalige Mitarbeiter
Dr.-Ing. Sebastian Ullrich