CS 310 Algorithms