Course overview
In the world of data, distributed system, and real-time communication, it is common to hear “stream of data”. But do you know how to work with data streams? How to process data within a stream? Doing that fast and, of course, keep your code readable? If not, that course is for you!
In the course, we will learn a functional approach for data stream processing. We will start from the basics of functional programming and end with applying FP for building real data pipelines.
Course topics
Topic 1: Basics
- Motivation: The role of Functional Programming in the world of data
- Functions, High-Order Functions, Pure Functions
- Closure and Function Curring
- Recursion
- Functional Data Structures
- Pattern Matching
Topic 2: Collections and Operations on Collections
- Transformation
- Functional Composition
- Declarative & Lazy evaluation
- Common Transformations: map, reduce, etc..
Topic 3: Asynchronous & Parallel with functional programming
- Parallel vs Async Sequential
- Algorithms & Data Structures for parallel programing
- Fork Join
- Map => Reduce
- Frameworks: Akka
Topic 4: Reactive and Functional Programming for Streaming
- Control Flow: Push vs. Pull
- Reactive Streams
- Akka Streams
Prerequisites
1. IntelliJ IDEA
2. EduTools Plugin Installed
3. Scala Plugin Installed
4. JDK 8+