Knowledge Structure
Suppose you have two black boxes. Each has an input mechanism on one side and output on the other. These boxes do multiplication. You enter numbers and out comes the answer. Suppose both boxes give the correct answer for all possible inputs. They have no mistakes. And they do it in exactly the same amount of time. Can we conclude the boxes are equivalent?
The answer is no. They might be the same on the inside. But they could have a different design. Certainly they are the same in some ways. They both contain knowledge of multiplication. Could the differences between the boxes be important?
They could. Although they do exactly the same thing in all circumstances, they may have important differences. They may have differences in knowledge structure.
I'll call the function of the box its denotation (in this case, multiplication). They have the same denotational knowledge. But there's more to knowledge than its denotation.
To give an example of how the boxes may differ, we can consider different ways of multiplying numbers. One way is by repeated addition. When multiplying NxM, just write down the number M, N times, and then add them all up.
Another way to multiply is to draw an NxM inch square, and then find the area of the square. This could be done with nothing more than counting. Take a 1x1 inch square and place it inside the larger square. Mark off that area as done. Repeat until you've marked the entire square. Keep a count of how many times you've done this.
Another way to multiply NxM is to use a huge lookup table. You don't have to know any math at all, just find the row for N, the column for M, and the answer is where they meet.
Our black boxes could use any of these methods of multiplication on the inside, or various others (like a recursive algorithm). That is a substantial scope for differences. But since all the ways of multiplication have the same result, does it matter which is used?
It does matter. Suppose you want to change the box to do something else. If we're going to modify the box, then it makes a big difference if the box works by a lookup table (then we could change it to do logarithms just by substituting in a different lookup table), or by drawing squares and counting (then maybe we could change it to do some other kind of geometry, but there'd be no simple way to have it do logarithms). Knowledge structure affects how easily we can modify something, and what we can modify it to.
Another issue is reuse of sub-systems. Can we take one part from the box and use it in a different box? The box could be designed using distinct, reusable parts, or not.
Further issues include: if there is a flaw, how easy is it to find and fix? How easy is it to look at the innards of the box and understand what they do and why they work? Maybe all the parts are labelled, or maybe none are. And what if the box breaks? Some designs will be easier to repair than others, and will break more or less often.
Consider some tiny task performed inside the box. There could be dozens of parts, each performing this task, in the box. Or it might have the part only once, and use wires to access it from other places. Those are two different approaches to design. For example, a car could have an engine at each wheel, or could be designed with one engine that has connections going to each wheel. Those designs aren't equal; in general, the one motor car is a better design.
Knowledge structure is all these issues that are not part of the denotation. It's all the ways the knowledge of "how to multiply" can be different without changing that it multiplies.
All skilled computer programmers are keenly aware of knowledge structure, though not by that name. What they know is that some programs are well designed, and some are badly designed, and this isn't an issue of what the program does, it's a matter of how easy it is to read the code, how well different parts of the program are isolated, how well the parts are reused instead of being repeated (usually repeated with slight changes, which is a big mess because if you want to change what it does you have to find every similar copy and update them all), and so on. The end result is that some computer code is much easier to add new features to, and do maintenance on, than other code. The differences can be large. If Windows XP had been easier to change and update, it would have saved Microsoft millions of dollars.
Knowledge structure exists in human minds too, although there's no easy way to see what the design is like or judge how good it is. This is the main reason why some people find it easier to learn new ideas, actually use their ideas in their lives, apply existing ideas to new areas, change their ideas, and so on: because their ideas have a different internal structure or design.
One consequence is that educators shouldn't just be concerned with whether a person learns the right answer. What also matters, often far more, is whether they have created well designed knowledge which they'll be able to change their mind about if it's mistaken, and will be able to apply to other fields, and will be able to make improvements to. It's not easy to tell if this is happening, but it happens more when people like a subject, care about the subject, think about it extensively, and so on. Voluntary learning creates better knowledge structure.
A huge offender here are schools, which focus on whether the child learned all the answers for the test. Schools focus on denotation while neglecting knowledge structure.