Theoretical Foundations and Numerical Methods for Sparse Recovery