Invariant theory is a subject with a long tradition and an astounding
abil- ity to rejuvenate itself whenever it reappears on the mathematical
stage. Throughout the history of invariant theory, two features of it
have always been at the center of attention: computation and
applications. This book is about the computational aspects of invariant
theory. We present algorithms for calculating the invariant ring of a
group that is linearly reductive or fi- nite, including the modular
case. These algorithms form the central pillars around which the book is
built. To prepare the ground for the algorithms, we present Grabner
basis methods and some general theory of invariants. Moreover, the
algorithms and their behavior depend heavily on structural properties of
the invariant ring to be computed. Large parts of the book are devoted
to studying such properties. Finally, most of the applications of in-
variant theory depend on the ability to calculate invariant rings. The
last chapter of this book provides a sample of applications inside and
outside of mathematics.