HOME | ENGLISH | IMPRESSUM | KIT

Programmierparadigmen

Wichtiger Hinweis

Die Vorlesung wird im WS 20/21 als gemischte Präsenz-/Online-Vorlesung geplant: Alle Vorlesungen werden über Zoom gestreamt und sind eine Woche lang im Vorlesungs-ILIAS abrufbar. Sofern es die Pandemielage erlaubt, können die Vorlesungen bei Interesse aber auch von einer begrenzten Anzahl an Zuhörern direkt besucht werden. Im Audimax (11 Termine, s.u.) können bis zu 100 Zuhörer in Präsenz teilnehmen. Im Hertz-Hörsaal (14 Termine) können bis zu 30 Zuhörer in Präsenz teilnehmen. Die Anmeldung zum Besuch der Vorlesung erfolgt ab zwei Tage vor der jeweiligen Vorlesung im Vorlesungs-ILIAS.

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 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 2020/21Freitag, 09.04.202117:00 Uhr19:00 UhrZelt auf dem Forum, diverse Hörsäle
SS 2021Donnerstag, 30.09.202108:00 Uhr10:00 UhrZelt auf dem Forum

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
Montags14:0015:30Audimax, Geb. 30.95
Mittwochs14:0015:30Hertz-Hörsaal, Raum 126 (Geb. 10.11)
Freitags 14:0015:30Hertz-Hörsaal, Raum 126 (Geb. 10.11)

Die Vorlesung wird im WS 20/21 als gemischte Präsenz-/Online-Vorlesung gehalten: Alle Vorlesungen werden über Zoom gestreamt und sind eine Woche lang im Vorlesungs-ILIAS abrufbar, können bei Interesse aber auch von einer begrenzten Anzahl an Zuhörern direkt besucht werden. Im Audimax (11 Termine, s.u.) können bis zu 100 Zuhörer in Präsenz teilnehmen. Im Hertz-Hörsaal (14 Termine) können bis zu 30 Zuhörer in Präsenz teilnehmen. Die Anmeldung zum Besuch der Vorlesung erfolgt ab zwei Tage vor der jeweiligen Vorlesung im Vorlesungs-ILIAS.

Die erste Vorlesung findet am Mittwoch, den 04.11.2020 um 14:00 im Hertz-Hörsaal statt.

Termine

Bitte achten Sie auf Änderungen zu diesem vorläufigen Terminplan, die hier und in der Vorlesung bekannt gegeben werden.
TagDatumBeginnEndeOrt
Mittwoch 04.11.202014:0015:30Hertz-Hörsaal
Freitag 06.11.202014:0015:30Hertz-Hörsaal
Montag 09.11.202014:0015:30Audimax
Mittwoch 11.11.202014:0015:30Hertz-Hörsaal
Freitag 13.11.202014:0015:30Hertz-Hörsaal
Mittwoch 18.11.202014:0015:30Hertz-Hörsaal
Freitag 20.11.202014:0015:30Hertz-Hörsaal
Montag 23.11.202014:0015:30Audimax
Mittwoch 25.11.202014:0015:30Hertz-Hörsaal
Montag 30.11.202014:0015:30Audimax
Mittwoch 02.12.202014:0015:30Hertz-Hörsaal
Montag 07.12.202014:0015:30Audimax
Mittwoch 09.12.202014:0015:30Hertz-Hörsaal
Freitag 11.12.202014:0015:30Hertz-Hörsaal
Montag 14.12.202014:0015:30Audimax
Mittwoch 16.12.202014:0015:30Hertz-Hörsaal
Weihnachten
Montag 11.01.202114:0015:30Audimax
Mittwoch 13.01.202114:0015:30Hertz-Hörsaal
Montag 18.01.202114:0015:30Audimax
Mittwoch 20.01.202114:0015:30Hertz-Hörsaal
Montag 25.01.202114:0015:30Audimax
Montag 01.02.202114:0015:30Audimax
Mittwoch 03.02.202114:0015:30Hertz-Hörsaal
Montag 08.02.202114:0015:30Audimax
Mittwoch 17.02.202114: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
11.01.2021Organisatorisches [v1.4.0][v1.1.0]
  • Daten im Themenüberblick gefixt
[v1.2.0]
  • Themenüberblick aktualisiert
[v1.3.0]
  • Klausurtermin hinzugefügt
[v1.4.0]
  • Letzter VL-Termin von Mo auf Mi verschoben
Download
03.11.2020Funktionale Programmierung: Einführung, ListenDownload
03.11.2020Funktionale Programmierung: Funktionen höherer Ordnung, KombinatorenDownload
06.11.2020Funktionale Programmierung: Lazy EvaluationDownload
12.03.2021Funktionale Programmierung: Typen, Beispiele fkt. Programmierung [v1.0.1][v1.0.1]
  • mod n m === n `mod` m
Download
09.11.2020Funktionale Programmierung: Algebraische Datentypen & AnwendungenDownload
16.11.2020Funktionale Programmierung: Typklassen, QuickCheckDownload
16.11.2020Funktionale Programmierung: Zusatzfolien MonadenDownload
20.11.2020Theoretische Grundlagen: Der untypisierte Lambda-KalkülDownload
30.11.2020Theoretische Grundlagen: Regelsysteme, Typsysteme [v1.2.0][v1.0.1]
  • Umbenennung einiger Regeln
