Home > Store

Programming Abstractions in Java

Register your product to gain access to bonus material or receive a coupon.

Programming Abstractions in Java


  • Your Price: $135.99
  • List Price: $159.99
  • Usually ships in 24 hours.



About the Book

Programming Abstractions in Java provides the following features to facilitate learning:

Prepare students to bridge the gap between the future of the high-tech industry and the short supply of trained developers and engineers

  • Extensive examples and exercises ensure that students move beyond simply reading about algorithmic techniques and learn to apply algorithms in practice.
  • Learning how to develop and maintain large systems allows students to explore such issues as data representation, efficiency, security, correctness and modularity.
  • Algorithms and strategies as monuments to human creativity give students a look at implementation strategies new and old–some invented in the last decade and some more than 2000 years old.
  • Working through exercises and debugging in early attempts prompts students to apply the learned material to solve problems.
  • The overall content lays the groundwork for understanding advanced topics in programming and the broader field of computer science.

Help students solve problems in a new way using the “client-first approach”

  • Stanford University’s “client-first approach” allows students to gain a better understanding of the underlying data model and how each structure can be used.
  • Learning how to use Java’s standard collection classes enables students to master the tools they need to write effective applications.
  • Presenting the client-side perspective early allows students to understand how data structures are used before exploring the range of possible implementations and their associated computational characteristics.
  • Roberts's clear presentation of the “client-first approach” builds on the tremendous success of this approach at Stanford University.
  • The material in the text iscovered in a traditional CS2 course, as defined in the Curriculum ’78 report prepared by the Association for Computing Machinery (ACM).  It also includes most of the topics specified for the CS102O and CS103O courses, asdefined by the Joint ACM/IEEE-CS Computing Curricula 2001 report and the material in the AL/Fundamental Data Structures and Algorithms unit from Computer Science Curricula 2013


  • Copyright 2017
  • Dimensions: 7-3/8" x 9-1/8"
  • Pages: 800
  • Edition: 1st
  • Book
  • ISBN-10: 0-13-442118-3
  • ISBN-13: 978-0-13-442118-6

For courses in Java Data Structures.

Programming Abstractions in Java: A Client-First Approach

Programming Abstractions in Java is intended for use in the second programming course in most college or university curriculum. Stanford University’s Eric Roberts employs a novel strategy called the client-first approach while maintaining full coverage of the CS2 curriculum. In the traditional approach, students learn how to use a particular data structure, how to implement it, and what its performance characteristics are—all at the same time. Roberts exposes the weakness of this model. In short, students are trying to understand how a structure is implemented before they have mastered how one would use that structure in an application.

With Programming Abstractions in Java and Roberts’s client-first approach, students learn how to use the full set of collection classes before they tackle any implementation issues. By tackling compelling, real-world assignments in which they use the collection classes as clients, students gain a firm sense of the underlying data model and how each structure can be used. Once they have had time to master the client-side perspective, students are ready to explore the range of possible implementations and their associated computational characteristics. They can also begin to learn the software development skills so desperately needed in the technology industry today.

Sample Content

Table of Contents

1. Overview of Java

2. Methods

3. Strings

4. Files

5. Arrays

6. Collections

7. Classes and Objects

8. Inheritance

9. Recursive Strategies

10. Backtracking Algorithms

11. Algorithmic Analysis

12. Efficiency and Representation

13. Linear Structures

14. Maps

15. Trees

16. Sets

17. Graphs

18. Expression Trees

19. Using Function as Data


Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership