Introduction to Nonsmooth Analysis and Optimization