Scala is an open source language that combines an object oriented approach with a functional programming paradigm. It has become popular due to its scalability, flexible syntax, interoperability with Java and pattern matching. This course will introduce the fundamentals of Scala from the context of a Java background. It covers what is different between the two languages, how they are related and how to adopt a functional, rather than object oriented, approach.
The course covers a number of topics, starting from an object oriented perspective and adds more functional programming concepts in at each stage. By the end of the course, delegates should be able to design, create and test reliable Scala projects. We present this course through a combination of lectures, discussions and practical exercises. Topics are explained and demonstrated with time provided to refine and develop concepts in order to fully understand them. Additional information is provided in appendices covering interoperability with Java.