Intersection Homology & Perverse Sheaves : with Applications to Singularities