The aim of the course is to teach the intermediate and advanced-level functional programming and the principles of reactive programming. Reactive programming is a novel discipline which combines concurrency and event-based and asynchronous systems. It is essential for writing any kind of web-service or distributed system and is also at the core of many high-performance concurrent systems. Reactive programming deals with distributed state by coordinating and orchestrating asynchronous data streams. Course topics include an intermediate to advanced level of functional programing and design patterns (monoid, functors, applicative functor, monads, etc). In addition, principles of reactive programming and will be introduced. During the course, basics of the category theory will also be covered.
You should have a strong background on Functional Programming.
Functional Programming in Scala,
PAUL CHIUSANO & RUNAR BJARNASON, Manning Co., 2015.
Lecture notes will be posted on the class web page as the lecture proceeds.
The course materials are excerpted from many sources mainly from the text and