In number theory, complex multiplication is a beautiful theory that generalizes the Kronecker-Weber theorem to imaginary quadratic fields. It was the motivation behind Hilbert's 12th problem. In a nutshell, it says that singular moduli generates abelian extensions of imaginary quadratic fields. In this series of talks, we will review this theory, study singular moduli, and look at recent result concerning their factorization.