CS-561 CSCI-561 course project in Viterbi School of Engineering, University of Southern California HW01 search HW02 game playing HW03 logical reasoning