|

Addison-Wesley / Prentice Hall

Computer Science

My Instructor Resource Center :  Log in or request access

Object of Data Abstraction and Structures (using Java), The
David RileyUniversity of Wisconsin, LaCrosse

ISBN-10: 0201713594
ISBN-13:  9780201713596

Publisher:  Addison-Wesley
Copyright:  2003
Format:  Paper; 688 pp
Published:  10/03/2002
Status: Out of Print


We're sorry, this product is no longer available.
Please contact your Pearson rep if you are using this product and need instructor resources.

The Object of Data Abstraction and Structures is for readers who are looking for a second computer science course that focuses on a modern object-oriented approach in Java. It covers the traditional data structures topics of a CS2 course, with special attention to sound software engineering practice, using an object-oriented approach.

The presentation is divided into two parts to provide instructors maximum flexibility to tailor the material to their particular needs. The main body of the textbook consists of Chapters 1-10 with general topics that are common to most CS2 courses, but with a distinctly O-O flavor. The Foundations section of the book, consisting of chapters F1 through F5, is a collection of foundational material that are assumed within the main body. These topics include an introduction object-oriented programming, software specifications, inheritance, exceptions and recursion. Most CS2 courses expect some, but not all, of this Foundations material as prerequisite, but there are considerable differences. The inclusion of these Foundations chapters allows the faculty member to choose how to use these topics. If a Foundations topic is new to students, then it may be fully covered at the beginning of the course, or inserted within the course at the instructor's discretion. If the Foundations topic is covered in prior curricula, then the Foundations material may be ignored or covered lightly using spiral pedagogy. It is even possible to pick and choose individual sections of the Foundations chapters.

Chapter 1 begins with the concept of abstraction (ADTs) and how it is used in software design. UML class diagrams are used to display high-level design and abstract preconditions and postconditions provide a notation to express detailed design. The Template Design Pattern is also introduced. Chapter 2 examines the concept of a data container from an abstract (ADT) perspective. Design issues, such as genericity, boundedness, iterators and mutability are explored. Chapter 3 is a brief aside to introduce performance issues, and Chapter 4 is an initial examination of ADT implementation using structures that are somewhat familiar to the student - arrays. Chapter 5 covers files and streams, including the O-O concept of persistence. Chapters 6 is a substantial exploration of lists that ranges from list/sequence ADTs to list applications to list implementation strategies to standard Java list classes. Chapter 7 presents stacks and queues, including both implementations and applications. Chapter 8 includes a presentation of the increasingly popular Map ADT and typical implementations from simple arrays to hash tables. Chapter 9 covers trees and Chapter 10 presents various searching and sorting algorithms.

  • Presents traditional data structures topics of the second (CS2) class using an object-oriented methodology to offer better approaches for data structure design and implementation.
  • Makes a clear distinction between design and implementation.
  • Provides an object-oriented approach to abstract design using class diagrams, design by contract, and several fundamental design patterns.
  • Utilizes object-oriented methodology such as iterators, interfaces, and inner classes to demonstrate proper O-O implementations.
  • Integrates the coverage of several standard Java interfaces and classes that are related to data containers.
  • Includes Core Concepts: Review and Reference section that has 6 Chapters of material that permits user to tailor topic order and coverage.
  • Makes extensive use of specifications in the form of preconditions, postconditions and class invariants as a means to define class and method behavior.
  • Emphasizes software engineering skills using special Software Engineering Tip boxes throughout each chapter to highlight sound software development practices.
  • Consistently uses UML class diagrams and object diagrams exposing students to the same notations that have become the industry standard.
  • Provides practical “how to” ideas regarding code and design reviews by Java Inspector sections at the end of each chapter. Each Java Inspector section also serves to review key material from the chapter.
  • A perfect follow-up text to the author's The Object of Java (Addison-Wesley, 2001), or any other introduction to Java book.

SECTION 1.

Abstraction.

Abstract Data Types.

Specification and Abstraction.

ADT Design Principles.

Template Design Pattern.

Interfaces.

The Object Class.

Containers.

Intro to Containers.

Generic Containers.

Wrapper Classes.

Bounded Containers.

Sequences.

String.

Mutability.

Iterators.

Collections and Enumerations.

Performance Considerations.

Algorithms and Counting.

Big-oh Notation.

Run-time Performance of Control Various Structures.

Arrays and Tables.

Review of One-Dimensional Arrays.

An Array Implementation of BoundedSet.

Representations.

Implementing Iterator.

Implementing Collection (optional).

