Scala: an Introduction