This is an intermediate level computer course where you will learn algorithm design and analysis techniques. Requires prior knowledge of discrete mathematics, high-level language programming, data structures. As a result of your learning it is expected that you will be able to analyze and compare algorithms, use algorithm design techniques, design algorithms that solve specific problems efficiently, know the algorithm classification and the P vs NP problem.
At the end of the course, you will be able to analyze algorithms to demonstrate their effectiveness and temporal complexity. You will understand, compare and apply the different algorithm design strategies and techniques.