Programming and Mathematical Thinking: A Gentle Introduction to Discrete Math Featuring Python