Learning Concurrent Programming in Scala