typical computer science textbooks are full of theorymathematical formulasand abstruse examples of computer code this bookon the other handconcentrates on simple explanations of techniques that can be applied to real-world problems we avoid complex proofs and heavy math there are lots of figures to augment the text many books on data structures and algorithms include considerable material on sofware engineering software engineering is body of study concerned with designing and implementing large and complex software projects howeverit' our belief that data structures and algorithms are complicated enough without involving this additional disciplineso we have deliberately de-emphasized software engineering in this book (we'll discuss the relationship of data structures and algorithms to software engineering in ,overview "of course we do use an object-oriented approachand we discuss various aspects of object-oriented design as we go alongincluding mini-tutorial on oop in our primary emphasishoweveris on the data structures and algorithms themselves workshop applets the cd-rom that accompanies this book includes demonstration programsin the form of java appletsthat cover the topics we discuss these appletswhich we call workshop appletswill run on many computer systemsappletviewersand web browsers (see the readme file on the cd-rom for more details on compatibility the workshop applets create graphic images that show you in "slow motionhow an algorithm works for examplein one workshop appleteach time you push buttona bar chart shows you one step in the process of sorting the bars into ascending order the values of variables used in the sorting algorithm are also shownso you can see exactly how the computer code works when executing the algorithm text displayed in the picture explains what' happening another applet models binary tree arrows move up and down the treeso you can follow the steps involved in inserting or deleting node from the tree there are more than workshop applets--at least one for every major topic in the book these workshop applets make it far more obvious what data structure really looks likeor what an algorithm is supposed to dothan text description ever could of coursewe provide text description as well the combination of workshop appletsclear textand illustrations should make things easy these workshop applets are standalone graphics-based programs you can use them as learning tool that augments the material in the book (note that they're not the same as the example code found in the text of the bookwhich we'll discuss next java example code the java language is easier to understand (and writethan languages such as and +the biggest reason for this is that java doesn' use pointers although it surprises some peoplepointers aren' necessary for the creation of complex data structures and algorithms in facteliminating pointers makes such code not only easier to write and to understandbut more secure and less prone to errors as well java is modern object-oriented languagewhich means we can use an object-oriented approach for the programming examples this is importantbecause object-oriented programming (oopoffers compelling advantages over the old-fashioned procedural -