ST: Functional Programming in Java

339.352 2 KV Prähofer, Fried Start: May 15, 2025

Objectives

Getting an in depth introduction to functional programming in Java.

Subjects

  • Introduction to functional programming
  • Language foundations for a functional programming in Java
  • Functional data structures
  • Functional exception handling
  • Common structures in functional design
  • Lazy evaluation and streams
  • Functional reactive programming with Reactive Extensions

Methods

  • slide-based lecture
  • programming examples
  • homework assignments

Language

English

Criteria for evaluation

  • homework assignments
  • written exam

Schedule

Nr Date Time Room Topics
1 Thursday May, 15 17:15 - 19:45 MT 226/1 Introduction and language foundations
2 Friday, May 16 10:15-11:45, 12:45 – 15:15 S4 025 Functional data structures, functional exception handling
3 Thursday, May 22 17:15 - 19:45 MT 226/1 Common structures in functional design
4 Friday, May 23 10:15-11:45, 12:45 – 15:15 S4 025 Common structures in functional design
5 Thursday, June 5 17:15 - 19:45 MT 226/1 Lazy evaluation and streams
6 Friday, June 6 10:15-11:45, 12:45 – 15:15 S4 025 Reactive programming with RxJava
7 Friday, June 27 10:15 - 11:00 HS 15 Exam

Literature

  • H. Prähofer: Funktionale Programming in Java, dpunkt.verlag, 2020 (in German)
  • R.-U. Urma, M. Fusco, A. Mycroft: Modern Java in Action, Manning, 2019
  • M. Naftalin: Mastering Lambdas: Java Programming in a Multicore World, Oracle Press, 2015
  • R. M. Reese: Learning Java Functional Programming, Packt Publishing, 2015
  • P.-Y. Saumont: Functional Programming in Java, Manning, 2016