The past few years have witnessed significant developments in algebraic coding theory. This book provides an advanced treatment of the subject from an engineering perspective, covering the basic principles and their application in communications and signal processing. Emphasis is on codes defined on the line, on the plane, and on curves, with the core ideas presented using commutative algebra and computational algebraic geometry made accessible using the Fourier transform. Starting with codes defined on a line, a background framework is established upon which the later chapters concerning codes on planes, and on curves, are developed. The decoding algorithms are developed using the standard engineering approach applied to those of Reed-Solomon codes, enabling them to be evaluated against practical applications. Integrating recent developments in the field into the classical treatment of algebraic coding, this is an invaluable resource for graduate students and researchers in telecommunications and applied mathematics.