HOME | ENGLISH | IMPRESSUM | KIT

Programmierparadigmen

Neuigkeiten

08.07.2020 Die Herbstklausur wird am Dienstag, den 06.10.2020 um 09:00 Uhr im Zelt auf dem Forum stattfinden.
30.06.2020 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.
09.06.2020 Wir werden die Fragestunde am Dienstag, den 23.06.2020 um 14:00 Uhr über Zoom nachholen. Weitere Informationen dazu finden Sie im ILIAS-Kurs der Vorlesung (WS 19/20).
19.05.2020 Die reguläre Klausur im Herbst (SS20) findet voraussichtlich am Dienstag, den 6.10. um 10:30 Uhr statt.
15.05.2020 Die Nachhol-Klausur wird am Montag, den 29.06.2020 um 15:00 Uhr in der Schwarzwaldhalle stattfinden. Weitere Details folgen.
08.05.2020 Es wird ein Klausur-Nachholtermin Anfang Juli angeboten. Details werden baldigst bekanntgegeben. Alternativ kann die reguläre Klausur im Herbst besucht werden.
16.03.2020 Ob es einen Klausur-Nachholtermin z.B. Ende Juli geben wird, steht z.Zt. nicht fest. Alle jetzt Angemeldeten werden abgemeldet und sollten sich darauf einstellen, die Klausur zum nächsten regulären Termin im Herbst zu besuchen. Grundsätzlich gilt dabei Nachteilsausgleich: es wird z.B. die Maximalstudiendauer (9 Semester), wenn sie schon ausgereizt ist, um 1 Semester verlängert (vgl. Schreiben von VP Wanner vom 10.3.)

Eine mündliche statt schriftliche Prüfung schon vor Sommer bzw. Herbst wird es hingegen -- schon aus Gründen der Gleichbehandlung, und wiederum in Übereinstimmung mit dem Schreiben von VP Wanner -- nur in absoluten Ausnahmefällen geben; nämlich wenn nachweislich 1. Studienzeitverlängerung droht (also z.B. alle anderen Module nachweislich abgeschlossen sind), 2. die drohende Studienverlängerung nicht selbstverschuldet ist (also nicht z.B. durch "Klausurschieben" selbst verursacht). Nach BPO muss für solche Ausnahmen ein Antrag beim ISS gestellt werden. Interessenten wird empfohlen, vorher die Sprechstunde von Prof. Snelting aufzusuchen.
13.03.2020 Update: Gemäß der Entscheidung des Präsidiums sind alle Veranstaltungen am KIT, einschließlich Klausuren, ab 17.03. bis 19.04. abgesagt. Damit findet auch die PP-Klausur nicht statt. Da sich hiermit der Bedarf für eine öffentliche Fragestunde bis auf Weiteres erübrigt hat, entfällt diese Ersatzlos.
13.03.2020 Update: Gemäß Beschluss der Landesrektorenkonferenz wird die PP-Fragestunde am Montag nicht stattfinden. Wir planen, eine Ersatzveranstaltung stattfinden zu lassen, bei der Sie Fragen zum Stoff stellen können, aber in welcher Form (digital oder nicht) das sein wird, wissen wir noch nicht. Wir halten Sie auf dem Laufenden.
10.03.2020 Hinweis: Gemäß Empfehlung des Präsidiums zur aktuellen COVID-19-Epidemie findet die Klausur statt. Teilnehmer, die ein erhöhtes Corona-Infektions-Risiko haben (z.B. Rückkehrer aus Risikogebieten) werden gebeten, sich bitte umgehend von der Klausur abzumelden! Solchen Teilnehmern wird ein Nachteilsausgleich gewährt. Weitere Hinweise des KIT zum Coronavirus siehe https://www.kit.edu/kit/25911.php.
11.02.2020 Nun steht ein Übungsblatt mit Zusatzaufgaben (für die selbstverständlich keine Abgabe stattfindet) zur Vertiefung des Stoffs zur Verfügung.
03.02.2020 Am Montag, den 16.03.2020 findet um 14:00 Uhr im Raum -101 im Informatikbau (50.34) eine Fragestunde statt, in der Übungsleiter und Tutoren Fragen zum Vorlesungsstoff beantworten. Bitte schicken Sie wenn möglich schon vor dem Termin Ihre Fragen per E-Mail an die Übungsleiter (Sebastian Graf, Max Wagner) oder stellen Ihre Fragen im ILIAS-Forum, damit wir entsprechendes Material vorbereiten können.
03.02.2020 In den Übungen der letzten Vorlesungswoche werden
  • am Montag, den 03. Februar, ausschließlich das Thema Parallelprogrammierung, und
  • am Dienstag, den 04. Februar, ausschließlich das Thema Compiler/Bytecode
