With an accessible writing style and manageable amount of content, Data Structures and Algorithms Using Java is the ideal text for your course. This outstanding text correlates to the recommended syllabus put forth by the Association of Computing Machinery standard curriculum guidelines. The author has produced a resource that is more readable and instructional than any other, without compromising the scope of the ACM CS103, Data Structures and Algorithms, course material. The text’s unique, student-friendly pedagogical approach and organizational structure will keep students engaged in the process of self-directed investigative discovery both inside and outside the classroom.
The pedagogical features of the text, based on the author’s 30 years of teaching experience, include succinct code examples, a unique common template used as the organizational basis of each chapter, the use of pseudocode to present the major algorithms developed in the text, nearly 300 carefully designed figures, and a concise review of Java.
Features & Benefits
Highly Readable and Engaging Text!
The text is extremely readable, engaging, and instructive without compromising the scope of the ACM CS 103 (formally CS2) course material. It keeps students engaged inside and outside the classroom in the process of self-directed investigative discovery.
Expanded coverage of hashing!
Devotes and entire chapter to data structures that use hashing algorithms, presenting them as a separate data structure category, hashing structures. Included within the text are unique treatments of the auxiliary algorithms and code necessary to implement hashed date structures such as prime number generators, efficient collision algorithms, and ASCII key preprocessing algorithms as well as implementations and performance analysis of an efficient hashed data structure.
A Unique Approach to Generics!
The generic features introduced to write generic methods and classes are introduced early in the text as part of the Java review. The use of these features is then illustrated by converting an array-based data structure to a fully generic data structure.
Methodized approach to recursion
The text presents a unique pedagogical approach to recursion that methodizes the formulation of recursive algorithms in order to teach students how to think recursively. Once comfortable with the methodology, the student is presented with examples that require the methodology be progressively modified in order to discover their recursive solution.
The pedagogical features of the text are significantly enhanced by animation courseware that can be run under any Java-enabled browser. The animations demonstrate the functionality of the algorithms associated with each data structure presented in the text by presenting the changes that take place in main memory as the algorithms execute.
This text covers the material of the Association of Computing Machinery standard curriculum courses CS103i and CS103o, Data Structures and Algorithms, as defined in the IEEE/ACM Computing Curricular 2001 Computer Science Final Report. It is intended for use within the departments of Computer Science, CIS, and Electrical Engineering.
Chapter 1 Overview and Java Review
Chapter 2 Array-Based Structures
Chapter 3 Restricted Structures
Chapter 4 Linked Lists and Iterators
Chapter 5 Hashed Data Structures
Chapter 6 Recursion
Chapter 7 Trees
Chapter 8 Sorting
Chapter 9 Graphs
William McAllister-St. Joseph's College
William McAllister has been a full-time faculty member at St. Joseph's College, NY, for the past 13 years and an adjunct professor at Suffolk County Community College for the past 30 years. He has taught a variety of computer science courses including data structures. For the past eight years, he has served as the Associate Chairperson of the Mathematics and Computer Science Department at St. Joseph's College, and is currently the co-principal investigator on a $500,000 grant from the National Science Foundation aimed at improving the number of skilled computer professionals in the national workforce. Prior to joining St. Joseph's he worked in industry for 27 years, initially as an engineer and then as a computer scientist. His areas of expertise are algorithm development, pedagogy, and curriculum development. He is very active in student programming competitions both on the collegiate and high school levels, and founded and annually conducts an ACM-sanctioned Long Island Regional High School Programming Competition, coaches the St. Joseph's intercollegiate programming team, and conducted the 2007 CCSC Eastern Regional programming competition.