KAUST CS260 course project