This course is designed to introduce the knowledge and understanding of algorithms, and to show how to analyze their efficiency. It also enables students to develop skills and knowledge on the implementations of the algorithms theory in practice.