CS349 Assignment 2