ST: Functional Programming in Scala and Java

339.352 2 KV Prähofer, Fried Start: May 25, 2023

Objectives

Getting an in depth introduction to functional programming in Scala and Java.

Subjects

  • Introduction to functional programming
  • Language foundations for a functional programming in Scala and 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, 25 17:15 - 19:45 MT 226/1 Introduction and language foundations
2 Friday, May 26 10:15-11:45, 12:45 – 15:15 S5 101 Functional data structures, functional exception handling
3 Thursday, June 1 17:15 - 19:45 MT 226/1 Common structures in functional design
4 Friday, June 2 10:15-11:45, 12:45 – 15:15 HS 18 / MT 226/1 Common structures in functional design
5 Thursday, June 15 17:15 - 19:45 MT 226/1 Lazy evaluation and streams
6 Friday, June 16 10:15-11:45, 12:45 – 15:15 MT 226/1 Reactive programming with RxJava
7 Friday, June 23 10:15 - 11:00 HS 18, HS 7 Exam

Literature

  • H. Prähofer: Funktionale Programming in Java, dpunkt.verlag, 2020 (in German)
  • M. Odersky et al., Programming in Scala, Artima, 2021
  • P. Chuisano, R. Bjarnason: Functional Programming in Scala, Manning, 2015
  • 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