Week 6 of Coursera's course on "Functional Programming with Scala"