I was thinking more basic: induction, recursion, reasoning about trees. Understanding those things on an intuitive level is one of the main barriers that people face when they learn to program. It’s one thing to be able to solve problems out of a textbook involving induction or recursion, but another thing to learn them so well that they become obvious—and it’s that higher level of understanding that’s important if you want to actually use these concepts.
I’m not sure about all the details, but I believe that there was a small kerfuffle a few decades ago over a suggestion to change the apex of U.S. ``school mathematics″ from calculus to a sort of discrete math for programming course. I cannot remember what sort of topics were suggested though. I do remember having the impression that the debate was won by the pro-calculus camp fairly decisively—of course, we all see that school mathematics hasn’t changed much.
I was thinking more basic: induction, recursion, reasoning about trees. Understanding those things on an intuitive level is one of the main barriers that people face when they learn to program. It’s one thing to be able to solve problems out of a textbook involving induction or recursion, but another thing to learn them so well that they become obvious—and it’s that higher level of understanding that’s important if you want to actually use these concepts.
I’m not sure about all the details, but I believe that there was a small kerfuffle a few decades ago over a suggestion to change the apex of U.S. ``school mathematics″ from calculus to a sort of discrete math for programming course. I cannot remember what sort of topics were suggested though. I do remember having the impression that the debate was won by the pro-calculus camp fairly decisively—of course, we all see that school mathematics hasn’t changed much.