Mathematics in the making appears as an experimental, inductive science.
This chapter draws an analogy between developing a proof for a mathematical theorem and developing the explanation for a software defect.
The first section of this chapter explains how concepts from the literature of instruction in mathematical proof techniques can be used in software debugging. It explains the worldview of the mathematician and presents a metaphor in which the software defect is considered a theorem to prove and the programmer is a mathematician.
The second section of this chapter describes and evaluates the Mathematical Heuristics movement begun by George Polya. The third section reviews the contributions of several popular texts about mathematical proof methods that have been published in the past two decades. It explains some of the contributions that each makes over Polya’s original work.
The fourth section of this chapter describes Alan Schoenfeld’s approach to teaching mathematical problem solving. It explains the hierarchy of “knowledge and behavior necessary for an adequate characterization of mathematical problem-solving performance” that he advocates.
The fourth section of this chapter applies Schoenfeld’s approach to software debugging. It argues that Schoenfeld’s categories can be transferred from the domain of mathematical problem solving to that of software debugging in a straightforward manner. It proposes that the three levels of the hierarchy in debugging are strategies, heuristics, and tactics.