The concept of a Gr?bner basis of an ideal was introduced by Bruno Buchberger in 1965 in his Ph.D. thesis under supervision of Wolfgang Gr?bner [4]. Buchberger defined a specialized basis of an ideal in a polynomial ring with the coefficients in a field with the property that any element in the underlying ring has a canonical form (unique normal form) with respect to the ideal (with respect to a given monomial ordering), along with the canonical form for the elements in the ideal being 0; furthermore, two elements in the ring modulo a given ideal have the same canonical form. For polynomial ideals over a field, Buchberger not only showed that every polynomial ideal has a Gr?bner basis but also gave an algorithm for computing a Gr?bner basis from any basis of a given ideal w.r.t a given monomial ordering. It took some years before the concept became popular among mathematicians and computer scientists. By now, numerous interesting applications of the concept have been found and many computational problems can be solved by computing Gr?bner bases of polynomial ideals. Most commercially available computer algebra systems provide implementations of Gr?bner basis algorithms. There are highly specialized fast stand-alone software systems available for computing Gr?bner basis as well. Kandri-Rody and Kapur [5,6] generalized Buchberger’s algorithm by defining a rewriting relation induced by a polynomial on a polynomial ring using a division algorithm over a Euclidean domain. They defined a well-founded order on polynomials using the well-founded order on the elements of a Euclidean domain induced by the division algorithm. Using these ideas, they developed a Gr?bner basis algorithm to work on polynomial ideals over Euclidean domains. Subsequently, Kapur and Narendran [8] as well as Pan [11] proposed algorithms to compute a Gr?bner basis of an ideal in a polynomial ring over principal ideal domain (PID). Unlike Buchberger’s algorithm as well as Kandri-Rody–Kapur’s algorithm which computes canonical forms for elements in the quotient ring defined on a polynomial ring by an ideal, Kapur and Narendran’s as well as Pan’s algorithms do not have this property. Instead, every polynomial in a given polynomial ideal reduces to 0 using a Gr?bner basis of the polynomial ideal; however, different elements in the polynomial ring which are equivalent modulo the polynomial ideal could have different normal forms. Kapur and Madlener [7] attempted to develop an algorithm to compute a Gr?bner basis of polynomial ideals over a ring with zero divisors. This idea was subsequently used by Madlener and Reinert [9] in their generalization of Gr?bner bases for polynomial ideals over monoid rings; they called it the saturation of a given polynomial in this thesis, we consider the algorithm proposed by kapur and Cai and we present this algorithm after stating the backgrounds. we shall note that all the algorithms in this thesis have been implemented in Maple and their codes are availables at the end of this thesis