Skip to main content

Students Programming for the Future

Visalia Direct: Virtual Valley
January 2007 Issue
December 11, 2007
(1040 words)


Students Programming for the Future

Twenty-five years ago history was made. The Commodore 64, the first home computer to sell more than a million units, shipped just in time for the Christmas season of 1982. A year earlier, I had received what might still be the most important gift I have every received: a Commodore VIC-20.

Thanks to Apple, Atari, Commodore, and a dozen smaller computer manufacturers, the late 1970s and early 1980s were an amazing time in computing history. By 1993, Commodore was bankrupt, Atari was sold off in pieces, and Apple was struggling to compete against IBM and a legion of “PC clones.”

I am extremely glad I grew up during the personal computer revolution. A generation earlier, I might have built crystal radios and box cameras. Instead, I was learning to manipulate bits and bytes to produce sounds and images. I was thrilled the first time my VIC-20 played a “song” I had converted to BASIC code. (It was “House of the Rising Sun,” from a “Hits of 1973” songbook.)

With my fond memories of learning to program, it is natural to assume that I believe teaching programming to most students would be a great thing. When I speak to parents and teachers about technology and education, I am inevitably asked not if we should teach programming, but when and how.

“Aren’t there even better tools today?” I was recently asked by an elementary school teacher.
I suggested a focus on skills, like word processing or even using graphics software like Adobe Photoshop. Students are more likely to use Microsoft PowerPoint, Word, and Excel than to write the next great video game.

The teacher challenged me with a great question: “Didn’t learning calculus help you even if you don’t use it daily?” Her suggestion was that learning to program helped me in ways that might help other students.

I admit that learning calculus did have some benefits. Calculus was about analyzing a problem, breaking it into pieces, and then finding the solution to what had appeared incredibly complex. I learned that the most complex problems are really collections of easier problems.

Did learning programming teach me similarly valuable lessons? Absolutely. This teacher was right: learning to program was more than learning BASIC, Pascal, or assembly language.

In those early years, you could learn to program by copying lines of BASIC from various magazines. BYTE, PC Magazine, Compute, InCider, and numerous other publications included “program listings” you could type, save, and modify. Typing the programs in order to play games or use applications taught me a lot, not only about programming but also about patience and logic.

Inevitably, I’d make mistakes when typing three pages of computer code. Learning to debug a computer program means learning how to analyze problems. A willingness to admit error, and to correct the error, is something more people need. Eventually, I was coding my own games and applications.

This wasn’t a skill learned in a classroom, or by reading books that started with simple (and useless) examples. I learned to program by copying games I wanted to play. I had a motivation that most classroom exercises can’t match: I was willing to work a week in order to play a version of Pac-Man or Donkey Kong on my computer.

I can get students excited about software applications because the results are something of interest to the. Students learn to use Adobe Illustrator because they want to create pictures, not because they are interested in Bezier curves or advanced color theory.

The programming course I took in high school didn’t lead to “fun results” and didn’t excite me in the least. Getting a computer to print “Hello World” ten times is not exciting. Sorting a list of words? Sorry, but that’s not fascinating.

Thankfully, this teacher’s question propelled me on a search for the best tools and techniques to teach programming. It turns out there are some great tools.

