Coursera: Functional Programming Principles in Scala - https://class.coursera.org/progfun-004/