behandelt. Sie dürfen und sollten daher in dieser Woche zwei Übungstermine wahrnehmen.
31.01.2020 Das Tutorium von Paul Brinkmeier am nächsten Dienstag um 11:30 (Tut 6, am 04.02.) muss wegen einer fakultätsinternen Veranstaltung außerordentlich in den SR236 (also genau ein Stockwerk nach unten) verlegt werden.
16.10.2019 Auf Blatt 0 war ein ungültiger Link zu WebInscribe. Dies wurde behoben.

Inhalt

In der Vorlesung Programmierparadigmen lernen die Teilnehmer nichtimperative Programmierung und ihre Anwendungsgebiete kennen. Im Einzelnen werden behandelt:

  1. Funktionale Programmierung - rekursive Funktionen und Datentypen, Funktionen höherer Ordnung, Kombinatoren, lazy evaluation, Lambda-Kalkül, Typsysteme, Anwendungsbeispiele.
  2. Logische Programmierung - Terme, Hornklauseln, Unifikation, Resolution, regelbasierte Programmierung, constraint logic programming (CLP), Anwendungen.
  3. Parallelprogrammierung - message passing (MPI), verteilte Software, Aktorkonzept, Anwendungsbeispiele.
  4. Elementare Grundlagen des Compilerbaus.

Es werden folgende Programmiersprachen (teils nur kurz) vorgestellt: Haskell, Prolog (CLP), Rust, C++ (MPI), Java Byte Code.

Das in dieser Vorlesung vermittelte Wissen wird in den zur Vorlesung gehörenden Übungen vertieft.

Klausuren

PrüfungszeitraumTagBeginnEndeOrt
WS 2019/20Dienstag, 24.03.202011:00 Uhr13:00 Uhr Hörsaal am Forum (Audimax), Gebäude 30.95
Hörsaal am Fasanengarten Gebäude 50.35
Sonderklausur SS 2020Montag, 29.06.202015:00 Uhr17:00 Uhr Schwarzwaldhalle
SS 2020Dienstag, 06.10.202009:00 Uhr11:00 UhrZelt auf dem Forum

Was ist bei der Sonderklausur anders als bei bisherigen Klausuren?

  • Die Klausur findet in der Schwarzwaldhalle statt. Aufgrund der Abstandsregelungen findet der Einlass ab einer Stunde vor Klausurbeginn in 4 Staffeln (siehe Zuteilung) statt, um lange Warteschlangen zu vermeiden.
  • Zum Mitschreiben muss vor Ort eine Erklärung abgegeben werden. Bitte halten Sie bei der Anmeldung KITCard, Lichtbildausweis und die ausgefüllte Erklärung bereit!
  • Sowohl vor als auch nach der Klausur dürfen Sie sich "nicht in Gruppen versammeln", weder im Gebäude, noch davor. Sollte es entsprechende Probleme auf dem Festplatz vor der Schwarzwaldhalle geben, besteht die Gefahr, dass die Genehmigung zur Durchführung der Prüfungen dort zurückgezogen wird. Dann müssten geplante Prüfungen ausfallen. Das darf nicht passieren. Bitte halten Sie Abstand voneinander! Nach Ende der Klausur verlassen Sie bitte das Gebäude einzeln und entfernen Sie sich zügig.
  • Nicht zugelassene Hilfsmittel sind vor Ihrem eigenen Platz abzulegen.
  • Wir empfehlen dringend, bis zum Start der Prüfung eine Mund-Nase-Bedeckung zu tragen.

Zuteilung Sonderklausur SS2020

KlausurMatrikelnummerOrtEinlasszeit
Programmierparadigmenbis 1980000Schwarzwaldhalle14:00-14:10
Programmierparadigmenbis 2060000Schwarzwaldhalle14:10-14:20
Programmierparadigmenbis 2110000Schwarzwaldhalle14:20-14:30
Programmierparadigmenbis 3000000Schwarzwaldhalle14:30-14:40
Die Sitzplätze werden Reihe für Reihe von hinten nach vorne aufgefüllt.

Klausur-Formalitäten

Die Klausur hat einen Umfang von 30 Minuten (Funktionale Programmierung) bzw. 120 Minuten (Programmierparadigmen). Zur Teilnahme an der Klausur ist neben dem Studierendenausweis ein gültiger, amtlicher Lichtbildausweis (Personalausweis, Führerschein, Reisepass) mitzubringen!

Zugelassene Hilfsmittel

