The students in this course should understand the theory of design, analysis and evaluation of algorithms and apply that knowledge in solving real world problems