Information on individual educational components (ECTS-Course descriptions) per semester

  
Degree programme:Master Computer Science
Type of degree:FH Master´s Degree Programme
 Full-time
 Winter Semester 2023
  

Course unit titleFunctional Programming Conecpts
Course unit code024913010102
Language of instructionGerman
Type of course unit (compulsory, optional)Compulsory
Semester when the course unit is deliveredWinter Semester 2023
Teaching hours per week3
Year of study2023
Level of course unit (e.g. first, second or third cycle)Second Cycle (Master)
Number of ECTS credits allocated5
Name of lecturer(s)Wolfgang AUER
Patrick RITSCHEL


Prerequisites and co-requisites

This course also serves to compensate for differences in previous knowledge of programming languages and skills. Basic knowledge of a higher, object-oriented programming language according to the access requirements for the Masters degree course is required.

Course content

Concepts of pure functional programming in Haskell are introduced and discussed:

  • Static Typing
  • Explicit Recursion
  • Higher-Order Functions
  • Lambda Expressions
  • Currying
  • Pattern Matching
  • Lazy Evaluation
  • Type Classes
  • Functors
  • Monoids
  • Applicatives
  • Monads
  • Concurrency with STM
  • Free Monads
  • Dependent Types.
Learning outcomes

Students are able to name, classify and compare advanced concepts in the field of pure functional programming in Haskell. Additionally, the students are able to transfer the learned concepts into an object-oriented language of their choice.

Planned learning activities and teaching methods

Integrated Lecture with exercises and written elaboration.

Written elaboration: the introduced concepts have to be discussed in another programming language of choice and some of them implemented (Monads). Furthermore, a selected OO Design Pattern must be discussed in Haskell.

Assessment methods and criteria
  • Written Exam (100%)

 

Comment

None

Recommended or required reading

Lecturenotes: https://homepages.fhv.at/thjo/lecturenotes/concepts/index.html

  • Allen, Christopher; Moronuki, Julie (2016): Haskell Programming from First Principles. Lorepub LLC. Available at: URL: https://haskellbook.com/
  • Bloch, Joshua (2008): Effective java. Addison-Wesley Professional.
  • Brady, Edwin (2017): Type-driven development with Idris. Manning Publications.
  • Granin, Alexander (2020): Functional Design and Architecture (First Edition). Leanpub. Available at: URL: https://leanpub.com/functional-design-and-architecture (Accessed on: 14 December 2021).
  • Hutton, Graham (2016): Programming in Haskell, 2nd Ed. New York ; Cambridge, United Kingdom: Cambridge University Press.
  • Lipovaca, Miran (2011): Learn You a Haskell for Great Good!: A Beginner’s Guide. 1st edition. San Francisco, CA: No Starch Press. Available at: URL: http://learnyouahaskell.com/
  • MacLennan, Bruce J (1990): Functional programming: practice and theory. Addison-Wesley Longman Publishing Co., Inc.
  • Michaelson, Greg (2011): An introduction to functional programming through lambda calculus. Courier Corporation.
  • Urma, Raoul-Gabriel; Mycroft, Alan; Fusco, Mario (2018): Modern Java in Action. Manning Publications.
Mode of delivery (face-to-face, distance learning)

Face-to-face instruction with mandatory attendance

Winter Semester 2023go Top