An introductory graduate-level text emphasizing algorithms and applications. This second edition includes over 200 new exercises and examples.This introductory book emphasizes algorithms and applications, and is accessible to a broad audience. The author alternates between theory and applications in order to illustrate the mathematics. This second edition includes many new exercises and worked examples, and has been reorganized to improve presentation and clarity of exposition.This introductory book emphasizes algorithms and applications, and is accessible to a broad audience. The author alternates between theory and applications in order to illustrate the mathematics. This second edition includes many new exercises and worked examples, and has been reorganized to improve presentation and clarity of exposition.This introductory book emphasizes algorithms and applications, such as cryptography and error correcting codes, and is accessible to a broad audience. The presentation alternates between theory and applications in order to motivate and illustrate the mathematics. The mathematical coverage includes the basics of number theory, abstract algebra and discrete probability theory. This edition now includes over 150 new exercises, ranging from the routine to the challenging, that flesh out the material presented in the body of the text, and which further develop the theory and present new applications. The material has also been reorganized to improve clarity of exposition and presentation. Ideal as a textbook for introductory courses in number theory and algebra, especially those geared towards computer science students.Preface; Preliminaries; 1. Basic properties of the integers; 2. Congruences; 3. Computing with large integers; 4. Euclid's algorithm; 5. The distribution of primes; 6. Abelian groups; 7. Rings; 8. Finite and discrete probability distributions; 9. Probabilistic algorithms; 10. Probabilistic primality testing; 11. Finding generators and discrete logarilC1