Credit Hours: 3.0
Terms Offered: Fall
Introduction to classical algorithms that have broad application in solving computer science problems; topics include analysis of algorithms, advanced data structures, graph algorithms, numerical methods and NP-completeness.
The student will be able to:
Analyze the runtime performance of algorithms.
Recognize typical applications for common algorithms and data structures, and adapt them to solve specific problems.
Apply greedy and dynamic programming design techniques.
Apply classic graph algorithms.
Explain the concept of NP-completeness and the importance of using approximation algorithms for solving hard problems.
Apply sound problem-solving skills to develop algorithmic solutions to computational problems.