Neuigkeiten
27.04.2023 |
Die Ergebnisse der Klausur vom 31.03.2023 sind nun vorläufig im Campus-System eingetragen. 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 (Lehramt: hier). Die Klausureinsicht findet am Mittwoch, den 3.5.2023, von 16:00 bis 17:30 im Raum 010 im Informatik-Gebäude (50.34) statt. Wir bitten die Studierenden entsprechend ihrer Matrikelnummern zu folgenden Uhrzeiten zu erscheinen:
|
||||||
3.4.2023 | 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 SS23 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. | ||||||
30.3.2023 | Die Hörsaaleinteilung für die Klausur am 31.03.2023 steht nun fest. | ||||||
13.3.2023 | Die Vorlesungsaufzeichnungen aus dem WS2020/21 sind ab jetzt bis zur Klausur im ILIAS verfügbar. | ||||||
13.2.2023 | Am 23.3. um 14:00 Uhr findet im Hörsaal -101 des Informatikgebäudes (50.34) eine Fragestunde zum Stoff der Vorlesung und zur Klausur statt. Fragen können auch vorher gerne an Sebastian Graf oder Jakob von Raumer gesendet werden. | ||||||
23.1.2023 | Am 27.1. findet keine Vorlesung statt, die nächste Vorlesung findet dann wieder am 1.2. statt. In der letzten Vorlesungswoche findet voraussichtlich keine Vorlesung statt. | ||||||
8.12.2022 | Die letzte Vorlesung des Kalenderjahres findet am 14.12. statt, danach ist Weihnachtspause. | ||||||
20.10.2022 |
Der 1.11. ist ein Feiertag. Für die betroffenen Tutorien wird es folgende Ersatztermine geben:
|
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.
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 in den Räumen des Informatik-Baus (Gebäude 50.34) statt.
Gruppe | Tag | Uhrzeit | Ort | Gruppenleiter |
---|---|---|---|---|
1 | Montags | 09:45-11:15 | SR 131 | Samuel Born |
2 | Montags | 11:30-13:00 | SR 236 | Samuel Born |
3 | Dienstags | 9:45-11:15 | SR 236 | Tom Hüller |
4 | Dienstags | 11:30-13:00 | SR 131 | Tom Hüller |
5 | Dienstags | 15:45-17:15 | HS -102 | Paul Brinkmeier |
6 | Dienstags | 14:00-15:30 | SR -119 | Paul Brinkmeier |
7 | Mittwochs | 09:45-11:15 | SR -119 | David Kaufmann |
8 | Mittwochs | 11:30-13:00 | SR -119 | David Kaufmann |
Haskell
Zum Experimentieren und zur Bearbeitung der Übungsaufgaben zum Thema funktionale Programmierung benötigen Sie eine Haskell Programmierumgebung. Wir empfehlen dazu die Installation von
Mit GHCup können Sie neben einem Compiler (GHC) (inklusive Interpreter GHCi) auch den Haskell Language Server und das Build-Tool cabal herunterladen. Falls Sie Ihre Haskell-Programme nicht in einem einfachen Texteditor schreiben wollen, empfiehlt sich VS Code mit dem Haskell Language Server.
Auf den Rechnern im ATIS-Rechnerpool ist ebenfalls eine (veraltete) Installation in Form der Haskell Platform verfügbar.
Eine Web-IDE für Haskell gibt es auf Replit.
LambdaBubblePop ist eine nette, interaktive Alternative zu ghc-vis für ein Untermenge von Haskell, bei der man die Auswertungreihenfolge per Klick auf ein Redex beeinflussen kann.
Neben der in der Vorlesung empfohlenen Literatur weisen wir auch auf folgende Online-Einführungen hin:
- O'Sullivan,Stewart,Goerzen Real World Haskell
- Allen,Moronuki Haskell Programming from First Principles
- Bird Thinking Functionally with Haskell
λ-Kalkül
Zum Ausprobieren können Sie die aus PSE entstandene Web-IDE verwenden:
Oder einen der zahlreichen anderen Web-Interpreter:
- lambda [Tobias Kahlert, auf github]
- LambdaCalculus2 [Henning Dieterichs, auf github]
- Alligator Eggs Calculator [Takashi Yamamiya, auf github]
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.
- den SWI-Prolog Editor (Windows)
- das Eclipse Plugin Prolog Development Tool
Als zusätzliche Lernmaterialien empfehlen wir folgende Online-Einführung:
- Patrick Blackburn, Johan Bos, Kristina Striegnitz Learn Prolog Now!
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.- Eine Implementierung von Hacking Off
- The Context Free Grammar Checker, welcher auch Refaktorisierungen von Grammatiken ermöglicht.
Veranstalter
Wissenschaftliche Mitarbeiter |
---|
Dr. Jakob von Raumer |
Sebastian Graf |
Tutoren |
---|
Samuel Born |
Paul Brinkmeier |
Tom Hüller |
David Kaufmann |