4312 F13 assignment 1: http://www.cse.yorku.ca/~zmjiang/teaching/cse4312_f2013/assignment/Assignment_v1.pdf