csci226 assignment2