Conversations with Computer Scientists

Wednesday, September 5, 2018

Walls and Mirrors, 7th edition., receives the 2018 McGuffey Longevity Award

The 7th edition of Data Abstraction & Problem Solving: Walls and Mirrors was awarded the McGuffey Longevity Award from the Textbook and Academic Authors Association.  My co-author, Tim Henry, and I were honored to receive the award at the Association's 31st annual conference, which took place in Santa Fe, New Mexico. The award recognizes textbooks whose "excellence has been demonstrated over time." Indeed, the first edition of this book was published in 1995. Our 6th edition also received this award in 2016.


The 5th edition of Data Structures and Abstractions with Java is published

What’s New?

This new, 5th, edition of Data Structures and Abstractions with Java enhances the previous edition and continues its pedagogical approach to make the material accessible to students at the introductory level. The coverage that you enjoyed in previous editions is still here. As is usual for us, we have read every word of the previous edition and made changes to improve clarity and correctness. No chapter or interlude appears exactly as it did before. Our changes are motivated by reader suggestions and our own desire to improve the presentation.

In this new edition, we
• Adjusted the order of some topics.
• Added coverage of recursion in a new chapter that introduces grammars, languages, and  
  backtracking.
• Added additional Design Decisions, Notes, Security Notes, and Programming Tips 
  throughout the book.
• Added new exercises and programming projects, with an emphasis in areas of gaming, 
  e-commerce, and finance to most chapters.
• Refined our terminology, presentation, and word choices to ease understanding.
• Revised the illustrations to make them easier to read and to understand.
• Renamed Self-Test Questions as Study Questions and moved their answers to online. 
  We encourage our students to discuss their own answers with a study partner or group.
• Included the appendix about Java classes within the book instead of leaving it online.
• Reduced the amount of Java code given in the book.
• Ensured that all Java code is Java 9 compliant

And our table of contents:

 Introduction       Organizing Data
 Prelude               Designing Classes
 Chapter  1           Bags
 Java Interlude  1 Generics
 Chapter  2           Bag Implementations That Use Arrays
 Java Interlude  2 Exceptions
 Chapter  3           A Bag Implementation That Links Data
 Chapter  4           The Efficiency of Algorithms
 Chapter  5           Stacks
 Chapter  6           Stack Implementations
 Java Interlude  3 More About Exceptions 
 Chapter  7           Queues, Deques, and Priority Queues 
 Chapter  8           Queue, Deque, and Priority Queue Implementations 
 Chapter  9           Recursion 
 Chapter 10          Lists  
 Chapter 11          A List Implementation That Uses an Array
 Chapter 12          A List Implementation That Links Data  
 Java Interlude  4 Iterators 
 Chapter 13          Iterators for the ADT List 
 Chapter 14          Problem Solving With Recursion 
 Java Interlude  5 More About Generics 
 Chapter 15          An Introduction to Sorting 
 Chapter 16          Faster Sorting Methods 
 Java Interlude  6 Mutable and Immutable Objects 
 Chapter 17          Sorted Lists   
 Java Interlude  7 Inheritance and Polymorphism
 Chapter 18          Inheritance and Lists 
 Chapter 19         Searching 
 Java Interlude  8 Generics Once Again
 Chapter 20         Dictionaries 
 Chapter 21         Dictionary Implementations 
 Chapter 22         Introducing Hashing 
 Chapter 23         Hashing as a Dictionary Implementation 
 Chapter 24         Trees
 Chapter 25         Tree Implementations 
 Java Interlude  9 Cloning
 Chapter 26         A Binary Search Tree Implementation 
 Chapter 27         A Heap Implementation 
 Chapter 28         Balanced Search Trees 
 Chapter 29         Graphs 
 Chapter 30         Graph Implementations 

 Appendix A       Documentation and Programming Style
 Appendix B       Java Classes                                   
 Appendix C       Creating Classes from Other Classes 

Online Supplements:
 Supplement 1    Java Basics   
 Supplement 2    File Input and Output   
 Supplement 3    Glossary 
 Supplement 4    Answers to Study Questions