Mathematical Structures for Computer Science by all material written by Cram101. & Judith L. Gersting