Module Handbook

  • Dynamischer Default-Fachbereich geändert auf INF

Course INF-36-51-K-5

Functional Programming (4V+2U, 8.0 LP)

Course Type

SWS Type Course Form CP (Effort) Presence-Time / Self-Study
- K Lecture with exercise classes (V/U) 8.0 CP 156 h
4 V Lecture 56 h
2 U Exercise class (in small groups) 28 h
(4V+2U) 8.0 CP 84 h 156 h

Basedata

SWS 4V+2U
CP, Effort 8.0 CP = 240 h
Position of the semester 1 Sem. in SuSe
Level [5] Master (Entry Level)
Language [DE/EN] German or English as required
Lecturers
Area of study [INF-SE] Software-Engineering
Livecycle-State [NORM] Active

Possible Study achievement

  • Verification of study performance: proof of successful participation in the exercise classes (ungraded)
  • Details of the examination (type, duration, criteria) will be announced at the beginning of the course.

Contents

Functional programming is a style of programming that emphasises the use of immutable datatypes and pure functions. Functional programming has a simple mathematical basis that supports equational reasoning about properties of programs. As a consequence, functional programs are easier to develop and reason about than their imperative counterparts. The aim of these lectures is to illustrate these points using the standard functional language Haskell.
  • Programming with expressions and values
  • Types and polymorphism
  • Lists and list-processing functions
  • Algebraic datatypes
  • Higher-order functions
  • Type classes
  • Equational Reasoning and calculations
  • Evaluation orders
  • Imperative Programming
  • Applicative functors and monads
  • Type and class system extensions
  • Generic programming

Literature

  • Lipovaca, Miran. Learn you a haskell for great good! A Beginner's Guide . No Starch Press, 2011.
  • Bird, Richard. Thinking functionally with Haskell . Cambridge University Press, 2014.
  • Hudak, Paul.  The Haskell School of Expression: Learning Functional Programming through Multimedia.  Cambridge University Press. 2000.
  • Hutton, Graham. Programming in Haskell (2nd Edition). Cambridge University Press, 2016.
  • O'Sullivan, Bryan, John Goerzen, and Donald Bruce Stewart. Real world haskell: Code you can believe in . Reilly Media, Inc., 2008.
  • Simon Thompson, Haskell: The Craft of Functional Programming (3rd Edition).  Addison-Wesley Professional, 2011.

Requirements for attendance (informal)

Basic skills in imperative programming and object-orientation are useful, but not strictly required. The course assumes some familiarity with discrete mathematics.

Requirements for attendance (formal)

None

References to Course [INF-36-51-K-5]

Module Name Context
[INF-36-51-M-5] Functional Programming P: Obligatory 4V+2U, 8.0 LP
Course-Pool Name
[INF-SE_V-KPOOL-6] Lectures of the teaching area Software Engineering