This course cover Scala core programming, basic and advanced, and is for any experienced OOP developer (Java, C#, C++…). The first part of the course details Scala configuration, base syntax and flow control. This part also relates to functional programming and main OO concerns like inheritance and traits. It also relates to Scala data-structures, pattern matching and handling optional values. The second part of the course is more advanced regarding object-functional programming, the type system and how to leverage these features to create well-designed libraries or DSL’s utilizing proven best practices.