Applied discrete structures for computer science - Doerr, Alan; Levasseur, Kenneth