Imperative und funktionale Programmierung


Modulnummer:

1100650


Leistungspunkte:

9 ECTS


Lehrveranstaltungen:

  • Vorlesung Imperative Programmierung (2 SWS)
  • Vorlesung Funktionale Programmierung (2 SWS)
  • Übung Programmierung (2 SWS)
  • Praktikum Programmierung (1 SWS)

Prüfung:

Klausur (120 min) oder mündliche Prüfung (20 min)


Prüfungsvorleistungen:

Lösen von Übungsaufgaben


Inhalt:

Imperative Programmierung:
Das Modul führt über die abstrakten Datentypen die Techniken der Programmierung ein. Dabei wird besonderes Augenmerk auf die Nutzung der Rekursion zur Problemlösung gelegt.

Das Modul besteht aus den Lerneinheiten:

  • Einführung in die Softwareentwicklung
  • Strukturierte Programmierung
  • Rekursion
  • Algebraische Spezifikation abstrakter Datentypen
  • Datenstrukturen zur effektiven Implementation mit Hilfe einer algorithmischen Sprache
  • Spezifikation und Implementation mit unterschiedlichen Datenstrukturen

Funktionale Programmierung:
Die funktionale Programmierung stellt das zweite wichtige Programmierparadigma neben der imperativen Programmierung dar. Es basiert auf dem Prinzip der Textersetzung ("equational reasoning") und behandelt Funktionen als "first class objects". Das Modul behandelt die theoretischen Grundlagen der funktionalen Programmierung, führt in die Sprache Haskell ein und zeigt verschiedene praktische Anwendungen. Die im Modul integrierten Übungen ermöglichen konkrete Erfahrungen mit der funktionalen Programmierung zu machen.

Das Modul besteht aus den Lerneinheiten:

  • Theoretische Basis der funktionalen Programmierung (Lambda-Kalkül) und Beziehung zur Theorie partieller Funktionen
  • Typische Datenstrukturen und Programmkonstrukte
  • Strategien der Entwicklung funktionaler Software
  • Beweis von Programmeigenschaften
  • Einbeziehung anderer Programmierparadigmen unter Berücksichtigung von Eingabe/Ausgabe