Module Handbook

• Dynamischer Default-Fachbereich geändert auf INF

Course INF-36-51-K-5

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 8.0 CP = 240 h 1 Sem. in SuSe [5] Master (Entry Level) [DE/EN] German or English as required Hinze, Ralf, Prof. Dr. (PROF | DEPT: INF) [INF-SE] Software-Engineering [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
• 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.

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