Functional Programming Principles in Scala Coursera Course