[proofplan]
For the first assertion, choose finite generating sets for $A$ and $C$, then lift the generators of $C$ to elements of $B$ using the surjectivity of $g$. We prove that the images of the generators of $A$ under $f$, together with these chosen lifts, generate all of $B$. The key exactness step is that after subtracting the lifted part from an arbitrary element of $B$, the remainder lies in $\ker g = \operatorname{im} f$. For the second assertion, apply $g$ to a finite generating set of $B$ and use surjectivity to show that the resulting finite set generates $C$.
[/proofplan]
[step:Lift generators of $C$ and combine them with images of generators of $A$]
Assume that $A$ and $C$ are finitely generated as left $R$-modules. Choose elements $a_1, \ldots, a_m \in A$ which generate $A$ as a left $R$-module, where $m \ge 0$. Choose elements $c_1, \ldots, c_n \in C$ which generate $C$ as a left $R$-module, where $n \ge 0$.
Because the sequence is exact at $C$, the homomorphism $g: B \to C$ is surjective. Therefore, for each index $j \in \{1, \ldots, n\}$, choose an element $b_j \in B$ such that $g(b_j) = c_j$.
Define the finite subset $S \subset B$ by
\begin{align*}
S := \{f(a_i) : 1 \le i \le m\} \cup \{b_j : 1 \le j \le n\}.
\end{align*}
We will prove that $S$ generates $B$ as a left $R$-module.
[guided]
We begin by recording exactly what data finite generation gives. Since $A$ is finitely generated, there are elements $a_1, \ldots, a_m \in A$ such that every element of $A$ is an $R$-linear combination of these elements. Since $C$ is finitely generated, there are elements $c_1, \ldots, c_n \in C$ such that every element of $C$ is an $R$-linear combination of these elements.
The short exact sequence gives two crucial facts. First, exactness at $C$ says that $g: B \to C$ is surjective. Hence each generator $c_j$ of $C$ has at least one lift $b_j \in B$ with $g(b_j) = c_j$. Second, exactness at $B$ will later identify the elements killed by $g$ with the image of $f$.
We now form the candidate finite generating set for $B$:
\begin{align*}
S := \{f(a_i) : 1 \le i \le m\} \cup \{b_j : 1 \le j \le n\}.
\end{align*}
This set contains two kinds of elements: the elements $f(a_i)$ account for the part of $B$ lying in $\operatorname{im} f = \ker g$, and the chosen lifts $b_j$ account for the quotient part measured by $C$. The rest of the proof is the verification that these two pieces really generate every element of $B$.
[/guided]
[/step]
[step:Show the chosen finite set generates $B$]
Let $b \in B$. Since $c_1, \ldots, c_n$ generate $C$, there exist elements $r_1, \ldots, r_n \in R$ such that
\begin{align*}
g(b) = r_1 c_1 + \cdots + r_n c_n.
\end{align*}
Using $g(b_j) = c_j$ and the $R$-linearity of $g$, define
\begin{align*}
b' := b - r_1 b_1 - \cdots - r_n b_n \in B.
\end{align*}
Then
\begin{align*}
g(b') = g(b) - r_1 g(b_1) - \cdots - r_n g(b_n).
\end{align*}
Substituting $g(b_j) = c_j$ gives
\begin{align*}
g(b') = g(b) - r_1 c_1 - \cdots - r_n c_n = 0.
\end{align*}
Thus $b' \in \ker g$. Exactness at $B$ gives $\ker g = \operatorname{im} f$, so there exists $a \in A$ such that $f(a) = b'$.
Since $a_1, \ldots, a_m$ generate $A$, there exist elements $s_1, \ldots, s_m \in R$ such that
\begin{align*}
a = s_1 a_1 + \cdots + s_m a_m.
\end{align*}
Applying the $R$-linearity of $f$, we obtain
\begin{align*}
b' = f(a) = s_1 f(a_1) + \cdots + s_m f(a_m).
\end{align*}
Therefore
\begin{align*}
b = s_1 f(a_1) + \cdots + s_m f(a_m) + r_1 b_1 + \cdots + r_n b_n.
\end{align*}
This expresses the arbitrary element $b \in B$ as an $R$-linear combination of elements of $S$. Hence $S$ generates $B$, and $B$ is finitely generated.
[guided]
Let $b \in B$ be arbitrary. To prove that $S$ generates $B$, we must express this particular element $b$ as an $R$-linear combination of the elements
\begin{align*}
f(a_1), \ldots, f(a_m), b_1, \ldots, b_n.
\end{align*}
The image $g(b) \in C$ can be expanded in the chosen generators of $C$. Thus there exist elements $r_1, \ldots, r_n \in R$ such that
\begin{align*}
g(b) = r_1 c_1 + \cdots + r_n c_n.
\end{align*}
Since each $b_j$ was chosen to satisfy $g(b_j) = c_j$, the element $r_1 b_1 + \cdots + r_n b_n$ is a lift of the displayed expression for $g(b)$. We subtract that lift from $b$ and define
\begin{align*}
b' := b - r_1 b_1 - \cdots - r_n b_n \in B.
\end{align*}
Now compute its image under $g$. Because $g$ is an $R$-[module homomorphism](/page/Module%20Homomorphism), it preserves addition and scalar multiplication, so
\begin{align*}
g(b') = g(b) - r_1 g(b_1) - \cdots - r_n g(b_n).
\end{align*}
Using $g(b_j) = c_j$ for every $j$, this becomes
\begin{align*}
g(b') = g(b) - r_1 c_1 - \cdots - r_n c_n.
\end{align*}
By the choice of $r_1, \ldots, r_n$, the right-hand side is $0$, so $g(b') = 0$. Hence $b' \in \ker g$.
This is the point where exactness at $B$ is used. Exactness gives
\begin{align*}
\ker g = \operatorname{im} f.
\end{align*}
Therefore there exists an element $a \in A$ such that $f(a) = b'$.
Since $a_1, \ldots, a_m$ generate $A$, we may write
\begin{align*}
a = s_1 a_1 + \cdots + s_m a_m
\end{align*}
for some elements $s_1, \ldots, s_m \in R$. Applying the $R$-linearity of $f$ gives
\begin{align*}
b' = f(a) = s_1 f(a_1) + \cdots + s_m f(a_m).
\end{align*}
Substituting the definition of $b'$ and solving for $b$, we get
\begin{align*}
b = s_1 f(a_1) + \cdots + s_m f(a_m) + r_1 b_1 + \cdots + r_n b_n.
\end{align*}
Thus the arbitrary element $b$ lies in the submodule generated by $S$. Since $b \in B$ was arbitrary, $S$ generates $B$. The set $S$ is finite, so $B$ is finitely generated as a left $R$-module.
[/guided]
[/step]
[step:Apply the quotient map to generators of $B$ to generate $C$]
Assume now that $B$ is finitely generated as a left $R$-module. Choose elements $b_1, \ldots, b_m \in B$ which generate $B$ as a left $R$-module. We prove that $g(b_1), \ldots, g(b_m)$ generate $C$.
Let $c \in C$. Since $g: B \to C$ is surjective by exactness at $C$, there exists $b \in B$ such that $g(b) = c$. Since $b_1, \ldots, b_m$ generate $B$, there exist elements $r_1, \ldots, r_m \in R$ such that
\begin{align*}
b = r_1 b_1 + \cdots + r_m b_m.
\end{align*}
Applying the $R$-linearity of $g$, we obtain
\begin{align*}
c = g(b) = r_1 g(b_1) + \cdots + r_m g(b_m).
\end{align*}
Thus every element $c \in C$ is an $R$-linear combination of $g(b_1), \ldots, g(b_m)$. Hence $C$ is finitely generated as a left $R$-module. This proves both assertions.
[/step]