Introduction to the Art of Programming Using Scala by Mark C. Lewis is a comprehensive textbook designed to teach computer science fundamentals (CS1 and CS2) using the Scala programming language. Unlike many other Scala resources that assume prior knowledge of Java, this book is specifically tailored for beginners and focuses on problem-solving and foundational computing concepts. Core Philosophy and Structure
The book is structured into two main parts that mirror a traditional two-semester introductory curriculum:
Part 1: Programming in the Small: Focuses on basic logic, problem decomposition, and fundamental syntax. It introduces the Read-Eval-Print Loop (REPL) and scripting environments to allow students to experiment with code immediately. Key topics include: Basic logic and conditionals. Functions and recursion for iteration.
Introduction to GUIs and graphics to provide visual feedback and motivation for new learners. introduction to the art of programming using scala pdf
Part 2: Object-Orientation and Data Structures: Shifts toward building larger systems and significant projects. It leverages Scala’s expressive blend of object-oriented and functional programming to teach: Abstraction, polymorphism, and inheritance.
Standard data structures like stacks, queues, linked lists, and trees.
Advanced topics including multithreading, networking, and actors for concurrency. Key Benefits for Learners Introduction to the Art of Programming Using Scala
No Prior Experience Required: It addresses general computer notions and operating system tools, which are often missing from technical books.
Hybrid Paradigm: By using Scala, students learn both functional (immutable data, higher-order functions) and object-oriented paradigms (classes, traits) simultaneously.
Scalability: The text emphasizes that the same concepts used for small scripts can be applied to large-scale distributed systems. Part 6: Extending the Art – What to
Practical Resources: The author provides additional student and instructor resources through the official Programming Using Scala website. Introduction | Tour of Scala
Once you close the PDF (assuming you completed the text adventure game project), you are not a master—you are an apprentice ready for the guild.
map, flatMap, filter), and for-comprehensions.Option and Try) without the scary category theory jargon. He calls them "containers for computation."The Second Edition (2016) covers Scala 2.11/2.12. The First Edition (2012) covers 2.9/2.10. For learning the art (recursion, immutability, pattern matching), the version doesn't matter. However, for libraries, you want the Second Edition PDF.