Functional Programming Principles in Scala - https://www.coursera.org/course/progfun