CS276: Programming Assignment 2