HOME | ENGLISH | IMPRESSUM | KIT

Programmierparadigmen

Neuigkeiten

19.03.2019 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 SS19 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.
07.02.2019 Wie in der Vorlesung angekündigt, findet am Mittwoch, den 27.03.2019, um 14:00 Uhr im Raum -101 im Informatikbau (50.34) eine Fragestunde statt, in der Übungsleiter und Tutoren Fragen zum Vorlesungsstoff beantworten. Idealerweise schicken Sie schon vor dem Termin Ihre Fragen per E-Mail an die Übungsleiter (Max Wagner, Sebastian Ullrich) oder stellen Ihre Fragen im ILIAS-Forum.
24.01.2019 Da die Vorlesungszeit in zwei Wochen endet, wird in den Übungen in der letzten Vorlesungswoche
  • am Montag, den 04. Februar, ausschließlich das Thema Parallelprogrammierung, und
  • am Dienstag, den 05. Februar, ausschließlich das Thema Compiler/Bytecode
behandelt. Sie dürfen und sollten daher in dieser Woche zwei Übungstermine wahrnehmen.
15.01.2019 Die Anmeldung für die Klausur am 04.04.2019 ist nun freigeschaltet. Anmeldeschluss ist der 26.03.2019.
11.12.2018 Der vorläufige Terminplan wurde um die Termine im Jahr 2019 ergänzt.
22.11.2018 Die Klausur am 4.4.2019 wurde auf 14:00 verlegt und findet nun in den Hörsälen Audimax und Fasanengarten statt.
16.11.2018 Die Beispiellösungen von Blatt 3 waren dank eines LaTeX-Malheurs unvollständig, dies wurde behoben.
16.11.2018 Das Tutorium Nr.3 von Max Göttlicher (14:00, SR131) fällt am 26.11. aus. Betroffene Studenten können stattdessen das Tutorium von Oliver Suchan (gleiche Zeit, SR301) besuchen (oder eines zu einem anderen Termin).
14.11.2018 Die Vorlesungstermine bis Weihnachten sind nun eingetragen. Beachten Sie, dass am Freitag, den 23.11.2018, keine Vorlesung stattfindet.
18.10.2018 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, Anwendungen.
  3. Parallelprogrammierung - message passing, verteilte Software, Aktorkonzept, Anwendungsbeispiele.
  4. Elementare Grundlagen des Compilerbaus.

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

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

Klausuren

PrüfungszeitraumTagBeginnEndeOrt
WS 2018/19Donnerstag, 04.04.201914:00 Uhr16:00 Uhr Hörsaal am Forum (Audimax), Gebäude 30.95
Hörsaal am Fasanengarten Gebäude 50.35

Klausur-Formalitäten

Die Klausur hat einen Umfang von 120 Minuten. 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 17.10.2018 statt.

Termine

Bitte achten Sie auf Änderungen zu diesem vorläufigen Terminplan, die hier und in der Vorlesung bekannt gegeben werden.
TagDatumBeginnEndeOrt
Mittwoch 17.10.201814:0015:30Hertz-Hörsaal
Freitag 19.10.201814:0015:30Hertz-Hörsaal
Mittwoch 24.10.201814:0015:30Hertz-Hörsaal
Freitag 26.10.201814:0015:30Hertz-Hörsaal
Mittwoch 31.10.201814:0015:30Hertz-Hörsaal
Freitag 02.11.201814:0015:30Hertz-Hörsaal
Mittwoch 07.11.201814:0015:30Hertz-Hörsaal
-
Mittwoch 14.11.201814:0015:30Hertz-Hörsaal
Freitag 16.11.201814:0015:30Hertz-Hörsaal
Mittwoch 21.11.201814:0015:30Hertz-Hörsaal
-
Mittwoch 28.11.201814:0015:30Hertz-Hörsaal
-
Mittwoch 05.12.201814:0015:30Hertz-Hörsaal
Freitag 07.12.201814:0015:30Hertz-Hörsaal
Mittwoch 12.12.201814:0015:30Hertz-Hörsaal
Freitag 14.12.201814:0015:30Hertz-Hörsaal
Mittwoch 19.12.201814:0015:30Hertz-Hörsaal
-
Weihnachten
-
Mittwoch 09.01.201914:0015:30Hertz-Hörsaal
Freitag 11.01.201914:0015:30Hertz-Hörsaal
Mittwoch 16.01.201914:0015:30Hertz-Hörsaal
Freitag 18.01.201914:0015:30Hertz-Hörsaal
Mittwoch 23.01.201914:0015:30Hertz-Hörsaal
Freitag 25.01.201914:0015:30Hertz-Hörsaal
Mittwoch 30.01.201914:0015:30Hertz-Hörsaal
Freitag 01.02.201914:0015:30Hertz-Hörsaal
Mittwoch 06.02.201914: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
22.11.2018Organisatorisches[v1.0.2][v1.0.1]
  • Die Klausurhörsäle sind Audimax, Benz und Gerthsen, nicht Daimler
