Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Object-orientation, abstraction, and data structures using Scala (2nd ed.)
Lewis M., Lacher L., Chapman & Hall/CRC, Boca Raton, FL, 2017. 660 pp. Type: Book (978-1-498732-16-1)
Date Reviewed: Nov 27 2017

The topic of language choice for teaching programming often results in enthusiastic (sometimes irate) discussion. While Java, Python, and JavaScript are the most often championed choices, others such as Eiffel, Haskell, and, for our purpose, Scala have their own champions, in allowing a variety of programming concepts to be taught through a simple, even, and elegant perspective.

This book by Lewis and Lacher is suitable for a second or preferably third programming course, often referred to as CS2, where the first introduction could have been made in Scala or Java or even other languages. The same authors have two books that precede this one in didactic order; the one being reviewed here is a follow-up and concentrates on higher programming skills. As the authors themselves say, there is a lot of material in this book; it is dense, both in terms of topics covered and the level of detail. There is first an in-depth explanation of what makes Scala special, namely the coherent combination of object-orientation and polymorphism that can facilitate the development of large software development endeavors. Graphical interfaces, multithreading, and concurrency are necessary aspects for realistic applications, and these are covered next. This is followed by the usual topics of a second programming course--stacks, queues, trees, and lists.

The emphasis throughout the book is on programming, and it includes extensive code fragments and sometimes whole class definitions spanning up to three pages. The code is available on a GitHub repository, but it is very nice to have it printed in the book itself to allow it to be read in context. There is a tendency these days to print programming books using bright colors for emphasis; here, the decision was made to use black and gray, and I actually feel this makes it easier to read and to concentrate on understanding the details of the code. The authors also present unified modeling language (UML) diagrams to put the class definitions in context. Individual chapters conclude with a short summary, a few exercises, and contributions to projects that are proposed as threads to be followed all the way through the book.

I am impressed with the style of writing: it is direct and clear, and the authors get to the point without unnecessary meanderings, in comparison to other programming textbooks that may try to ensure weaker students are catered to. The style here may not suit some readers, particularly those that are still struggling with the concepts. But for competent programmers, I find this approach refreshing and helpful.

The book is presented as a course textbook, but I am not sure how many universities currently use Scala for the whole programming series. On the other hand, Scala has proven itself to be appropriate for many interesting and challenging applications, and this book can be of great benefit to any novice or experienced programmer who has been put in the position of having to produce professional-level Scala software. It is succinct (notwithstanding its size of over 600 pages) and provides practical solutions to programming tasks. I will certainly keep it on my bookshelf so that I can help the increasing number of students who choose to use Scala for their software project deliverables.

More reviews about this item: Goodreads

Reviewer:  Sara Kalvala Review #: CR145672 (1802-0039)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Object-Oriented Programming (D.1.5 )
 
 
Data Structures (E.1 )
 
Would you recommend this review?
yes
no
Other reviews under "Object-Oriented Programming": Date
Object-oriented programming systems, languages, and applications
Paepcke A.  Object-oriented programming systems, languages, and applications,Phoenix, AZ,Oct 6-Oct 11, 1991,1991. Type: Whole Proceedings
Oct 1 1992
Object lifecycles
Shlaer S., Mellor S., Yourdon Press, Upper Saddle River, NJ, 1992. Type: Book (9780136299400)
Apr 1 1993
Object-oriented programming
Voss G., Osborne/McGraw-Hill, Berkeley, CA, 1991. Type: Book (9780078816826)
Oct 1 1992
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy