Wednesday, March 09, 2005

Teach the Kids How to Program, or at Least Tell Them what Programming Is

In the American education system, there are certain things that every student must study: English, math, history, etc. My question is, why aren't children being taught how to use computers? I understand that there are a lot of economic issues involved here, but I've heard so little about the necessity of integrating computer literacy into traditional curricula. If technology continues to dominate culture, why are today’s kids not being prepared for the future?

Where I went to school, computer classes were optional, beginning in the second grade. Once a week, those of us who took the class (for which our parents paid about $150 an academic quarter) were pulled out of regularly scheduled classes and escorted to the attic of the school where a bank of sixteen Commodore 64s awaited us. It was 1985, and the first time I'd ever seen a computer, although I had no idea what computers did. Sadly, most of our classes consisted of playing Lemonade and other games, as well as learning how to make hearts, spades and the like appear on the screen. After six class of the former, and five classes of the latter, I asked my parents to please not sign me up for computer class again, claiming that "it's boring, and all we do are the same things over and over again." They said that I had to learn how to use a computer, so I had to keep taking the class.

The next quarter went exactly the same. With one exception, we played Lemonade and made symbols for eleven weeks. On the exception week, our teacher told us to write a poem, which we could then print on the gigantic monstrosity in the corner of the attic. Admittedly, I thought that printing something was cool, but mostly because I got to tear the sides off the paper.

Second grade was the first and last time I ever took a computer class. I mistakenly thought that computers were only good for playing games and typing things. As a result, I loathed computers for years—thirteen years, to be exact—simply because I didn't understand of what computers were capable or of what I was capable of making a machine do. No one ever explained why there were computers, so I never understood their importance and simply refused to be bothered with them.

I bought my first computer in 1996. I was seventeen, was just accepted to university, and strongly advised to bring a computer with me when I arrived. I asked my then-boyfriend—who was several years older than me, worked in an IT department, and a complete asshole—to help me pick one out; he interpreted “help me” as “pick one out and order it.” Three days later, he handed me an invoice for the computer he pre-ordered for me. Not being eighteen yet, I did not have a checking account. I remember very vividly going to the bank that day to withdraw $3,600 to pay him. It had cost more than my car, and to this day remains the most cash I’ve ever physically held at one time.

I went away to college several months later armed with a pre-G3 PowerMac 6400/180, with every imaginable extra that I, a computer illiterate, would never need. If I recall correctly, most people in my dorm came to college with computers but without printers. Such was not my case. As a result, for the first couple of weeks of class, those who did not configure their computers to print on the dorm’s shared printer, printed from my machine, and were running into and out of my room every night. Besides becoming annoying, the constant printing quickly drained my ink supply before I ever printed anything of my own. Conveniently, the ink-outage was discovered a few hours or so before I had a paper to turn in. Someone suggested that I actually hook my computer up to the network so that I could use the shared printer.

Network? What the fuck is a network?

Over the next couple of years, my circle of friends grew to include a good number of people “involved” with computers. I couldn’t participate in their conversations because I didn’t understand exactly what they were talking about, but I listened. With limited knowledge based on nothing more than hearsay, I applied for a position in an IT department on campus as a “technical office assistant,” which basically meant that I had to help the technical office manager (who, admittedly, was my friend, but he wasn’t allowed to hire me—I had to be approved by the department) order hardware when machines broke and take broken hardware out of machines. I remember my interview there. I was asked one question: “What is a motherboard?” I knew the answer and got the job.

Over the next couple of months, the department experienced a high attrition rate. Before long, the IT department was reduced to four, including myself. While my pay never went up, I got a lot more responsibility. I had become the “technical office manager,” whose job description had just expanded to include software-sided tasks. I was happy to take it on, though. When I didn’t know how to do something, there was always the internet and O’Reilly there to help me. Then one day, the database architect left for good. The next day, my boss was informed that we were being audited and had two days to pull a report together for the university. The only problem was that all the information was in the database that we could all access, but could not manipulate. My boss said, “How well do you know SQL?” “Sequel?” I responded. “Uh, not well, but I’m sure I can figure it out.”

At this point, mind you, I had just figured out a few weeks earlier what html was and for what it was used.

