Fall. Algorithms for solving problems that occur frequently in computer applications. Basic principles and techniques for designing and analyzing algorithms. Introduction to computational complexity, divide-and-conquer, dynamic programming, greedy approach, and graph algorithms. Prerequisites: MATH 2220 or MATH 3220 or equivalents and grade of C or better in CS 3350.