Sunday, November 4, 2007

What I know of critical thinking – the ones and zeros

In the next few days, some very bright people are going to be publishing some very bright things here along with some very interesting links. I thought I’d get the inanity out of the way right now.
Everything I know about critical thinking I learned from writing computer programs. A computer is the ultimate in literal mindedness. It will do exactly what you tell it to do; no more and no less. If your spiffy bit of code doesn’t do what you intended it to do it’s not because the computer is hard headed. The computer doesn’t understand your intentions, only your instructions.

Many years ago, when computer speeds were measured in Hz, I gave an “introduction to computers” class. Trying to de-mystify the sci-fi aura and trepidation my students felt about computers, I told them that computers really aren’t very smart: They can only count to one. But they can count to one, a lot of times, very fast. It’s those lightening fast combinations of ones and zeros that make most of our modern life possible. And they are unforgiving.

At the fundamental level, computers only know two states of being: One or Zero, On or Off, Yes or No, True or False. There are no shades of gray in computer speak. Even when programming "fuzzy logic", to get a computer to “think” like a human and make decisions based on incomplete information, varying degrees of “truthiness” are still given a “true/false” value.

So what does this have to do with critical thinking? When your program fails to behave as you think it should, you must question your assumptions and trace your logic step by step to find out what went wrong.

Invalid assumptions, such as assigning an incorrect value to a variable, will lead to invalid results. No matter how impeccable your reasoning, if you begin from a false premise, you will reach a false conclusion.

Likewise, an error in logic, such as failing to advance a counter, will corrupt the outcome. No matter how solid your precepts, you must provide an unbroken logical chain to prove your conclusion.

Now, I’m gonna sit back and listen to the smart guys.


Paul A. said...


You're just the kinda guy I'm hoping "comes along on the journey" I'm planning!

I want to learn more, and I think it'll be fun doing it! With The Monster along to keep us from getting too far off track, how can we go wrong?!?!?

Looking forward to the trip!

daddyquatro said...

Thanks, Paul A.
I too am looking foward to the journey.

The Monster said...

"The Monster along to keep us from getting too far off track"?

That's got to be one of the funniest things I've seen in a while. I can sidetrack a conversation in no time at all. Unquiet and I have to be very careful when we're having a conversation, or we can't talk about anything without talking about everything.

D4, the idea you're expressing here is known to computer geeks as GIGO: Garbage In; Garbage Out. I'm one of those geeks, and I often have to explain to normal humans that computers are not at all smart, but are in fact very fast at being stupid. In that sense, they're rather like Rain Man; they can tell exactly how many toothpicks are on the floor, or how many queens are left in the shoe, but the interpretation of those facts requires true intelligence.

tk said...

Monster--shades of autism (or the autistic spectrum) came to my mind as well . . .

daddyquatro said...

Hey tk,
'splain please.

daddyquatro said...

It's not just GIGO (starting from a false premise) but also an error in the logical train.
Your input may be flawless but if it isn't processed correctly the output will still be wrong.

tk said...

D4--Rainman has an autistic spectrum disorder (I hate the word disorder). My son has Asperger's Syndrome, which also is an autistic spectrum disorder. Folks falling within the autistic spectrum are very literal, the degrees varying with the spectrum. Your post reminded me of the behaviors of people with autistic spectrum disorders. However, it is important to note that folks with autistic spectrum disorders often have extremely high IQs.

That's my explanation colored by two very tasty glasses of merlot . . . ;o)


tk said...

D4--I should add that the Rainman example falls on the extremely literal end of the spectrum. At this end, people interested in trains will memorize data, schedules, etc, without pulling the information together with meaning and understanding. At the other end, folks with an interest in airplanes will learn about aerodynamics and flight, perhaps history, and possibly become engineers or pilots. Trains, airplanes, it makes no difference what the subject matter is, it's what the person does with the information, how they process it.

daddyquatro said...

Now I understand.
Yep, I have a nephew diagnosed as autistic.
He's a very bright boy but, like you say, very literal.
4 beers here.

The Monster said...

D4, "Garbage" is not necessarily "Data". It can also be program code. Alternatively, it's legitimate to clasify a program as just another form of data, especially when working with interpreted languages. But even with compiled/assembled languages, the machine code is read from memory and/or hard drive just like the other "data" are. Even if the human programmer got the logic right, or the operator got the data input without flaws, when a physical error in the storage device introduces "garbage" into the inputs (program or data), there is likely to be garbage output as well.

What does this mean to critical thinking? It means that we have to validate our inputs. The branch of philosophy that deals with how we know that we know (what we say we know) is called "epistemology". It's got to be the starting point for critical thinking.

In my job, I usually get involved with a problem after the front-line tech-support people have tried and failed to resolve it. Often, I find that they accepted as established fact conclusions presented to them by the user, but never tested those conclusions for veracity. I try to always keep straight that if John tells me that Mary said her computer isn't working right, that all I know is "John says . . .". I do not know whether he is accurately relaying what Mary said, nor whether Mary has accurately described the problem. So I'll ask John if he saw any of it with his own eyes, get as much detail on that as possible, and then ask to talk to Mary (or have John go to her computer) and try to reproduce the problem, if possible several times changing certain variables to see which ones are relevant. (I'll also try to set up the same scenario on one of our test servers, as well as access the production server the problem's being reported on to try to directly observe it myself.)

If this sounds familiar, it's because the scientific method places a high value on the reproducibility of experimental results. If you can't reliably get the same results, then you don't have a good theory to explain the phenomena.