I have a problem. I like challenges. I like them too much, and consequently, I often get in way over my head, but I always get out. I was determined to get myself out of the SQL hole I had dug for myself. I headed to the bookstore, but could find no books about “Sequel.” I called my friend, the guy whose job I now had, to ask him about it. He informed me that a) it was “SQL” not “sequel,” and that b) I was royally fucked. He went on to say that not even he, a skilled computer professional, would be able to figure it out. That, of course, just made me want to prove him wrong. Thirty-nine hours and a case of Pepsi later, I did.

That event was an important one in my life for several reasons. First, it showed me that I really did work well under pressure. Second, I finally understood how computers could be used. That was my first taste of anything resembling programming, and somehow, it just all made natural sense to me. Something had clicked, and it was suddenly as though the entire world was different. The last thing that I discovered was that I liked making the computer do what I told it to. I liked figuring out what to type to make things happen. I may not have gotten most things right on the first try, but for having no background or training in what I was doing, I got things right pretty damn quickly. It all just made so much sense. I was actually upset when I was finished. My boss was elated, but I was more than a little disappointed that I had to go back to installing harddrives and recovering papers that grad students swear they saved.

Granted I’m no wizard, but I can now safely say that I know my way around computers. I’m fascinated by them, by various programming languages, and a slew of other ubergeeky things along those lines. Had I only known this years ago, I am certain that I would have gotten a BS in ComSci. It’s not that I regret getting a degree in cinema, it’s just that I wish I did both. I wish that in the second grade, or sometime in my formative years, someone had just said, “You can do more with computers than just play games,” but no one did.

Things have obviously changed a lot since 1985. Preschoolers today would laugh at the Commodore 64 and the dot-matrix printer that amazed me the first time I saw them, just like kids twenty years from now will laugh at us for using ridiculously oversized and under-powered machines like the MacMini. I can’t help but feel that if kids were just taught that computers could be used for more than just the internet and gaming, and, if at all possible, how to use them for such purposes, this country would have a chance to compete academically with the rest of the world. As it goes though, the future is not ours.

2 Comments:

Blogger Peter said...

I think your assertions are correct at some levels, but it has been at least 8 years since you were last in public schools. Lots of things have changed since then. Most high schoolers now have a basic vocabulary when it comes to the internet and computers. They at least know what a network, a programming language and what not are. As for your belief that programming should be required in schools, I think that would be a big step toward unlocking the full potential of computers, but as of right now, the ability to program is an industry-specific skill, not one that is required in every day life, just as multi-variable calculus is not required for a person who wants to be a lawyer.

5:01 PM  
Blogger maureen said...

The post's title shouldn't be taken literally; I’m really trying to advocate the addition of computer science in general. I agree with you that programming is, for now, an industry-specific skill, and I do not think that it should be a requirement. However, I think that it would be highly practical to have some sort of mandatory computer class, even if it be along the lines of "history of modern computing." Something, anything, even if it's not hands-on, just to let it be known what exists, where it came from, and where it might be going.

I understand that things have changed, and that teenagers now, as a whole, are much more familiar with basic computer terminology and functions. I didn't mean to suggest that students these days be taught what I was not, but rather that commonly held knowledge be expanded upon. It's sort of like this: English is taught as a subject even though most children come to Kindergarten already knowing how to communicate in English. They do not, however, know its potential or its intricacies. While they may never come close to mastering the English language, they will have at the very least integrated some fundamental elements obtained through formal study into their lives to augment their speech and comprehension ability.

I'm not convinced that most high school students know what a programming language is. While a number of them may know what html is and even how to use markup, I don't think that as large a number will know a lot beyond that. Maybe I'm not giving them enough credit, but I don't think that the average fifteen year-old is going to know, for example, the difference between functional and object oriented languages. Should students be taught how to program in a language from each of those families? No, not unless they take a particular interest. Should students be taught what different languages exist and how they can be utilized? I think they should. Why? At the present time, everyone is taught basic concepts in broad areas of science: the structure of the solar system, photosynthesis, pollination, various gasses in the Earth’s atmosphere, cell reproduction, how chromosomes split, etc. As one progresses in school, these basic concepts are expanded and elaborated upon. Not everyone who sits in a science class is going to grow-up to be a scientist or a doctor, or even take classes beyond what is required of him or her, but that doesn’t stop physical and biological sciences from being taught. Similarly, just because most kids aren’t going to grow-up to be programmers doesn’t mean they shouldn’t be taught basic concepts of computer science.

1:30 AM  

Post a Comment

<< Home