Praise for the first edition:
"The well-written, comprehensive book…[is] aiming to become a de facto reference for the language and its features and capabilities. The pace is appropriate for beginners; programming concepts are introduced progressively through a range of examples and then used as tools for building applications in various domains, including sophisticated data structures and algorithms…Highly recommended. Students of all levels, faculty, and professionals/practitioners.
―D. Papamichail, University of Miami in CHOICE Magazine
Mark Lewis’ Introduction to the Art of Programming Using Scala was the first textbook to use Scala for introductory CS courses. Fully revised and expanded, the new edition of this popular text has been divided into two books. Object-Orientation, Abstraction, and Data Structures Using Scala, Second Edition is intended to be used as a textbook for a second or third semester course in Computer Science.
The Scala programming language provides powerful constructs for expressing both object orientation and abstraction. This book provides students with these tools of object orientation to help them structure solutions to larger, more complex problems, and to expand on their knowledge of abstraction so that they can make their code more powerful and flexible. The book also illustrates key concepts through the creation of data structures, showing how data structures can be written, and the strengths and weaknesses of each one. Libraries that provide the functionality needed to do real programming are also explored in the text, including GUIs, multithreading, and networking.
The book is filled with end-of-chapter projects and exercises, and the authors have also posted a number of different supplements on the book website. Video lectures for each chapter in the book are also available on YouTube. The videos show construction of code from the ground up and this type of "live coding" is invaluable for learning to program, as it allows students into the mind of a more experienced programmer, where they can see the thought processes associated with the development of the code.
About the Authors
Mark Lewis is an Associate Professor at Trinity University. He teaches a number of different courses, spanning from first semester introductory courses to advanced seminars. His research interests included simulations and modeling, programming languages, and numerical modeling of rings around planets with nearby moons.
Lisa Lacher is an Assistant Professor at the University of Houston, Clear Lake with over 25 years of professional software development experience. She teaches a number of different courses spanning from first semester introductory courses to graduate level courses. Her research interests include Computer Science Education, Agile Software Development, Human Computer Interaction and Usability Engineering, as well as Measurement and Empirical Software Engineering.
Table of Contents
Chapter 1 Scala Language Basics
Chapter 2 Basics of Object-Orientation and Software Development
Chapter 3 Details of Object-Orientation in Scala
Chapter 4 Abstraction and Polymorphism
Chapter 5 GUIs and Graphics
Chapter 6 Other Collection Types
Chapter 7 Stacks and Queues
Chapter 8 Multithreading and Concurrency
Chapter 9 Low-Level Multithreading and Java Libraries
Chapter 10 Stream I/O and XML
Chapter 11 Networking
Chapter 12 Linked Lists
Chapter 13 Priority Queues
Chapter 14 Refactoring
Chapter 15 Recursion
Chapter 16 Trees
Chapter 17 Regular Expressions and Context-Free Parsers
Chapter 18 Binary Heaps
Chapter 19 Direct Access Binary Files
Chapter 20 Spatial Trees
Chapter 21 Augmenting Trees
Chapter 22 Hash Tables