Funktionale Programmierung
Credits | Workload | Kontaktzeit | Selbststudium | Dauer |
---|---|---|---|---|
6 CP | 180 h | 5 SWS (75 h) | 105 h |
Teilnahmevoraussetzungen
- Beherrschung der wesentlichen Konzepte der Programmierung (Vorlesung Programmierung)
- Erste Grundkenntnisse in einer funktionalen Programmiersprache sind hilfreich, aber nicht notwendig (Vorlesung Programmierung)
Lehrveranstaltungen
Veranstaltung/ Lehrform | CP | SWS | Häufigkeit | |
---|---|---|---|---|
Vorlesung Funktionale Programmierung | 6 CP | 3 SWS | unregelmäßig | |
Übung Funktionale Programmierung | 2 SWS | unregelmäßig |
Prüfungsleistung
Note
Lernergebnisse / Kompetenzen
- Kenntnis der Programmiertechniken in funktionalen Programmiersprachen
- Kenntnis der Konzepte, die funktionalen Programmiersprachen zu Grunde liegen
- Fähigkeit zur formalen Festlegung der Semantik funktionaler Programmiersprachen
- Fähigkeit zur Implementierung funktionaler Sprachen
- Fähigkeit zum Entwurf von Verfahren zur Typüberprüfung bei funktionalen Sprachen
Inhalte
Einführung in die Programmiersprache Haskell
- Syntax der verschiedenen Sprachkonstrukte
- Funktionen höherer Ordnung
- Programmieren mit Lazy Evaluation
- Monaden
Denotationelle Semantik funktionaler Programme
- Vollständige Ordnungen und Fixpunkte
- Denotationelle Semantik von Haskell
Der Lambda-Kalkül
- Syntax und operationelle Semantik des Lambda-Kalküls
- Reduzierung von Haskell auf den Lambda-Kalkül
Typüberprüfung und -inferenz
Alternative Wahlmodule zu diesem Modul
Dieses Modul gehört zur Gruppe "Wahlpflicht Informatik". 9 Module (bestehend aus Vorlesung und Übung) zu wählen aus dem Wahlpflichtprogramm in den vier Bereichen: „Angewandte Informatik“, „Software & Kommunikation“, „Daten- und Informationsmanagement“, „Theoretische Informatik“. In jedem Bereich sind mind. 6, höchstens jedoch 30 ECTS zu erwerben. Die Module sollten so gewählt werden, dass im 1. Studienjahr in der Regel 36 ECTS, im zweiten Studienjahr 24 ECTS erworben werden.
Angewandte Informatik
- Computational Differentiation
- Designing Interactive Systems II
- Einführung in die Computergraphik
- Einführung in High-Performance Computing
- HCI Design Patterns
Daten- und Informationsmanagement
- Datenbanken und Informationssysteme
- Einführung in die künstliche Intelligenz
- Einführung in die Wissensrepräsentation
- Implementation of Databases
- Inhaltsbasierte Ähnlichkeitssuche
- Web Engineering
Software und Kommunikation
- Architekturmodellierung von Softwaresystemen
- Datenkommunikation und Sicherhei
- Einführung in Eingebettete Systeme
- Modellbasierte Softwareentwicklung
- Verteilte Anwendungssysteme und Middleware
Theoretische Informatik
- Angewandte Automatentheorie
- Berechenbarkeit und Komplexität
- Compilerbau
- Einführung in Effiziente Algorithmen
- Logikprogrammierung
- Model Checking
Modulzuordnung
Master of Science: Fach Grundlagen der Informatik: Bereich Theoretische Informatik
Disclaimer
Bitte beachten Sie, dass im Zweifel (z.B. sich widersprechende Angaben auf der Website und dem Modulhandbuch) für Ihr Studium immer die Angaben in der aktuellen Bachelorprüfungsordnung mit den entsprechenden Anhängen verbindlich sind. Wenden Sie sich bitte an die Fachstudienberatung, wenn Ihnen Unstimmigkeiten auffallen.