Erlaubte Hilfsmittel für die Klausur sind alle Quellen in Papierform, insbesondere

  • Vorlesungsfolien der Veranstaltung Programmierparadigmen
  • Übungszettel und Beispiellösungen der Veranstaltung Programmierparadigmen
  • Bücher, Ausdrucke und beliebige eigenen Aufzeichnungen

Jegliche Elektronik (Mobiltelefon, Notebook, etc.) ist verboten!

Vorlesung

Die Vorlesung hat den Umfang von 3 SWS. Die wöchentlichen Termine finden während folgender Zeiträume statt:

Tag Beginn Ende Ort
Mittwochs14:0015:30Hertz-Hörsaal, Raum 126 (Geb. 10.11)
Freitags 14:0015:30Hertz-Hörsaal, Raum 126 (Geb. 10.11)
Die erste Vorlesung findet am 16.10.2019 statt.

Termine

Bitte achten Sie auf Änderungen zu diesem vorläufigen Terminplan, die hier und in der Vorlesung bekannt gegeben werden.
TagDatumBeginnEndeOrt
Mittwoch 16.10.201914:0015:30Hertz-Hörsaal
Freitag 18.10.201914:0015:30Hertz-Hörsaal
Mittwoch 23.10.201914:0015:30Hertz-Hörsaal
Freitag 25.10.201914:0015:30Hertz-Hörsaal
Mittwoch 30.10.201914:0015:30Hertz-Hörsaal
-
Mittwoch 06.11.201914:0015:30Hertz-Hörsaal
Freitag 08.11.201914:0015:30Hertz-Hörsaal
Mittwoch 13.11.201914:0015:30Hertz-Hörsaal
-
Mittwoch 20.11.201914:0015:30Hertz-Hörsaal
Freitag 22.11.201914:0015:30Hertz-Hörsaal
Mittwoch 27.11.201914:0015:30Hertz-Hörsaal
Freitag 29.11.201914:0015:30Hertz-Hörsaal
Mittwoch 04.12.201914:0015:30Hertz-Hörsaal
Freitag 06.12.201914:0015:30Hertz-Hörsaal
Mittwoch 11.12.201914:0015:30Hertz-Hörsaal
-
Mittwoch 18.12.201914:0015:30Hertz-Hörsaal
-
Weihnachten
-
Mittwoch 08.01.202014:0015:30Hertz-Hörsaal
Freitag 10.01.202014:0015:30Hertz-Hörsaal
Mittwoch 15.01.202014:0015:30Hertz-Hörsaal
Freitag 17.01.202014:0015:30Hertz-Hörsaal
Mittwoch 22.01.202014:0015:30Hertz-Hörsaal
Freitag 24.01.202014:0015:30Hertz-Hörsaal
Mittwoch 29.01.202014:0015:30Hertz-Hörsaal
Freitag 31.01.202014:0015:30Hertz-Hörsaal
Mittwoch 05.02.202014:0015:30Hertz-Hörsaal

Unterlagen

Das Vorlesungsmaterial 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. Vorlesungsfolien, Musterlösungen 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.

Vorlesungsfolien

StandThemaPDF
16.10.2019OrganisatorischesDownload
16.10.2019Funktionale Programmierung: Einführung, ListenDownload
17.10.2020Funktionale Programmierung: Funktionen höherer Ordnung, KombinatorenDownload
18.10.2019Funktionale Programmierung: Lazy EvaluationDownload
25.10.2019Funktionale Programmierung: Typen, Beispiele fkt. ProgrammierungDownload
31.10.2019Funktionale Programmierung: Algebraische Datentypen & AnwendungenDownload
07.11.2019Funktionale Programmierung: Typklassen, QuickCheckDownload
07.11.2019Funktionale Programmierung: Zusatzfolien MonadenDownload
11.11.2019Theoretische Grundlagen: Der untypisierte Lambda-KalkülDownload
22.11.2019Theoretische Grundlagen: Regelsysteme, Typsysteme[v2.0][v1.1]
  • Folien zu Modellen,Gültigkeit,Korrektheit & Vollständigkeit zum Rest konsistent gemacht
[v2.0]
  • Folien komplett überarbeitet, jetzt klare Trennung zwischen Formeln und Aussagen
  • Regelinversion: explizit sagen, welche Annahmen man gewinnt
