Physical origin of ferromagnetism
Previously we used the Hubbard model as an example of how antiferromagnetism can arise just from on-site repulsion and hopping. Ferromagnetism arises in an even simpler way: recall Hund's rule for single atoms. The idea is that, rather than putting two electrons in the same orbital and thereby paying a large Coulomb energy cost, it is energetically favorable to put them into different orbitals with the same spin: this implies antisymmetry of the orbital wavefunction, which automatically keeps the two electrons from sitting on top of each other.
To understand how this happens mathematically, let the two-body interaction be
$$\begin{equation}
V = \frac{1}{2} \int\,dr_1\,dr_2\,U(r_1-r_2)\,\psi^\dagger_\sigma(r_1) \psi^\dagger_{\sigma^\prime}(r_2) \psi_\sigma(r_1) \psi_{\sigma^\prime}(r_2)
\end{equation}$$
Suppose that we have two single-particle orbitals $\phi_i$, $i=1,2$, occupied by two electrons total. Then expressing the above interaction in terms of these orbitals, we have
(there is a small typo in this equation in Auerbach)
$$\begin{equation}
H = \sum_{i\not = i^\prime} U_{i i^\prime}n_i n_{i^\prime} + \sum_i
U_{ii} \rho_{i \uparrow} \rho_{i \downarrow} + \sum_{\sigma \sigma^\prime, i \not = i^\prime} J c^\dagger_{i \sigma} c^\dagger_{i^\prime \sigma^\prime} c_{i \sigma^\prime} c_{i^\prime \sigma}.
\end{equation}$$
Note that the term proportional to $J$ can flip the spin of the two electrons.
The direct interaction $U_{i i^\prime}$ is
$$\begin{equation}
U_{i i^\prime} = \frac{1}{2} \int\,dr_1\,dr_2\,U(r_1-r_2) |\phi_i(r_1)|^2 |\phi_{i^\prime}(r_2)|^2,
\end{equation}$$
and the exchange interaction $J$ is
$$\begin{equation}
J = \frac{1}{2} \int\,dr_1\,dr_2\,U(r_1-r_2) \phi_1(r_1) \phi_2^*(r_1) \phi^*_1(r_2) \phi_2(r_2).
\end{equation}$$
Clearly $U_{i i^\prime}$ is positive if $U$ is always positive. It is clear that $J$ is real, and also positive if $U(r_1-r_2)$ is a $\delta$-function. With a bit more work it can be shown that $J$ is also positive for the unscreened Coulomb interaction:
consider $U(|x-y|)$ as acting by convolution on functions $f(x)$:
$$\begin{equation}
g(y) = \int\,dx\,U(|x-y|) f(x).
\end{equation}$$
In Fourier space this just corresponds to multiplication: ${\hat g}(k) = {\hat U}(k) {\hat f}(k)$. For the Coulomb interaction, all the ${\hat U}(k)$ are positive: the ${\hat U}(k)$ are the eigenvalues of the above convolution operator. Since all the eigenvalues are positive, the expectation value in any state is positive. Finally, consider the expectation value in the state $f(x)=\phi_1(x) \phi^*_2(x)$. This expectation value is just
$$\begin{equation}
2 J = \int\,dx\,dy\,f^*(y) U(|x-y|) f(x).
\end{equation}$$
Note that obtaining a nonzero $J$ depends on spatial overlap of the two orbitals.
Even single atoms are essentially ferromagnets. The simplest example of an antiferromagnetic coupling is probably the $H_2$ molecule.
There is a wide variety of magnetic systems that we won't have time to study in this class. Examples include "spin glasses": some metallic alloys have randomly located magnetic impurities, coupled with either ferromagnetic or antiferromagnetic coupling depending on the distance (because the effective interaction between two such impurities is an oscillatory function of distance). Other examples include frustration, when the classical ground state of a spin system is very degenerate (an example is the antiferromagnet on a triangular lattice), and spin liquids, which have local order but no long-range order (like the 1D antiferromagnetic spin-1 Heisenberg model).