Project of KAUST AMCS 260 Algorithms