This volume provides a comprehensive introduction to module theory and the related part of ring theory, including original results as well as the most recent work. It is a useful and stimulating study for those new to the subject as well as for researchers and serves as a reference volume. Starting form a basic understanding of linear algebra, the theory is presented and accompanied by complete proofs. For a module M, the smallest Grothendieck category containing it is denoted by o[M] and module theory is developed in this category. Developing the techniques in o[M] is no more complicated than in full module categories and the higher generality yields significant advantages: for example, module theory may be developed for rings without units and also for non-associative rings. Numerous exercises are included in this volume to give further insight into the topics covered and to draw attention to related results in the literature.