Functional Programming

Module Code
Module Coordinators
Burkhardt Renz
  • Thomas Letschert
  • Burkhardt Renz
  • Norman Ulbrich
  • Short Description
    The course teaches the theoretical background of functional programming. The participants learn to apply the concepts to practical software projects.
    Learning Objectives

    The participants are able to apply the paradigm of functional programming to own software projects. They have a deep insight into the concepts of a functional programming language. The participants are capable of dividing complex problems by expressing and validating them in a functional way. They understood the theoretical background and are able to apply what they have learned to other programming languages

    • Lambda calculus
    • Closures
    • Currying
    • Recursion
    • Higher-order functions
    • Referential transparency
    • Generators/infinite streams
    Duration in Semester
    Instruction Language
    Total Effort
    6 CrP; an estimated 180 hours, of which approximately 60 are spent in class.
    Weekly School Hours
    Method of Instruction

    Lecture 2 SWS, Exercises 2 SWS

    Requirements for the awarding of Credit Points

    Examination prerequisite: Group project to implement software using functional programming

    Examination: Written or oral exam (The form of the examination will be announced to the students in a timely and appropriate manner)

    Evaluation Standard
    according to examination regulations (§ 9)
    As Needed
    • Piepmeyer, Lothar: Grundkurs funktionale Programmierung mit Scala Hanser
    • Odersky, Martin: Programming in Scala Artima
    • Bird, Scruggs, Mastropieri: Introduction to Functional Programming, Prentice Hall
    • S. Halloway, A. Bedra: Programming Clojure, 2nd Edition, O'Reilly
    • St. Kamphausen, T.O. Kaiser: Clojure, dpunkt.verlag