Modul


Allgemeine Informationen
Funktionale Programmierung
Functional Programming
MI136
Lee, Michael (michael.lee@haw-kiel.de)
Lee, Michael (michael.lee@haw-kiel.de)
Wintersemester 2019/20
1 Semester
Englisch
Studiengänge und Art des Moduls (gemäß Prüfungsordnung)
Studiengang Vertiefungsrichtung Schwerpunkt Modulart Fachsemester
M.Sc. - MIE - Information Engineering (PO 2022, V3) Business IT-Management Wahlmodul
M.Sc. - MIE - Information Engineering (PO 2022, V3) Information Technology and Systems Wahlmodul
M.Sc. - MIE - Information Engineering (PO 2022, V3) Intelligent Systems Wahlmodul
M.Sc. - MIE - Information Engineering (PO 2022, V3) IT Security Wahlmodul

Kompetenzen / Lernergebnisse
Kompetenzbereiche: Wissen und Verstehen; Einsatz, Anwendung und Erzeugung von Wissen; Kommunikation und Kooperation; Wissenschaftliches Selbstverständnis/Professionalität.
- principles of functional programming. Differences to other programming paradigms
- differences to other programming paradigms
- usage of the langauges elm and haskel
- understanding of the lambda calculus
- separation of side effects / handling of side effects in funtional languages
In a semster project students will
- create web frontends using functional programming
- handle side effects for the purpose of user interaction and backend communication
- connect pure functional code with non pure code in the ECMAScript browser environment
Students will work in groups of 4 where they will
- have to communicate and discuss and assign tasks
- use source code management to handle simultaneously working on the same code base
- work as a team on a project presentation which has to involve all parts of each group
Being focused on the product (semester project) students will tackle the same challenges they would face in a commercial software product project.

As part of this students will have to without supervision
- face tricky problems that require intense analysis and understanding
- acquire knowledge required specific problems

These responsibilities are essential aspects of the self-concept of any tech professional.
Angaben zum Inhalt
Introduction to functional programming.

In this class students will learn modern functional programming in practice.

- the elm language and runtime will be introduced to write modern web applications
- Haskell will be introduced to learn some of its advanced concepts
- theoretical background will be provided through the lambda calculus

As a result of this class students will have written their own web app using functional methodology.
elm tutorial:
https://www.elm-tutorial.org/en/

learning Haskell:
http://learnyouahaskell.com/

lecture notes on the lambda calculus:
https://www.mscs.dal.ca/~selinger/papers/lambdanotes.pdf
Lehrformen der Lehrveranstaltungen
Lehrform SWS
Projekt 2
Lehrvortrag 2
Arbeitsaufwand
4 SWS
5,0 Leistungspunkte
48 Stunden
102 Stunden
Modulprüfung
Prüfungsform Dauer Gewichtung wird angerechnet gem. § 11 Absatz 2 PVO Benotet Anmerkung
Projektbezogene Arbeiten 50 %
Klausur 90 Minuten 50 %
Sonstiges
Basic knowledge of web development required. Students need to be able to
- create their own HTML/CSS interfaces
- write a basic REST or GraphQL backend
- use a document or relational DB

Knowledge of React/Redux helpful but not required.
- lab attendance is mandatory
- projects will be done in groups of 4 (except for special circumstances)
- there will be a written exam prior to the project presentations