[v1.1.0]
  • Typographie + Substitutionslemma ist Zusatz
[v1.2.0]
  • Literaturempfehlung zu Logik (siehe Folie "Korrektheit und Vollständigkeit")
Download
27.11.2020Theoretische Grundlagen: Polymorphie [v1.1.1][v1.1.0]
  • Syntaktische Unterscheidung von Typen und Typschemata
[v1.1.1]
  • Umbenennung einiger Regeln
Download
15.12.2020Logische Programmierung: Einführung, Backtracking [v1.1.0][v1.1.0]
  • Verbesserungen am Ausführungsbaumbeispiel
Download
15.12.2020Logische Programmierung: Arithmetik und Listen, Cuts [v1.1.0][v1.1.0]
  • Verbessertes Box-Modell von append
Download
07.12.2020Logische Programmierung: BeispielprogrammeDownload
15.12.2020Logische Programmierung: Spracherweiterungen [v1.0.1][v1.0.1]
  • Typographie + Folien 296ff sind nun Zusatz
Download
15.12.2020Logische Programmierung: Unifikation und Resolution [v1.0.1][v1.0.1]
  • Disjunkte Vereinigung statt Vereinigung in rekursivem Aufruf von unify
Download
07.12.2020Logische Programmierung: Constraint Logic ProgrammingDownload
14.12.2020TypinferenzDownload
15.12.2020Zusatzfolien: RustDownload
11.01.2021Parallelprogrammierung: GrundlagenDownload
11.01.2021Parallelprogrammierung: C/C++-WiederholungDownload
13.01.2021Parallelprogrammierung: MPI [v1.0.1][v1.0.1]
  • MapReduce in Anhang verschoben
Download
18.01.2021Parallelprogrammierung: Java Basic [v1.1.0][v1.1.0]
  • Großteils des Inhalts in den Anhang verschoben
Download
20.01.2021Parallelprogrammierung: Java Advanced und Aktormodell [v1.0.3][v1.0.1]
  • Fundamentals am Anfang hinzugefügt und Thema über Atomare Typen erweitert
[v1.0.2]
  • Barriers und Semaphores in Anhang verschoben
[v1.0.3]
  • Methodensignatur bei Fork-Join korrigiert
Download
25.01.2021Design by Contract [v1.0.3][v1.0.1]
  • Class Correctness, Side Effect Restrictions, Exceptions und Precondition Availability in Appendix verschoben
[v1.0.2]
  • Quantifiers in JML und Class Invariants in Anhang verschoben
[v1.0.3]
  • JML komplett in Anhang verschoben
Download
01.02.2021Compiler: EinführungDownload
11.03.2021Compiler: Lexikalische und syntaktische Analyse [v1.1.0][v1.0.1]
  • Hinweis zu Folie 405
[v1.1.0]
  • Folie 403: # ist nun Teil des Alphabets
Download
08.02.2021Compiler: Semantische AnalyseDownload
17.02.2021Compiler: Java-Bytecode und Codeerzeugung [v1.0.1][v1.0.1]
  • Codegen für logische Negation korrigiert
Download
17.02.2021Werbung: Veranstaltungen im SS2021Download
17.02.2021FragestundeDownload
Der Foliensatz (Snelting-Teil) zum Download: [PDF] [PDF4].
Der Foliensatz (Snelting-Teil) als Druckversion zum Download: [PDF] [PDF4]
Bemerkung: Bei der Druckversion kann es zu Darstellungsfehlern kommen, weil nicht alle Animationen sinnvoll zu einer Folie zusammengefasst werden konnten!

Sonstiges

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

Altklausuren

Klausuren mit Beispiellösungen.
SemesterBestehensquotePDF
Wintersemester 2017/2018 71,11% Download (ohne Lösungen)
Download (mit Lösungen)
Sommersemester 2018 68,66% Download (ohne Lösungen)
Download (mit Lösungen)
Wintersemester 2018/2019 73,93% Download (ohne Lösungen)
Download (mit Lösungen)
Sommersemester 2019 72,60% Download (ohne Lösungen)
Download (mit Lösungen)
Sonderklausur Sommersemester 2020 71,68% Download (ohne Lösungen)
Download (mit Lösungen)
Sommersemester 2020 64,84% Download (ohne Lösungen)
Download (mit Lösungen)
Wintersemester 2020/2021 75,28% Download (ohne Lösungen)
Download (mit Lösungen)
Sommersemester 2021 67,82% Download (ohne Lösungen)
Download (mit Lösungen)
Wintersemester 2021/2022 79,67% Download (ohne Lösungen)
Download (mit Lösungen)
Sommersemester 2022 73,20% Download (ohne Lösungen)
Download (mit Lösungen)
Wintersemester 2022/2023 73,38% Download (ohne Lösungen)
Download (mit Lösungen)
Sommersemester 2023 72,16% 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)
Wintersemester 2022/2023 Straßen Download (ohne Lösungen)
Download (mit Lösungen)

Veranstalter

Lehrstuhlinhaber
Prof. Gregor Snelting
Wissenschaftliche Mitarbeiter
Sebastian Graf
Ehemalige Mitarbeiter
Dr.-Ing. Sebastian Ullrich