One of the fundamental properties of quantum groups is that they are modelled by associative coordinate rings possessing a canonical basis, which allows for the use of algorithmic structures based on Groebner bases to study them. This book develops these methods, concentrating on a study of the notion of a vast class of non-commutative rings.