Project of KAUST AMCS 240 Algorithms