We prove constructively that every finitely generated polynomial ideal has a Gröbner basis provided that the ring of coefficients is Noetherian in the sense of Richman and Seidenberg. That is, we give a constructive termination proof for a variant of the otherwise well-known algorithm to compute the Gröbner basis. In combination with a purely order-theoretic result we have proved in a separate paper, this yields a unified constructive proof of the Hilbert basis theorem for all Noether classes: if a ring belongs to a Noether class, then so does the polynomial ring. Our proof can be seen as a constructive rereading of one of the classical proofs, in the spirit of the partial realisation of Hilbert's programme in algebra put forward by Coquand and Lombardi. The rings under consideration need not be commutative, but are understood to be coherent, and strongly discrete: that is, they admit a membership test for every finitely generated ideal. As a complement we provide a prime decomposition for commutative rings possessing the finite-depth property.