CS276 programming assignment 1