[proofplan]
Recall that $\alpha \in \mathbb{C}$ is an algebraic integer iff it is a root of a monic polynomial with integer coefficients. We show $\chi(g)$ is an algebraic integer in three steps. First, since $g$ has finite order $n$, the representing matrix $\rho(g)$ satisfies $\rho(g)^n = I$, so its eigenvalues are $n$th roots of unity. Second, $\chi(g)$ is the trace of $\rho(g)$, hence the sum of these eigenvalues. Third, each $n$th root of unity is a root of the monic integer polynomial $X^n - 1$, hence an algebraic integer; and the algebraic integers form a ring (closed under addition), so their sum $\chi(g)$ is an algebraic integer.
[/proofplan]
[step:Reduce $\chi(g)$ to a sum of eigenvalues of $\rho(g)$]
Let $\rho: G \to \operatorname{GL}(V)$ be a representation affording $\chi$, with $\dim V = d = \chi(1)$. By definition, $\chi(g) = \operatorname{tr}(\rho(g))$.
Pick a basis of $V$ realising $\rho(g)$ in upper triangular form (such a basis exists by Schur's triangularisation: every operator on a finite-dimensional complex vector space can be put in upper triangular form because $\mathbb{C}$ is algebraically closed). Let $\lambda_1, \ldots, \lambda_d \in \mathbb{C}$ be the diagonal entries — these are the eigenvalues of $\rho(g)$ counted with multiplicity. Then
\begin{align*}
\chi(g) = \operatorname{tr}(\rho(g)) = \sum_{j=1}^d \lambda_j.
\end{align*}
[guided]
We could also prove diagonalisability (and hence the trace-equals-sum-of-eigenvalues fact) more directly: since $g$ has finite order $n$, the matrix $\rho(g)$ satisfies $\rho(g)^n = I$, so its minimal polynomial divides $X^n - 1$, which has distinct roots in $\mathbb{C}$ (the $n$th roots of unity). Hence $\rho(g)$ is diagonalisable. Either way, the eigenvalues sum to the trace.
[/guided]
[/step]
[step:Show each eigenvalue $\lambda_j$ is an $n$th root of unity, hence an algebraic integer]
Let $n = |g|$ be the order of $g$ in $G$. Then $g^n = 1_G$ in $G$, so
\begin{align*}
\rho(g)^n = \rho(g^n) = \rho(1_G) = I_V,
\end{align*}
the identity operator on $V$. Hence each eigenvalue $\lambda_j$ of $\rho(g)$ satisfies $\lambda_j^n = 1$.
That is, every $\lambda_j$ is a root of the polynomial
\begin{align*}
p(X) := X^n - 1 \in \mathbb{Z}[X],
\end{align*}
which is monic with integer coefficients. By the definition of algebraic integers, each $\lambda_j$ is an algebraic integer.
[/step]
[step:Conclude using closure of algebraic integers under addition]
The set $\overline{\mathbb{Z}}$ of algebraic integers in $\mathbb{C}$ is a subring of $\mathbb{C}$ (a standard fact: if $\alpha$ and $\beta$ are algebraic integers, then $\mathbb{Z}[\alpha, \beta]$ is a finitely generated $\mathbb{Z}$-module, and any element of a finitely generated $\mathbb{Z}$-submodule of $\mathbb{C}$ that is itself a ring is an algebraic integer — this is the third equivalent characterisation of algebraic integers used throughout the course). In particular, $\overline{\mathbb{Z}}$ is closed under addition.
From Step 1, $\chi(g) = \sum_{j=1}^d \lambda_j$. From Step 2, each $\lambda_j \in \overline{\mathbb{Z}}$. Therefore
\begin{align*}
\chi(g) = \sum_{j=1}^d \lambda_j \in \overline{\mathbb{Z}},
\end{align*}
i.e., $\chi(g)$ is an algebraic integer.
[/step]