Summary First Milestone Functional Programming meets Object Orientation Scala Dev Enviornment Setup Hello World in Scala Common Types in Scala Class, Object and Trait in Scala Second Milestone Type Inference, Type Ascription and Type Aliasing in Scala Companion Object and Class in Scala Defining Properties/Fields in Scala Class/Object Defining Method/Definitions in Scala Class/Object Using Properties/Fields as Method/Definitions in Scala Class/Object Third Milestone Avoid Return Keyword in Scala Control Structures in Scala Operator as Functions and Object as Functions in Scala Procedures and Partially Applied Functions in Scala Code Compilation in Scala Fourth Milestone Arrays and Tuple in Scala List, Set and Map in Scala Using the Right Collection in Scala Using implicits to write expressive code Type Bounds in Scala Fifth Milestone Higher-order functions Currying in Scala First-class functions Pure functions in Scala Recursive functions in Scala Sixth Milestone Functors in Scala ✗ Monads in Scala ✗ Applicatives in Scala ✗ Prefer Immutability ✗