Functional Programming

ECTS 3.0

Inhaltsübersicht

Die funktionale Programmierung hat sich als bedeutendes Paradigma neben der objektorientierten Programmierung etabliert. Dieses Modul vermittelt die Grundlagen funktionaler Programmierung.

  • maschinennahe Datenmanipulation
  • interne Zahlendarstellung und Typkonvertierung
  • Zeichencodes, Zeichenketten und Suchen in Texten
  • Suchen in und Sortieren von Arrays
  • Schleifeninvariante, Programmverifikation, Assertions
  • Komplexitätsbegriff und Gross-O-Notation
  • Rekursion und Backtracking
  • Ausdrücke und Funktionen
  • Werte (zur Laufzeit) und Typen (zur Compilationszeit); Typinferenz
  • Tupel und Listen
  • Algebraische Datentypen (Bäume) und Pattern Matching
  • Currying und Lambda-Abstraktionen
  • Funktionen höherer Ordnung
  • Typklassen
  • Input / Output und do-Notation
  • Unterschied zur klassischen imperativen Programmierung (referentielle Transparenz)

Lernziele

  • Die Studierenden können funktional programmieren.
  • Sie verstehen den Unterschied zwischen imperativer und funktionaler Programmierung.
  • Sie kennen den Wert statischer Analyse durch Typsysteme.
  • Sie können auf ein erweitertes Repertoire an Möglichkeiten zum Programmieren zurückgreifen.
  • Sie sind in der Lage, die funktionalen Features der konventionellen Programmiersprachen wie Java, C++ oder C# zu verstehen.

Empfohlene Vorkenntnisse

  • Einführung in die Programmierung (eipr)

Leistungsbewertung

Erfahrungsnote