Computational molecular spectroscopy: an introduction