Finding members of a ring From Coding Theory: A first Course, by Ling and Xing
In example 3.2.8, it gives
$\mathbb Z_{2}[x]/(1+x^2)=\{0,1,x,1+x\}$, and $\mathbb Z_{2}[x]/(1+x+x^2)=\{0,1,x,1+x\}$
How did they find the elements of the set?  How would the method be extended beyond $\mathbb Z_{2}$?  The field $\mathbb Z_{2}$ seems to be making things appear simpler than they really are.  Based on this, I am supposed to find the set for $\mathbb Z_{16}[x]/(1+x+x^4)$, but I don't see how.
 A: These are residue classes in the ring of polynomials. So
$$f(x) \equiv g(x)$$ in $Z_k[x]/(m(x))$
if and only if their remainders upon division by $m(x)$ are the same.
Clearly then the equivalence classes of these polynomials can be represented by the polynomials in $Z_k[x]$ of degree up to $\deg(m(x))-1.$
A: Hint: Use the Division Algorithm. By definition, the elements of $\mathbb F_2[x] / (x^2 + 1)$ are the possible remainders $r(x)$ when $x^2 + 1$ is divided by another polynomial in $\mathbb F_2[x].$ What can those be?
Generally, if $R$ is a finite ring with $n$ elements and $f(x)$ is a monic polynomial with coefficients in $R,$ then the quotient ring $R[x] / (f(x))$ is finite. (Remember that the elements of $R[x] / (f(x))$ are the possible remainders when the Division Algorithm is run with $f(x).$ Each remainder is a polynomial of degree less than $f(x),$ and there are only finitely many choices for each coefficient.) Consequently, it is just a matter of writing down all of the possible remainders. For the field $R = \mathbb F_2,$ this is simple because there are only two choices for each coefficient. How many choices are there in $\mathbb Z / 16 \mathbb Z?$ What is the maximum degree of a polynomial in $(\mathbb Z / 16 \mathbb Z)[x] / (x^4 + x + 1)?$
