Various hybrid-functional languages, designed to balance compile-time error detection, conciseness, and performance, have emerged. Scala, e.g., is interoperable with Java and has become an early leader in adoption, especially in the start-up and open-source spaces.
As educators, we have recognized Scala’s value as a teaching language across the CS curriculum. In CS1, the read-eval-print loop and simple, uniform syntax aid programming in the small. In CS2, higher-order methods allow concise, efficient manipulation of collections. In a programming languages course, advanced constructs facilitate the separation of concerns, program representation and interpretation, and concurrent programming. In advanced applied courses, language mechanisms and suitable libraries support the development of mobile apps, web apps, and web services.
Based on our own experiences in the classroom, we discuss what works and what needs improvement, and hope to discuss the best ways for industry and higher education to partner in an effort to meet the growing demand for Scala talent.
Läufer, Konstantin; Thiruvathukal, George K.; and Lewis, Mark C., "Experiences with Scala Across the College-Level Curriculum" (2017). Emerging Technologies Laboratory Publications. 5.
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License.