This project explores the use of submodularity for optimizing applications in speech and language processing, in particular machine translation. Submodular function optimization is used to select the best possible training sets for different types of translation models, tuning sets, language model data and sparse feature sets.