Introduction to Nonsmooth Optimization