Five Essential Properties Of An Algorithm