Author(s): Michael J. Dinneen, Georgy Gimel'farb and Mark C. Wilson
Editions: 1st (2004), 2nd (2009), 3rd (2013), 4th (2016)
Binding Type: paperback (1st & 2nd) and electronic (3rd & 4th)
Publisher: 1st & 2nd: Pearson Education (out of print), ISBN: 9781442512061
Publisher: 3rd & 4th: Creative Commons License.
Introduction to Algorithms, Data Structures and Formal Languages provides a concise, straightforward, yet rigorous introduction to the key ideas, techniques, and results in three areas essential to the education of every computer scientist.
The textbook is closely based on the syllabus of the course COMPSCI220, which the authors and their colleagues have taught at the University of Auckland for several years (to closely match the current COMPSCI 220 syllabus, the 3rd and 4th editions were shortened and named Introduction to Algorithms and Data Structures).. The book could also be used for self-study. Many exercises are provided, a substantial proportion of them with detailed solutions. Numerous figures aid understanding.
To benefit from the book, the reader should have had prior exposure to programming in a structured language such as Python, Java or C++, at a level similar to a typical two semester first-year university computer science sequence. However, no knowledge of any particular such language is necessary. Mathematical prerequisites are modest. Several appendices can be used to fill minor gaps in background knowledge.
After finishing this book, students should be well prepared for more advanced study of the three topics, either for their own sake or as they arise in a multitude of application areas.