Functional Programming (4V+2U, 8.0 LP)
|SWS||Type||Course Form||CP (Effort)||Presence-Time / Self-Study|
|-||K||Lecture with exercise classes (V/U)||8.0 CP||156 h|
|2||U||Exercise class (in small groups)||28 h|
|(4V+2U)||8.0 CP||84 h||156 h|
|CP, Effort||8.0 CP = 240 h|
|Position of the semester||1 Sem. in SuSe|
|Level|| Master (Entry Level)|
|Language||[DE/EN] German or English as required|
|Area of study||[INF-SE] Software-Engineering|
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.
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
- 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.