Abstract Algebra: Theory and Applications is an open-source textbook written by Tom Judson that is designed to teach the principles and theory of abstract algebra to college juniors and seniors in a rigorous manner. Its strengths include a wide range of exercises, both computational and theoretical, plus many nontrivial applications.
This text is intended for a one- or two-semester undergraduate course in abstract algebra and covers the traditional theoretical aspects of groups, rings, and fields. Many applications are included, including coding theory and cryptography. The nature of the exercises ranges over several categories; computational, conceptual, and theoretical problems are included.