Characteristic Classes and Applications