Alexander Shen
Algorithms and Programming is primarily intended for a first year undergraduate course in programming. It is structured in a problem-solution format that requires the student to think through the programming process, thus developing an understanding of the underlying theory. Although the author assumes some moderate familiarity with programming constructs, the book is easily readable by a student taking a basic introductory course in computer science. In addition, the more advanced chapters make the book useful for a course at the graduate level in the analysis of algorithms and/or compiler construction. Each chapter is more or less independent, containing classical and well-known problems supplemented by clear and in-depth explanations. While program examples are written in Pascal, any other procedural language (e.g., Modula, Oberon, C) may be used instead. Problems at all different levels progress in difficulty. Some problems are somewhat loosely connected to one another, and others are devoted to one specific algorithm (e.g., section on LR-parsing). The material covered includes such topics as combinatorics, sorting, searching, queues, grammar and parsing, selected well-known algorithms, and much more. Students and teachers will find this both an excellent text for learning programming and a source of problems for a variety of courses.
Algorithms and Programming: Problems and Solutions