ST: Functional Programming in Scala and Java

339.352 2 KV Prähofer, Fried Start: May 19, 2022

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 project

Language

English

Criteria for evaluation

  • homework examples
  • student projects
  • written exam

Schedule

Nr Date Time Room Topics
1 Thursday May, 19 17:15 - 19:45 S5 101 Introduction and language foundations
2 Friday, May 20 10:15-11:45, 12:45 – 15:15 HS 4 Functional data structures, functional exception handling
3 Thursday, June 2 17:15 - 19:45 S5 101 Common structures in functional design
4 Friday, June 3 10:15-11:45, 12:45 – 15:15 HS 18 Common structures in functional design
5 Thursday, June 9 17:15 - 19:45 S5 101 Lazy evaluation and streams
6 Friday, June 10 10:15-11:45, 12:45 – 15:15 HS 18 Reactive programming with RxJava
7 Friday, June 24 10:15 - 11:00 HS 18 Guest Lecture Alex Fried
8 Friday, June 24 11:00 - 11:45 HS 18 Written 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