Mathematical Techniques For Computer Science