Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010019215 | QA76.64 T73 2003 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
This text provides students with a strong introduction to basic data structures, object-oriented analysis and design, and fundamental software design concepts and principles.
Author Notes
Jean-Paul Tremblay received the Ph.D. degree in Computer Science from Case Institute of Technology. He is currently a professor in the Department of Computer Science at the University of Saskatchewan. Professor Tremblay has co-authored several books in the McGraw-Hill Science Series and is also a co-author of Logic and Discrete Mathematics: A Computer Science Perspective, published by Prentice Hall. His research interests currently focus on CASE systems and automated software diagram layout tools.
Grant A. Cheston received the Ph.D. degree in Computer Science from the University of Toronto. He is currently a professor in the Computer Science Department at the University of Saskatchewan. Professor Cheston's research interests are in the graph algorithms area.
Table of Contents
1 State of Software Development.Introduction |
Software Development Process |
Assessing Software Quality |
Principles of Software Design |
Approaches to Software Design |
Concluding Remarks |
2 Java Basics.Introduction |
Comments and White Space |
Naming Conventions |
Data Types |
Literals and Constants |
Operators |
Basic Statements |
Methods |
Class Declaration |
Java System |
Objects |
Inheritance |
Argument Passing |
Repairing Program Faults |
I/O to Text Files |
Java Virtual Machine |
Graphical User I/O |
Concluding Remarks |
3 Objects and Classes.Introduction |
Models and Modeling |
Objects |
Classes and Instances |
Relationships to Describe Class Interactions |
Concluding Remarks |
4 Arrays and Strings |
An Array Application and Analysis of the Problem |
Arrays in Java |
Problem Solution |
Storage Structure, Assignment and Equality for Reference Types |
Strings |
StringBuffer Class |
Concluding Remarks |
New Java Constructs |
5 Array Algorithms and Their Analysis.Algorithm Analysis |
Searching |
Sorting |
Introduction to Object Comparison, Interfaces, and the Object Class |
Array Dictionaries |
Concluding Remarks |
New Java Constructs |
6 Abstract Data Types and Their Implementation.Introduction |
Data Types |
Specifying Abstract Data Types |
Specifying and Implementing ADTs in Java |
Assertion Checking and Exceptions |
Visibility of Classes and Class Members |
Introduction to Design by Contract |
Concluding Remarks |
New Java Constructs |
7 List Fundamentals.A Simple List Application |
List Abstract Data Type |
Implementations |
Examples of Linked Operations |
Ordered Simple List |
List Variations |
Concluding Remarks |
New Java Constructs |
8 Advanced List Concepts and the Uos Data Structure Library.List Tools |
Library of Dictionaries and List Data Structures |
Applications |
Polymorphism and Heterogeneous Lists |
Concluding Remarks |
New Java Constructs |
9 Stacks |
Introduction |
Stack ADT |
Implementations |
Applications |
Concluding Remarks |
10 Recursion.Recursive Definitions from Mathematics |
Recursive Methods |
Developing and Verifying Recursive Methods |
Timing Analysis for Simple Recursive Methods |
Recursive List Methods |
Concluding Remarks |
New Java Constructs |
11 Queues and Priority Queues.Queues |
Priority Queues |
Application: Discrete Simulation |
Concluding Remarks |
New Java Constructs |
12 Object-Oriented Development: An Example |
Introduction |
Object-Oriented Development Life Cycle |
Various Stakeholders in Software Development |
An Object-Oriented Development Approach |
A Simplified Banking Example |
Design Caveat |
Seamless Software Development |
Benefits of the Object Model |
Concluding Remarks |
New Java Constructs |
13 Trees.Introduction and Applications |
Binary Tree Abstract Data Type |
Binary Trees |
General Trees |
Applications |
Concluding Remarks |
14 Elementary Problem Modeling and System Design |
Introduction |
Modeling Static System Structure |
Modeling System Behavior |
Analysis and Architectural Design of a Student Registration System |
Concluding Remarks |
15 Principles of Software Design. |
Introduction |
Design By Contract |
Exception Handling |
Class Design |
Building Inheritance Taxonomies |
Coupling and Cohesion in Object-Oriented Software |
Using Patterns in Software Design |
Subsystem Design |
Detailed Design of a Student Registration System |
Concluding Remarks |
16 Software Testing.Fundamentals of Software Testing |
Human Testing |
Black Box Testing |
White Box (Program-Based) Testing |
Object-Oriented Testing |
Locating and Repairing Dynamic Faults |
Concluding Remarks |
17 Bags, Sets, and Dictionaries.Introduction |
Bit Vector Implementation |
Hash Tables |
Specialized Search Trees |
Better Priority Queues |
Concluding Remarks. |
18 Sorting.Introduction |
Review of Basic Sorts |
Recursive Merge Sort |
Quicksort |
Use of Recurrence Relations for Time Requirements |
Heap Sort |
Radix Sort |
Address Calculation Sort |
Concluding Remarks |
19 Graphs. |
Introduction and Examples of Graph Mo |