Programming Teaches Rigorous Thought