Log in


Knowledge And Understanding

Last week I was writing some code on the board in my data structures class. It contained a for loop with only a single statement for its body, similar to the loop below:

           for (int i=0;i<MAX_SIZE;i++)

One of my students asked me if the loop should have curly brackets. I told him that curly brackets are only necessary when the body of the loop consisted of more than one statement, and that curly brackets are not even part of the syntax of a for loop. People just think they are because they are sometimes necessary and never harmful.

The student's question was a good illustration of the difference between knowledge and understanding. He knew to put curly brackets in his code, and he didn't do it incorrectly, but he didn't fully understand why he was doing it. 

There are some cases from English grammar and usage that a layman might be able to appreciate more. A common one is the use of "I" and "me" in conjunction with another word. For instance, a child might ask his mother "Can me and Tommy go to the park?". And his mother will sternly tell him he should say "Tommy and I". And this is in fact the correct thing to say.

But she probably won't tell him it's because "I" is objective and the subjective "me" doesn't belong there. So he might later ask his mother "Will you drive Tommy and I to the movies" and think he is using proper grammar even though he isn't. If he puts a "please" on the end he might even be complimented on his correct speech.

The parent shouldn't just tell the child to say "Tommy and I". She should illustrate the underlying principle by asking if "Can me go to the park?" sounds correct. It's not even necessary to use the terms object and subject.

As a recovering postivist, I know that not everything can be derived, and that you can get yourself into quite a quagmire by thinking otherwise. But underlying principles are often important, and it's hard to have depth of understanding (as opposed to mere knowledge) without them.