Sparse and Structured Optimization