Coursera "Functional programming principles in Scala" (Martin Odersky) homeworks