This book advocates the study of algorithm design techniques by presenting most of the useful algorithm design techniques and illustrating them through numerous examples. The book gives instructors the flexibility to emphasize different aspectsdesign, analysis, or computer implementationof numerical algorithms, depending on the background and interests of students. Designed for upper-division undergraduates in mathematics or computer science classes, the textbook assumes that students have prior knowledge of linear algebra and calculus, although these topics are reviewed in the text.