Through the pioneering work of Shannon, Hamming, and others, the theory of Error Correcting Codes arose out of the need for more reliable communication and computer data storage. It has rapidly evolved into a sophisticated mathematical theory with strong links to algebra, combinatorics, number theory, and geometry. Algebraic coding theory over rings emerged at the end of the 1980s, when it was discovered that certain very good codes that were nonlinear in the traditional binary sense were actually linear when considered as codes over Z4. This paper is devoted to giving an introduction to this chapter of applied algebra. It is not our intention to be encyclopedic; such a goal would be beyond the scope of this work. Clearly,

the inclusion of topics is bound to reflect our own research interests. Considering that the likely readership of this volume will be of group, ring, and group-ring theorists, we will focus particularly on several foundational and theoretical aspects of this discipline that are likely to be appealing to such an audience. Our intent is to provide algebraists with a snapshot of a corner of coding theory that may be attractive to them as we give insight into the current state of the art.