Thursday, March 15, 2012

flow chart

Now that I am truly past middle age, I have earned the right to say what I think is wrong with today's kids.

When I was a young man just getting into high school, like my contemporaries I wanted to get my hands on technology, namely a personal computer. Five years previous to me becoming a high school freshman, I watched my brother with great envy as he discussed a proposition with my father. His school was starting a computer club but to make it a reality, they needed donations of TV sets. Away went our 14 inch black and white TV and in came the future.

My brother was born on the day that John Glenn became the first American to orbit the Earth in a space craft. 18 years later he helped to key-in a program called lunar lander. I remember the day he took me to his school to show me lunar lander. I was a little disappointed as there was no picture of a spaceship hovering over the lunar surface as the arcade version had. Instead there was simply rows of numbers indicating horizontal and vertical speed, and the altitude of the craft above the moon's surface. The player had to indicate how many pounds of thrust they wished to apply as the lander continued to descend so as to provide for a soft landing, much the same way Neil Armstrong had to when the computer on his Apollo 11 lander failed as they tried to get to land on the moon in 1969.

There was no touch screen, no double click, no wi-fi, and yet the feeling was electric. We were modern explorers landing on a new shore of an undiscovered country in our feeble vessels. The only thing we brought along that would let us survive was our courage and cunning as we sought to conquer. When I went to that same high school the computer lab was upgraded with TRS 80's that had built in monitors and a single 5,1/4" floppy disk drive. There was now a computer class that taught us how to use these tools. I remember one project I took on that was particularly difficult. It was a program to calculate the date of Easter on any given year. Since the date depends on moon cycles and leap year, and must occur between March 22 and April 25, several calculations needed to be made and checked against each other. This required a substantial flow chart.

For those who don't know, a flow chart was a graphic convention created by IBM which allowed program designers to map out decision making processes within the software code that needed to be written. As I look back, the training I received in writing basic programs and flow charting was an immeasurable benefit in my life. With that background I have a way to approach tasks that is lost on today's kids. I have two of them, so I know what I am talking about. My 14 year old and my 4 year old resemble that little girl in the you tube video that struggles to use a magazine cover like an iPad. Where I knew how to use logic and math to create useful information, our kids are being raised as Pavlovian dogs moving their fingers on glass to make the picture get bigger and smaller.


Here is my son Jim. For years he would hang around my desk at my office and stare at an old Commodore 64 of mine. Persistently he continued to ask when I would show him how to use it. With him about to go into high school, I thought this was the time. With the power of the internet and Ebay, I found the only part I didn't have, a video cable to connect the C64 to a TV set. Yesterday we turned it on for the first time in over 20 years, and it worked.

Jim stared at the screen and read the meager words in front of him, then asked, "What now?" "Well Jim," I responded, "you need to load or write a program." "How do you do that?" he asked. "Simple," I started, "you figure out what you want it to do then tell it how to do it." "Oh...." Jim said with careful consideration adding, "what do I want it to do?" I shook my head in disappointment realizing he had become one of those people waiting to be entertained by a computer, never having considered he could be in control of it and not the other way around. "Do this Jim," I said, giving him a simple basic program from the back of my head.

10 PRINT "JIM"
20 GOTO 10

"Now type RUN and press enter," I told him. When he did the result was his name filling the screen top to bottom. His response was, "Cool...." Then he asked, "What if I want it to print it only a few times?" "Simple," I said, "just add these lines."

5 N = 0
12 N=N+1
14 IF N>= 10 GOTO 30
30 END

"What will this do?" he asked. "Here is the deal Jim. We set the variable N to zero when the program runs the first time, then it prints 'JIM' then it adds 1 to N, then it asks if N is greater than or equal to 10, if it is it ends the program, if not it goes back to printing 'JIM' and adding one more to N until it is 10 or greater," I answered. He and I were both impressed that I was able to map out the logic and recall the BASIC program language needed to do this small task after over 20 years. He typed RUN and pressed enter. His name appeared 10 times on the screen. "Whoa..." was all he said.

Apparently he is hooked now. In the picture you see Jim sitting at a spare desk in our office with an old IBM PC on it. In front of him you see his Nook Color tablet connected to our network wirelesly as he watches a video on the internet produced by a man in Scotland about how he still uses his C64. If we had that technology when I was going into high school, I am sure we would have flying cars by now.

Fare thee well Jim.