I think you are right when you frame debugging as a scientific process. It really is about observing and measuring while perturbing a system in some way to provoke it to provide you with observation.
But as roenxi points out, academia doesn't see programming as something they are supposed to teach. Academia sees programming as a vocational skill. Something to be learned "on the job" - or done by "other people" (whoever they might be). They see it as their job to, mostly, teach you the math that is needed to model behaviors of software and systems.
I think the closest I ever got to something that was practical was system design/modeling. And as to demonstrate how terrible academia is at keeping itself updated, the methods we learned were, without fail, known to be impractical, outdated and wasteful. Nobody who took that class would ever apply anything they had learned in that class later in life.
Computer science is a bit odd. If you become an architect (the kind that draws houses) it is understood that you are not going to be actually building houses. You will probably never even touch a hammer in any professional capacity. You will work with someone who understands the mechanical bits, building code etc and together you produce a package of instructions that someone else has to realize.
However, if you are a CS grad, it is fairly likely that you will be writing software. Which makes the whole thing a bit absurd. It is as if you expected architects (the house-designing kind) to build houses, but never even give them any training in how to nail two planks together.