Discrete Mathematics: Mathematical Reasoning and Proof with Puzzles, Patterns, and Games