CS 307 homework