Finding efficient algorithms for fundamental practical problems by studying important algorithms at all levels through the design-analysis-implementation cycle. Validating theoretical designs through practical implementations; uncovering fundamental properties of algorithms through careful mathematical performance analyses; comparing algorithms through careful implementation studies.