This book 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. Each chapter is more or less independent. 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. Students and teachers will find this both an excellent text for learning programming and a source of problems for a variety of courses.
Preface.- Variables, expressions, assignments.- Generation of combinatorial objects.- Tree traversal (backtracking).- Sorting.- Finite-state algorithms in text processing.- Data types.- Recursion.- Recursive and nonrecursive programs.- Graph algorithms.- Pattern matching.- Set representation. Hashing.- Sets, trees, and balanced trees.-Context-free grammars.- Left-to-right parsing (LR).- Further reading.- Index