A Gentle Introduction to Optimization / Mathematical Programming