Object Meets Function
The Praktikum demonstrates how to merge imperative, functional, and object-oriented programming paradigms using Scala as a programming language. It starts with imperative paradigms like mutation and control structures. The next step is learning about functional paradigms, including first-class function, higher-order function, call by value, and call by name. As a last paradigm, there is object-oriented programming, which covers encapsulation, inheritance, and polymorphism. We will discuss options, collections, pattern matching, regular expressions, and function composition in the next topic. Programming can be improved by learning the ideas behind it.
- The Praktikum is in English
- The maximum number of absents is three.
- The participant must complete 75% of assignments (ex. six from eight).
- All assignments must submit before the deadline. Late submission will deduct 20% from the maximum point per day.
- The participant must complete one project.
- Participants can make a group (max 2 participants per group) for one project.
- Programming paradigm
- Let mutate the state! (Imperative)
- Do it with functions
- Everything is the object
- Option, implicit, and collection
- Matching with pattern
- Function composition (Monad)
- More about function composition
- 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.
- Those who want to learn to program in Scala.
- Programmers who wish to expand their horizons by learning new concepts.
- OO programmer, this Praktikum will expose you to many concepts from functional programming and advanced object-oriented class.
General programming knowledge is assumed. However, we expect participants to be familiar with Functional Programming and Object-Oriented.
The Praktikum is in high demand. Therefore, to participate, please send an email containing your name, Matrikelnummer, and Studiengang to Steven Lolong
- We meet every Wednesday from 18:00 - 20:00