Introduction to the Art of Programming Using Scala

Introduction to the Art of Programming Using Scala

Free Standard Shipping

Purchasing Options

ISBN 9781439896662
Cat# K14273
Add to cart


  • Represents the first textbook to teach introductory programming via Scala, a modern language with a JVM implementation that supports coding in the large and small
  • Introduces the concepts of parallelism and parallel collections
  • Covers a variety of advanced topics, including multithreading and networking
  • Contains numerous exercises and hands-on projects in each chapter
  • Provides video lectures, data sets, additional exercises and projects, and sample solutions on the book’s website

Solutions manual and figure slides available with qualifying course adoption


With its flexibility for programming both small and large projects, Scala is an ideal language for teaching beginning programming. Yet there are no textbooks on Scala currently available for the CS1/CS2 levels. Introduction to the Art of Programming Using Scala presents many concepts from CS1 and CS2 using a modern, JVM-based language that works well for both programming in the small and programming in the large.

The book progresses from true programming in the small to more significant projects later, leveraging the full benefits of object orientation. It first focuses on fundamental problem solving and programming in the small using the REPL and scripting environments. It covers basic logic and problem decomposition and explains how to use GUIs and graphics in programs. The text then illustrates the benefits of object-oriented design and presents a large collection of basic data structures showing different implementations of key ADTs along with more atypical data structures. It also introduces multithreading and networking to provide further motivating examples.

By using Scala as the language for both CS1 and CS2 topics, this textbook gives students an easy entry into programming small projects as well as a firm foundation for taking on larger-scale projects. Many student and instructor resources are available at

Table of Contents

Introductory Concepts
Basics of Computers, Computing, and Programming
Getting to Know the Tools
Scala Basics
Recursion for Iteration
Arrays and Lists in Scala
Text Files
Case Classes
Sorting and Searching

Object-Orientation, Abstraction, and Data Structures
Bigger Programs/New Tools
A Project (Drawing Program)
Abstraction and Polymorphism
Other Collection Types
Multithreading and Concurrency
Stream I/O
Stacks and Queues
Linked Lists
Priority Queues
Regular Expressions and Context-Free Parsers
Spatial Trees
Binary Heaps
Direct Access Binary Files
Augmenting Trees
Wrapping Up

Appendix A: Quick Preview of Java
Appendix B: Advanced Scala Concepts
Appendix C: Glossary



Author Bio(s)

Editorial Reviews

"This textbook for college programming courses is obviously aimed at students in computing, but it would also be useful for students in other fields since it is about problem solving. Software designers can also use it as a reference for many programming techniques. … this is great textbook, containing a huge amount of useful information for students."
—Claudiu Popescu, Computing Reviews, March 2013

Other CRC Press Sites
Featured Authors
Facebook Page for CRC Press Twitter Page for CRC Press You Tube Channel for CRC Press LinkedIn Page for CRC Press Google Plus Page for CRC Press
Sign Up for Email Alerts
© 2014 Taylor & Francis Group, LLC. All Rights Reserved. Privacy Policy | Cookie Use | Shipping Policy | Contact Us