To study paradigms and approaches used to analyze and design algorithms and to appreciate the impact of algorithms design in practice.