Programming Languages

Object Meets Function [INF3213]

This Praktikum is about how to mix three programming paradigms: Imperative, Functional, and Object-Oriented using one programming language “Scala”. It starts from imperative programming paradigms like mutation and control structure. Continue with functional paradigm like first class function, higher order function, call by value, call by name, and termination. Last paradigm is object oriented that cover encapsulation, inheritance, and polymorphism. Next topic is about option, collection, pattern matching, regular expression, and function composition. By learning the ideas behind it, can help participant become a better programmer in general.


  • Programming paradigm
  • Let mutate the state! (Imperative)
  • Do it with functions
  • Everything is object
  • Option, implicit and collection
  • Matching with pattern
  • Function composition (Monad)
  • More about function composition

Entry in the Campus system (ALMA)

Entry in the Campus system: Link


To participate in this course, send an email containing your name, Matrikelnummer and Studiengang to Steven Lolong
Steven Lolong


We meet every Monday at 14 c.t. - 16 via Zoom (click here) or copy and paste this address in your browser:


The participant

  • Those who want to learn to program in Scala.
  • Programmers who wish to expand their horizons by learning new concept.
  • OO programmer, this Praktikum will expose you to many concepts from functional programming as well as advanced object-oriented class.


General programming knowledge is assumed. However, we expect participant to be familiar with Functional Programming (Informatik 1) and Object-Oriented (Informatik 2).

Learning Goals

At the end of this Praktikum, participant understand and should be able to:

  • Build an application using Scala.
  • Understand the paradigms of Imperative, Functional, and Object-Oriented programming and able to use them to build an application.
  • Combine the three paradigms in building application using Scala.

Praktikum’s rules

  • Praktikum is in English
  • Max absents of participant are 3 (three) including presentation session by other participant.
  • Must complete 6 from 8 assignments.
  • Assignment must submit base on date line. For late assignment will deduct 20% per day.
  • Must complete 1 project.
  • Participant can make a group (max 2 participant per group) for 1 project.


  • Assignment (programming task): 50%
  • Project: 50%


  • Programming in Scala. Martin Odersky, Lex Spoon, and Bill Venners.
  • Functional Programming in Scala. Paul Chiusano and Rúnar Bjarnason.
  • Scala for the Impatient. Cay Horstmann.