# Teaching an abstract algebra class involving modules, best way to introduce operations on modules?

At the behest of a comment on Mathoverflow, I am posting this here.

I am about to teach a few classes on modules and their operations, namely the following: direct product, direct sum, and finitely generated modules. The following is the "skeleton" version of how I plan to talk about them.

1. The direct sum of modules $M_1, M_2$ is defined to be$$M_1 \oplus M_2 = \{(m_1, m_2) : m_1 \in M_1, m_2 \in M_2\}.$$The action of $A$ is given by $a(m_1, M_2) : = (am_1, am_2)$. More generally, for any set $I$ and any collection of $A$-modules $\{M_i\}_{i \in I}$, one has a direct product $A$-module$$\prod_{i \in I} M_i = \{(m_i \in M_i)_{i \in I}\}.$$We will often write an element of $\prod_{i \in I} M_i$ in the form $\sum_{i \in I} m_i$ instead of $(m_i \in M_i)_{i \in I}$.
2. The $A$-module $\prod_{i \in I} M_i$ contains a submodule$$\bigoplus_{i \in I} M_i = \{(m_i \in M_i)_{i \in I} : m_i = 0 \text{ for all but finitely many }i\},$$called direct sum. In particular, for any $n \ge 1$, we write$$M^n := \underbrace{M \oplus \dots \oplus M}_{n \text{ times}}.$$
3. The sum of a collection of submodules $M_i \subseteq M$, $i \in I$, is defined to be$$\sum_{i \in I} M_i = \{m_{i_1} + \dots + m_{i_j} : m_{i_j} \in M_{i_j}\}.$$
4. The submodule generated by a fixed element $m \in M$ is defined to be$$Am = \{am : a \in A\}.$$More generally, for any collection $\{m_i\}_{i \in I} \subset M$, of elements of $M$, one has$$\sum_{i \in I} Am_i \subset M,$$the submodule generated by the $m_i$. We say that $M$ is finitely generated if there exist $m_1, \dots, m_k \in M$ such that $M = Am_1 + \dots + Am_k$.