Applied Discrete Structures for Computer Science