xix virginia tech helped make this whole thing possible through sabbatical research leave during fall enabling me to get the project off the ground my department heads during the time have written the various editions of this bookdennis kafura and jack carrollprovided unwavering moral support for this project mike keenanlenny heathand jeff shaffer provided valuable input on early versions of the also wish to thank lenny heath for many years of stimulating discussions about algorithms and analysis (and how to teach both to studentssteve edwards deserves special thanks for spending so much time helping me on various redesigns of the +and java code versions for the second and third editionsand many hours of discussion on the principles of program design thanks to layne watson for his help with mathematicaand to bo begolephilip isenhourjeff nielsenand craig struble for much technical assistance thanks to bill mcquainmark abrams and dennis kafura for answering lots of silly questions about +and java am truly indebted to the many reviewers of the various editions of this manuscript for the first edition these reviewers included david bezek (university of evansville)douglas campbell (brigham young university)karen davis (university of cincinnati)vijay kumar garg (university of texas austin)jim miller (university of kansas)bruce maxim (university of michigan dearborn)jeff parker (agile networks/harvard)dana richards (george mason university)jack tan (university of houston)and lixin tao (concordia universitywithout their helpthis book would contain many more technical errors and many fewer insights for the second editioni wish to thank these reviewersgurdip singh (kansas state university)peter allen (columbia university)robin hill (university of wyoming)norman jacobson (university of california irvine)ben keller (eastern michigan university)and ken bosworth (idaho state universityin additioni wish to thank neil stewart and frank thesen for their comments and ideas for improvement third edition reviewers included randall lechlitner (university of houstinclear lakeand brian hipp (york technical collegei thank them for their comments without the hard work of many people at prentice hallnone of this would be possible authors simply do not create printer-ready books on their own foremost thanks go to kate hargettpetra rectorlaura steeleand alan aptmy editors over the years my production editorsirwin zucker for the second editionkathleen caren for the original +versionand ed defelippis for the java versionkept everything moving smoothly during that horrible rush at the end thanks to bill zobrist and bruce gregory ( thinkfor getting me into this in the first place