There are fundamental principles for problem analysis and algorithm design that are continuously used in bioinformatics. This book concentrates on a clear presentation of these principles, presenting them in a self-contained, mathematically clear and precise manner, and illustrating them with lots of case studies from main fields of bioinformatics (e.g. sequencing and mapping, string storage and manipulation, pattern matching, alignment, gene identification, genome rearrangement, structure prediction, regulatory networks, pseudoknot detection). Emphasis is laid on algorithmic "pearls" of bioinformatics, showing that things may get rather simple when taking a proper view into them. The book closes with a thorough bibliography, ranging from classic research results to very recent findings, providing many pointers for future research. Overall, this volume is ideally suited for a senior undergraduate or graduate course on bioinformatics, with a strong focus on its mathematical and computer science background.