Modulbeschreibung

Funktionale Programmierung

ECTS-Punkte:
4
Lernziele:

The main aim of this module is to apply formal programming language based techniques for the construction and verification of computer programs.

Special emphasis will be made on techniques outside mainstream programming in the imperative object oriented programming style, and verification using unit testing.

The students are able to:

  • construct programs in the functional style
  • verify the correctness of functional programs
  • explain the formal foundations of the techniques covered

The functional programming language Haskell will be used as a basis whenever appropriate.  

Kurse in diesem Modul

Funktionale Programmierung:
  • Functional programming (Haskell):
    • Referential transparency
    • Functions as first-class citizens
    • Higher-order functions
    • Algebraic datatypes
    • Pattern matching
    • Recursion
    • Types & type inference
    • Type classes
    • Functors, Applicative, Monads
  • Verification:
    • Property-based testing (Quickcheck)
    • Proving program correctness
  • Formal foundations:
    • Lambda calculus

Additional topics will be covered, depending on student interest and the time available in the current semester. Here are some examples of such topics covered in the past:

  • Logic programming
  • Formal proof
  • Type systems
  • Dependent types
Vorlesung mit 2 Lektionen pro Woche
Uebung mit 2 Lektionen pro Woche
Disclaimer

Diese Beschreibung ist rechtlich nicht verbindlich! Weitere Informationen finden Sie in der detaillierten Modulbeschreibung.