Discrete mathematics is one of the crucial areas one needs to master in order to have a solid base for theoretical computer science. For example, a good grasp on topics like graph theory and induction, both mathematical and structural, is very handy in understanding data structures and algorithm analysis. However, I agree with the author that it is not always possible to discover easy examples that can motivate the student to read and capture the concept fully:
The correctness of Dijkstra’s shortest path algorithm can be proven by structural induction. However, introducing Dijkstra’s shortest path algorithm to motivate structural induction is too involved.
Accepting the challenge, the author painstakingly collects and builds several examples taken from topics that come under discrete mathematics--ranging from sets and relations, functions, and propositional and predicate logic to proof techniques, graphs and trees, and discrete probability, which the author feels are “accessible and relevant.”
I appreciate the author’s effort and time, which is worth the output. Students as well as instructors who teach discrete mathematics will benefit from this well-written and carefully prepared nontechnical paper.