At first sight, finitely generated abelian groups and canonical forms of matrices appear to have little in common. However, reduction to Smith normal form, named after its originator H.J.S.Smith in 1861, is a matrix version of the Euclidean algorithm and is exactly what the theory requires in both cases. Starting with matrices over the integers, Part 1 of this book provides a measured introduction to such groups: two finitely generated abelian groups are isomorphic if and only if their invariant factor sequences are identical. The analogous theory of matrix similarity over a field is then developed in Part 2 starting with matrices having polynomial entries: two matrices over a field are similar if and only if their rational canonical forms are equal. Under certain conditions each matrix is similar to a diagonal or nearly diagonal matrix, namely its Jordan form. The reader is assumed to be familiar with the elementary properties of rings and fields. Also a knowledge of abstract linear algebra including vector spaces, linear mappings, matrices, bases and dimension is essential, although much of the theory is covered in the text but from a more general standpoint: the role of vector spaces is widened to modules over commutative rings. Based on a lecture course taught by the author for nearly thirty years, the book emphasises algorithmic techniques and features numerous worked examples and exercises with solutions. The early chapters form an ideal second course in algebra for second and third year undergraduates. The later chapters, which cover closely related topics, e.g. field extensions, endomorphism rings, automorphism groups, and variants of the canonical forms, will appeal to more advanced students. The book is a bridge between linear and abstract algebra.