In this presentation, I will first describe the Scala programming language and its position in the language space. I will then describe the Apache Spark programming model and its role in the Big Data space. Next, I will discuss the Scala features that make it the first choice for Spark programming, briefly commenting on the Python and Java alternatives. I will also cover some basic programming tools helpful for doing Scala-based Spark development. Finally, I will discuss my experience teaching these technologies in a graduate software engineering course.