[v1.0.2]
  • Klausur verlegt auf 14:00 (weiterhin am 4.4.2019), Hörsäle Audimax und Fasanengarten
Download
15.10.2018Funktionale Programmierung: Einführung, ListenDownload
17.10.2018Funktionale Programmierung: Funktionen höherer Ordnung, Kombinatoren[v1.0.1][v1.0.1]
  • Folie 45: `2/y` zu `y/2` korrigiert
  • Folien 49, 50, 53: Beispielfunktion 'f' durch weniger triviales Beispiel ersetzt
Download
02.11.2018Funktionale Programmierung: Lazy Evaluation[v1.0.1][v1.0.1]
  • Folie 79: Parameterreihenfolge von `foldl` korrigiert
Download
03.12.2018Funktionale Programmierung: Typen, Beispiele fkt. Programmierung[v1.0.1][v1.0.1]
  • Folie 100: `Conf` muss über `Int`s statt `Integer`s definiert sein
Download
02.11.2018Funktionale Programmierung: Algebraische Datentypen & Anwendungen[v1.0.1][v1.0.1]
  • Der Abschnitt "Termersetzung" ist Zusatzmaterial
Download
31.10.2018Funktionale Programmierung: Typklassen, QuickCheckDownload
31.10.2018Funktionale Programmierung: Zusatzfolien MonadenDownload
22.11.2018Theoretische Grundlagen: Der untypisierte Lambda-Kalkül[v1.0.2][v1.0.1]
  • Folie 184: Zusatz zur Komplexität ergänzt
[v1.0.2]
  • Folien 162, 167 neu: weitere Hinweise zu Termstruktur
Download
05.11.2018Theoretische Grundlagen: Regelsysteme, TypsystemeDownload
12.11.2018Theoretische Grundlagen: Polymorphie[v1.0.1][v1.0.1]
  • Folie 215: ein `y : int` war nicht durch `y : α` ersetzt
Download
28.11.2018Logische Programmierung: Einführung, BacktrackingDownload
28.11.2018Logische Programmierung: Arithmetik und Listen, CutsDownload
22.11.2018Logische Programmierung: BeispielprogrammeDownload
22.11.2018Logische Programmierung: SpracherweiterungenDownload
28.11.2018Logische Programmierung: Unifikation und ResolutionDownload
28.11.2018Logische Programmierung: Constraint Logic ProgrammingDownload
11.12.2018TypinferenzDownload
11.12.2018Zusatzfolien: RustDownload
07.01.2019Parallelprogrammierung: Grundlagen[v1.0.1][v1.0.1]
  • Aktuellere Daten auf Folie 4 und 7 ergänzt
Download
10.01.2019Parallelprogrammierung: C/C++-Wiederholung[v1.1.0][v1.1.0]
  • Folien zu Mehrfachvererbung und Referenzen aus dem Anhang in den Hauptinhalt verschoben.
  • Bezug der Mehrfachvererbung zu Default-Implementierungen in Java-Interfaces ergänzt.
Download
09.01.2019Parallelprogrammierung: MPIDownload
16.01.2019Parallelprogrammierung: Java Basic[v1.0.2][v1.0.1]
  • Folie 11: Typo korrigiert
  • neue Folie 47 hinzugefügt
[v1.0.2]
  • Folie 14: Erweiterung der Erklärung zum interrupt-Flag
  • Folie 17 und 18 als Vorgriff auf Werterückgabe aus Threads eingefügt (detailliert in Java-Advanced)
Download
23.01.2019Parallelprogrammierung: Java Advanced und Aktormodell[v1.1.2][v1.1.0]
  • Diverse Folien (insb. alle Folien zu Akka) in den Anhang verschoben
[v1.1.1]
  • Folie 32: Fehler beim Zugriff auf 'age' korrigiert
[v1.1.2]
  • Folie 33 hinzugefügt: Fehler bei immutable Objekten im collect diskutiert
Download
21.01.2019Design by ContractDownload
23.01.2019Compiler: EinführungDownload
01.02.2019Compiler: Lexikalische und syntaktische AnalyseDownload
25.01.2019Compiler: Semantische AnalyseDownload
28.01.2019Compiler: Java-Bytecode und CodeerzeugungDownload
05.02.2019Werbung: Veranstaltungen im SS2019Download
05.02.2019FragestundeDownload
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
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
Sommersemester 2014 Klausur vom 23. September 2014 Download (ohne Lösungen)
Download (mit Lösungen)
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)

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)

Veranstalter

Lehrstuhlinhaber
Prof. Gregor Snelting
Wissenschaftliche Mitarbeiter
Sebastian Ullrich
Maximilian Wagner