A Thesis submitted in partial satisfaction of the requirements for the degree Master of Science in Computer Science