Algorithms: The Sprit Of Computing - David Harel (Pearson Educational Usa, 2003)