Prerequisites: CSCI 210, MATH 200. Offered in fall and spring.
Design and analysis of basic classes of algorithms: Divide and conquer, greedy methods, tree and graph traversals, and backtracking. Applications to problems such as sorting and searching, traveling salesperson, and knapsack. Theory of complexity.