The Vector Class.

Multidimensional Arrays.

Array of Arrays.

Tables.

Bit Vectors.

Finite State Machines.

Lists and List Implementations.

Data Lifetime.

The Singleton Design Pattern.

Dynamic Data Allocation and Deallocation.

Objects Referencing Like Objects.

One-way Lists and Single Linking.

Implementing a Simple Singly- linked List.

List Implementation Improvements — Sentinel Nodes & Pre-pointers.

Multiple Iterators Per List.

Iterator Integrity.

Circular Lists.

Two-way Lists and Double Linking.

java.util.list and java.util.LinkedList (optional).

Implementing a List with an Array.

Other Linear Containers (Stacks and Queues).

Stack as a Container ADT.

Sample Stack Applications.

List Implementations of Stack.

An Array Implementation of Stack.

java.util.Stack.

Queue as a Container ADT.

A List Implementation of Queue.

Ring Buffer Implementation of Queue.

Priority Queue.

Maps.

Map ADT.

Implementing Map in a List.

Implementing Map as an Array Table.

Hash Tables.

Implementing Map as a Hash Table.

java.util.Map and java.util.HashMap.

Trees.

Introduction to Trees.

Tree Applications.

Binary Trees.

A Binary Tree and Iterator.

Tree Traversal Algorithms.

Binary Search Trees.

Linked Implementations of Binary Trees.

An Array Implementation of Binary Tree.

General Trees.

SECTION 2. CORE CONCEPTS: REVIEW AND REFERENCE.

Object-oriented Programming.

Objects and Classes.

Java Applications.

Class Diagrams.

Implementing a Design.

Program Execution - Object Diagrams.

Testing and Debugging.

Java Applets.

Software Specifications.

Why Specify?

Class Diagrams.

A Language for Expressing Specifications.

Common Assertion Patterns.

Designing and Programming by Contract.

Preconditions and Postconditions.

Class Specifications.

Inheritance.

Extension and Specialization.

is_a Relationships.

Inheritance in Java.

Scope and Inheritance.

Type Conformance.

Dynamic Dispatch and Polymorphism.

Abstract Classes.

Exceptions.

Robustness and Exceptions.

Exception Handling.

Exception Recovery.

Standard Exceptions.

Specifying with Exceptions.

Files and Streams.

Files.

The Java File Class.

Input and Output.

DataInputStream and DataOutputStream.

Text Files.

Terminal-style I/O (optional).

Persistent Objects.

Recursion.

Recursive Definition.

BNF.

Recursion in Specification Functions.

From Recursive Definition to Method.

Recursive Methods.

Recursive Execution.

Recursion and Repetition.

More Complicated Forms of Recursion.

David D. Riley is chairman of the Department of Computer Science at University of Wisconsin-LaCrosse, where he teaches programming for beginners and for experienced programmers. His areas of specialty include object-oriented software development, software engineering, and computer architecture. He holds a Ph.D. in Computer Science from the University of Iowa.

Professor Riley is the author of four other programming books, including Data Abstraction and Structures using C++ with Mark Headington.

Companion Website
Riley
©2003 | Addison-Wesley | On-line Supplement | Instock
ISBN-10: 0321154827 | ISBN-13: 9780321154828


Companion Website
Riley
©2003 | Addison-Wesley | On-line Supplement | Instock
ISBN-10: 0321154827 | ISBN-13: 9780321154828


Online Solutions Manual
Riley
©2003 | Addison-Wesley | On-line Supplement | Instock
ISBN-10: 0321360966 | ISBN-13: 9780321360960
    View Downloadable Files

Companion Website
Riley
©2003 | Addison-Wesley | On-line Supplement | Instock
ISBN-10: 0321154827 | ISBN-13: 9780321154828


Companion Website
Riley
©2003 | Addison-Wesley | On-line Supplement | Instock
ISBN-10: 0321154827 | ISBN-13: 9780321154828


Log in to the Instructor Resource Center

Login name: 

  Password: 

Forgot login/password?  |  Need to redeem an access code?

         

Instructor Resource Center File Download

This work is protected by local and international copyright laws and is provided solely for the use of instructors in teaching their courses and assessing student learning. Dissemination or sale of any part of this work (including on the World Wide Web) will destroy the integrity of the work and is not permitted. The work and materials from this site should never be made available to students except by instructors using the accompanying text in their classes. All recipients of this work are expected to abide by these restrictions and to honor the intended pedagogical purposes and the needs of other instructors who rely on these materials.

Cancel                       I accept, proceed with download

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.