This book introduces some key problems in bioinformatics, discusses the models used to formally describe these problems, and analyzes the algorithmic approaches used to solve them. After introducing the basics of molecular biology and algorithmics, Part I explains string algorithms and alignments; Part II details the field of physical mapping and DNA sequencing; and Part III examines the application of algorithmics to the analysis of biological data. Exciting application examples include predicting the spatial structure of proteins, and computing haplotypes from genotype data. Figures, chapter summaries, detailed derivations, and examples, are provided.