Download
22.11.2019Theoretische Grundlagen: PolymorphieDownload
26.11.2019Logische Programmierung: Einführung, BacktrackingDownload
27.11.2019Logische Programmierung: Arithmetik und Listen, CutsDownload
02.12.2019Logische Programmierung: BeispielprogrammeDownload
02.12.2019Logische Programmierung: SpracherweiterungenDownload
05.12.2019Logische Programmierung: Unifikation und ResolutionDownload
05.12.2019Logische Programmierung: Constraint Logic ProgrammingDownload
11.12.2019TypinferenzDownload
18.12.2019Zusatzfolien: RustDownload
08.01.2020Parallelprogrammierung: GrundlagenDownload
08.01.2020Parallelprogrammierung: C/C++-WiederholungDownload
10.01.2020Parallelprogrammierung: MPIDownload
15.01.2020Parallelprogrammierung: Java BasicDownload
17.01.2020Parallelprogrammierung: Java Advanced und Aktormodell[v1.1.1][v1.1.0]
  • Atomic Types Rückgabetyp von compareAndSet korrigiert
[v1.1.1]
  • Alle Folien zu Aktoren und Akka in den Anhang verschoben
Download
21.01.2020Design by Contract[v1.1.0][v1.1.0]
  • Folien zu Precondition Availability, Null-Values in JML und Internal Data in Contracts in den Anhang verschoben
Download
27.01.2020Compiler: EinführungDownload
27.01.2020Compiler: Lexikalische und syntaktische Analyse[v1.1][v1.1]
  • Folie 392 ersetzt mit direkteren Anweisungen für Expression-Grammatiken
  • Z-Folien zu abstrakten Termalgebren hinzugefügt
Download
25.01.2020Compiler: Semantische AnalyseDownload
21.02.2020Compiler: Java-Bytecode und Codeerzeugung[v1.1][v1.1]
  • Codeerzeugung: Visitor-basierte Codebeispiele mit einfacher Baumtraversierung ersetzt
  • Viel sprechendere Namen, weniger unnötige Implementierungsdetails
Download
03.02.2020Werbung: Veranstaltungen im SS2020Download
03.02.2020FragestundeDownload

Sonstiges

StandThemaDatei
14.12.2018Beispielimplementierungen Typinferenz (Haskell, Prolog) und Unifikation (Union/Find und Robinson, Haskell)Download
28.01.2019Beispielcompiler für Simple-Sprache (Java)Download

Altklausuren

Klausuren mit Beispiellösungen.
StandThemaPDF
Wintersemester 2014/2015 Klausur vom 9. April 2015 Download (ohne Lösungen)
Download (mit Lösungen)
Sommersemester 2015 Klausur vom 21. September 2015 Download (ohne Lösungen)
Download (mit Lösungen)
Wintersemester 2015/2016 Klausur vom 7. April 2016 Download (ohne Lösungen)
Download (mit Lösungen)
Sommersemester 2016 Klausur vom 22. September 2016 Download (ohne Lösungen)
Download (mit Lösungen)
Sommersemester 2017 Klausur vom 25. September 2017 Download (ohne Lösungen)
Download (mit Lösungen)
Wintersemester 2017/2018 Klausur vom 5. April 2018 Download (ohne Lösungen)
Download (mit Lösungen)
Sommersemester 2018 Klausur vom 26. September 2018 Download (ohne Lösungen)
Download (mit Lösungen)
Wintersemester 2018/2019 Klausur vom 4. April 2019 Download (ohne Lösungen)
Download (mit Lösungen)
Sommersemester 2019 Klausur vom 30. September 2019 Download (ohne Lösungen)
Download (mit Lösungen)

Kneipenquiz

Kneipenquiz-Aufgaben aus dem Bereich KIT, Programmierparadigmen und Programmiersprachen.
EditionThemaPDF
Wintersemester 2011/2012 Programmiersprachen und Algorithmen Download (ohne Lösungen)
Download (mit Lösungen)
Wintersemester 2012/2013 Historische Veröffentlichungen der Informatik Download (ohne Lösungen)
Download (mit Lösungen)
Wintersemester 2013/2014 Informatik am KIT - Dissertationen Download (ohne Lösungen)
Download (mit Lösungen)
Wintersemester 2014/2015 Quellcode in Film und Fernsehen Download (ohne Lösungen)
Download (mit Lösungen)
Wintersemester 2015/2016 Science Fiction Download (ohne Lösungen)
Download (mit Lösungen)
Wintersemester 2016/2017 Um die Ecke-Rätsel, Zitate Download (ohne Lösungen)
Download (mit Lösungen)
Wintersemester 2017/2018 Ahnengallerie Download (ohne Lösungen)
Download (mit Lösungen)
Wintersemester 2019/2020 Anagramme Download (ohne Lösungen)
Download (mit Lösungen)

Veranstalter

Lehrstuhlinhaber
Prof. Gregor Snelting
Wissenschaftliche Mitarbeiter
Sebastian Graf
Sebastian Ullrich