Kim Cavanaugh, author of Macromedia Dreamweaver 8 Visual Encyclopedia, responded to yesterdays airport blog post about computer science and the AP exam. He asked his readers (educators and programmers and web developers) to share how they would teach computer science, and more to the point, how they learned to program.
I’ll tackle the last question, as I think that it may lead to insights about the first few. It started in the early 1980s, when my school purchased a Radio Shack computer, and then next year we received 11 TRS-80 Model III computers (16 kilobytes of memory) from a district grant, and I got all 11 in my classroom (no one else wanted them). In both cases, there was no software included. It is a testament to how little we knew about these things that we seemed to think that the green glow from those cathode ray tubes would make our children smarter.
Radio Shack, back then, had the best tutorial on programming (BASIC) I have ever seen. I poured through it, and it is no exaggeration to say that my life changed. I think that what impressed me the most was that this was a technology that you operated by communicating with it, by typing incantations into the machine. As an educator who’d taught history as a series of technological achievements (bow and arrow, agriculture, etc.) and their impact on societies, I saw the personal computer as one of those technologies that was going to change things.
No doubt, the novelty of a technology that you communicate with has worn off. It’s an old shoe for today’s kids. However, that you can make computers do things at a very fundamental level, through programming, and assemble those fundamentals together into useful and interesting objects and events, continues to hold potential to empower learning.
Early on, I tried my hand at writing video games. But what I discovered was that writing the games was much more fun than playing them. The adventure was in tracing pathways of thought and then testing them. It was clean, because it either worked, or it didn’t work — and if it didn’t, there was always a logical reason why.
I think that part of the problem is that we are trying to teach computer science or programming, rather than helping students learn to do interesting things with today’s prevailing information technology.