这篇文章介绍了作者在卡内基梅隆大学担任编程入门课程助教时,最喜欢的一个教学问题:计算自然数的数字长度。作者首先介绍了学生容易想到的两种解法,并指出了它们的缺陷。然后,作者引导学生使用数学方法,利用对数函数来解决这个问题,并最终给出了一个简洁而正确的解决方案。在这个过程中,作者还强调了测试用例的重要性、规范定义的必要性以及代码与数学之间的关系等编程基础知识。