This book is intended as an introduction to Scala for computer science students or those actively involved in the software industry. It assumes some familiarity with standard computing concepts such as the idea of compiling a program and executing this compiled form, etc., and with the basics of procedural language concepts such as variables and allocation of values to variables etc. However, the early chapters of the book do not assume any familiarity with object orientation nor functional programming. They also step through other concepts with which the reader may not be familiar (such as list processing etc.). From this background, it provides a practical introduction to object and functional technology using Scala, one of the newest and most interesting programming languages available.