Having trouble determining the quotient group in an algebraic topology course I am working on an algebraic topology course (hatcher's book) and it has been quite a time since I took akgebra. I have my exams soon and I want a suggestion for a chapter or a resource online that helps me understand this:
For example, if we take the following answer, I understand everything related to the geometry and topology of the answer but when it comes to the last step, I am struggling with algebra:
https://math.stackexchange.com/a/58844/752801
How can i see that
$$\mathbb{Z} \oplus \mathbb{Z} / \langle 2\mathbb{Z}(1,1)\rangle= \mathbb{Z} \oplus\mathbb{Z_2}?$$
I would be grateful if someone can explain this answer but also if someone can give me a resource that helps me understand this type of quotient group specifically for this course.
 A: Maybe the clearest way to see that $(\mathbb Z \oplus \mathbb Z) / \langle (2, 2) \rangle = \mathbb Z \oplus \mathbb 2 \mathbb Z$ is to perform a change of basis on $\mathbb Z \oplus \mathbb Z$.
Usually when we think of $\mathbb Z \oplus \mathbb Z$, we think in terms of the standard basis, $\{(1, 0), (0, 1)\}$. But there are other bases for $\mathbb Z \oplus \mathbb Z$!
One such alternative basis is $\mathcal B = \{(1, 1), (0, 1) \}$. Now $(2, 2)$ can be expanded in terms of this alternative basis as $(2, 2) = 2(1,1) + 0(0, 1)$. In other words $(2,2) = (2, 0)_{\mathcal B}$ (if that notation makes sense).
Thus $(\mathbb Z \oplus \mathbb Z) / \langle (2, 2) \rangle$ is isomorphic to $(\mathbb Z \oplus \mathbb Z) / \langle (2, 0) \rangle$ (via the above change of basis), and obviously  $(\mathbb Z \oplus \mathbb Z) / \langle ( 2, 0) \rangle$ is isomorphic to $\mathbb Z_2 \oplus \mathbb Z$.
(By the way, there is a typo in your post - it's not isomorphic to $\mathbb Z \oplus 2 \mathbb Z$!)

This begs the question:

Given a subgroup $G$ of $\mathbb Z^{\oplus n}$ (defined by a set of generators), is there a systematic algorithm that will find an alternative basis $\mathcal B = \{ \mathbf v_1, \dots, \mathbf v_n \}$ for $\mathbb Z^{\oplus n}$, a $k \in \{0, \dots, n\}$ and integers $c_1, \dots, c_k$ such that $\{ c_1 \mathbf v_1, \dots, c_k \mathbf v_k \}$ is a basis for $G$? Because if so, then $\mathbb Z^{\oplus n} / G \cong \mathbb Z_{c_1} \oplus \dots \oplus \mathbb Z_{c_k} \oplus \mathbb Z^{n - k}$.

[In the above example, $n = 2$, $G = \langle (2, 2) \rangle$, $\mathcal B = \{ (1, 1), (1,0) \}$, $k = 1$ and $c_1 = 2$.]
Yes, such an algorithm exists, and it's called the Smith normal form algorithm. Take a look at the final few pages of these notes for an explanation.
