Algebraic number theory involves using techniques from (mostly commutative) algebra and finite group theory to gain a deeper understanding of the arithmetic of number fields and related objects (e.g., functions fields, elliptic curves, etc.). The main objects that we study in this book are number fields, rings of integers of number fields, unit groups, ideal class groups, norms, traces, discriminants, prime ideals, Hilbert and other class fields and associated reciprocity laws, zeta and -functions, and algorithms for computing each of the above.