Medieninformatik an der TH Köln

Modulbeschreibungen, Prüfer:innenlisten und mehr :)

Paradigmen der Programmierung

Modulverantwortlich
Prof. Dr. Christian Kohls
Kürzel
PDP
Studiensemester
3
Sprache
deutsch
Kreditpunkte
5
Studienleistungen
Schriftliche Prüfung: Prüfer:in Alexander Dobrynin // Zweitprüfer bzw. Beisitzer Prof. Dr. Christian Kohls // Prüfungstermin: Wintersemester Woche 2, Ende März

Lehrform/SWS

4 SWS: Vorlesung 2 SWS; Praktikum 1 SWS; Übung 1 SWS

Arbeitsaufwand

Gesamtaufwand 150h, davon

  • 36h Vorlesung
  • 18h Praktikum
  • 18h Übung
  • 78h Selbststudium

Angestrebte Lernergebnisse

  • (Was) Die Studierenden sollen unterschiedliche Programmierparadigmen verstehen und anwenden können. Weiterhin sollen sie die Angemessenheit der verschiedenen Programmierparadigmen für eine Aufgabenstellung einordnen und bewerten können.
  • (Womit) Dies geschieht, indem verschieden Programmierparadigmen eingeführt und mithilfe einer dafür geeigneten Programmiersprache praktisch ausprobiert werden. Dabei wird vergleichend auf die verschiedenen Ansätze (prozedural, objektorientiert, funktional, logisch; deklarativ und imperativ; synchron und asynchron) eingegangen, indem Algorithmen in den verschiedenen Programmiersprachen umgesetzt werden.
  • (Wozu) Studierende sollen mithilfe von etablierten Paradigmen in der Lage sein, verschiedene Denkweisen anzunehmen und Probleme auf unterschiedliche Weisen zu lösen.

Inhalt

  • Vergleich imperativer und deklarativer Programmierstilen und Paradigmen
  • Objektorientierte Design Prinzipien
  • Objektorientierte Entwurfsmuster (Strategy, Decorator, Composite, Observer, Simple Factory)
  • Funktionen, Lambdas und Closures
  • Funktionen höherer Ordnung
  • Currying und Funktionskomposition
  • Kombinatoren wie zip, map, flatMap etc.
  • Typentheorie und Algebraische Datentypen
  • Parametrischer Polymorphismus
  • Ausdruck von logischen Beziehungen
  • Fakten, Regeln und Anfragen
  • Variablen und Atome
  • Unifikation und Variablenbindung
  • Resolution und Backtracking
  • Rekursive Prädikate
  • Listen, Listenoperationen und Pattern Matching
  • Nebenläufige Ausführung, Threads und Thread-Sicherheit
  • Race Conditions und Dead Locks
  • Synchroniksationsmechanismen
  • Koroutinen, Aktoren und Flows
  • Synchrone und asynchrone Programmiermodelle

Medienformen

  • Foliensammlung
  • Screencasts
  • Skript
  • Beispiellösungen
  • Live-Coding

Literatur

  • Skript von Prof. Dr. Erich Ehses: www.gm.fh-koeln.de/ehses/paradigmen/
  • Kohls, C., Dobrynin, A. (2022). Programmieren lernen mit Kotlin (Auflage 2). München: Hanser Verlag.
  • Soshin, A. (2022). Kotlin Design Patterns and Best Practices - Second Edition. Packt Publishing.
  • Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (2015). Design patterns: Entwurfsmuster als Elemente wiederverwendbarer
  • Freeman, E., Robson, E. (2015). Entwurfsmuster von Kopf bis Fuß. O’Reilly.
  • Vermeulen, M., Bjarnason, R., Chiusano P (2021). Functional Programming in Kotlin. Manning Publications.
  • W.F. Clocksin, C.S. Mellish (2003). Programming in Prolog. Springer Verlag.