LEGO Mindstorms (http://mindstorms.lego.com/) are fully programmable robots made with a mix of familiar LEGO bricks and new robotic pieces. You can buy vision sensors, sound chips, robotic hands, and more. Now, that’s fun. Teachers are using these LEGO robots to teach everything from math to English.

The LEGO Digital Designer is available for free at the LEGO Web site. You can build both traditional and Mindstorm projects onscreen. I had my students use “LDD” to create toys and write about their creations. These students, some of whom struggle with English, were so excited that they produced fantastic manuals for their toys.

Programming a LEGO robot reminded me of LOGO, a computer language famous for its “turtle” that drew shapes on screen. I thought LOGO was dead, but I was wrong. The Massachusetts Institute of Technology has created StarLogo: The Next Generation. StarLogo is free, with lots of sample lessons and activities for the classroom (http://education.mit.edu/starlogo-tng/).

As dubious as I was, it turns out that StarLogo is fun! I spent a couple of hours creating “breeds” of turtles to guide. This felt more like SimTurtle than programming. Instead of writing code, you “drag-and-drop” commands, which snap together like LEGO bricks. Despite how much fun I was having, I was also creating “real” computer programs. Elementary and even high school students used to “virtual pets” seem to enjoy StarLogo. You can’t beat the price, either.

Having as much fun as I did 25 years ago, I sough more fun ways to use programming the classroom. Stumbling into SqueakLand was another pleasant surprise (http://www.squeakland.org/). Students use Squeak to create “virtual toys” in the Smalltalk programming language. There are “squeaker” Web pages where students share their creations world-wide.

I am impressed with what students are creating. Squeak toys, created by students as young as eight and nine, are simple but wonderfully creative. My favorite toy was a dancing flamingo created by a young girl named Lauren. I’m willing to bet that Lauren had more fun creating the flamingo than I did printing “Hello World.”

The “good old days” of computer programming aren’t dead, after all.

Based on my own classroom experiences, maybe programming does have a place in our classrooms. My students used math and English skills that will help them no matter what career paths they follow.

Comments

Popular posts from this blog

Slowly Rebooting in 286 Mode

The lumbar radiculopathy, which sounds too much like "ridiculously" for me, hasn't faded completely. My left leg still cramps, tingles, and hurts with sharp pains. My mind remains cloudy, too, even as I stop taking painkillers for the back pain and a recent surgery.

Efforts to reboot and get back on track intellectually, physically, and emotionally are off to a slow, grinding start. It reminds me of an old 80286 PC, the infamously confused Intel CPU that wasn't sure what it was meant to be. And this was before the "SX" fiascos, which wedded 32-bit CPU cores with 16-bit connections. The 80286 was supposed to be able to multitask, but design flaws resulted in a first-generation that was useless to operating system vendors.

My back, my knees, my ankles are each making noises like those old computers.

If I haven't already lost you as a reader, the basic problem is that my mind cannot focus on one task for long without exhaustion and multitasking seems…

MarsEdit and Blogging

MarsEdit (Photo credit: Wikipedia) Mailing posts to blogs, a practice I adopted in 2005, allows a blogger like me to store copies of draft posts within email. If Blogger, WordPress, or the blogging platform of the moment crashes or for some other reason eats my posts, at least I have the original drafts of most entries. I find having such a nicely organized archive convenient — much easier than remembering to archive posts from Blogger or WordPress to my computer.

With this post, I am testing MarsEdit from Red Sweater Software based on recent reviews, including an overview on 9to5Mac.

Composing posts an email offers a fast way to prepare draft blogs, but the email does not always work well if you want to include basic formatting, images, and links to online resources. Submitting to Blogger via Apple Mail often produced complex HTML with unnecessary font and paragraph formatting styles. Problems with rich text led me to convert blog entries to plaintext in Apple Mail and then format th…

Screenwriting Applications

Screenplay sample, showing dialogue and action descriptions. "O.S."=off screen. Written in Final Draft. (Photo credit: Wikipedia) A lot of students and aspiring writers ask me if you "must" use Final Draft or Screenwriter to write a screenplay. No. Absolutely not, unless you are working on a production. In which case, they own or your earn enough for Final Draft or Screenwriter and whatever budget/scheduling apps the production team uses.

I have to say, after trying WriterDuet I would use it in a heartbeat for a small production company and definitely for any non-profit, educational projects. No question. The only reason not to use it is that you must have the exclusive rights to a script... and I don't have those in my work.

WriterDuet is probably best free or low-cost option I have tested. It is very interesting. Blows away Celtx. The Pro version with off-line editing is cheaper than Final Draft or Screenwriter.

The Pro edition is a standalone, offline versio…