This work on module theory aims to derive the structure theory of modules over Euclidean domains. This theory is applied to obtain the structure of abelian groups & the rational canonical & Jordan normal forms of matrices. A knowledge of linear algebra & ring theory is needed.