Exploration of standard algorithm construction methods for solving varied problems including a comparison of the different efficiencies of these algorithms when implemented using different data structures. Methods will include branch and bound, backtracking, memoization, greedy algorithms, and dynamic programming. Heuristic-based methods to find non-optimal solutions are also explored, especially for intractable problems. Prerequisite: CSCI 2320
3 credits
Upper Division