(3 credits) Prerequisites: CIS 390 or 550. Algorithms and their time/space complexities; models of computation; design of efficient algorithms: recursion, divide-and-conquer, dynamic programming; algorithms for sorting, searching, and graph analysis. Algorithms for parallel computing.