I posted about diagnosis on my research blog and that made me realize that I should post here too. Almost all of science is diagnosis: You must diagnose your code, you must diagnose disagreements between theory and observation, you must diagnose inconsistencies in results. And yet diagnosis is so far outside any formal curriculum, no-one knows what you would even think about teaching there! It is taught to doctors and automobile mechanics, but not astronomers, who need it just as much, or perhaps even more.

Seymour Papert makes this point very clearly—and much more generally—in his book Mindstorms. One of his main arguments that computers must play an important role in education, or in thinking about thinking, is that programming a computer forces us to confront bugs. These require diagnosis (and also lead to interesting insights, a consequence he discusses extensively).