CPS 330: Algorithm Design