NMR spectroscopy: from basic concepts to advanced methods