CS276: Programming Assignment 1