ClubCompy: Computer Programming for Kids


Update: Dave explains ClubCompy and programs the ClubCompy shell on YouTube.

I've been working recently on ClubCompy, a service designed to introduce kids to computers and programming. The technology is interesting; it's HTML 5 and JavaScript and some other backend technologies. Dave and I have pushed the limits of our knowledge about software development, graphics programming, virtual machines, language design, parsing, education, game programming, publishing, and more.

It's been quite an experience, and we have much more work to do. We've launched a Kickstarter campaign to promote ClubCompy, and we would love for you to spread the news far and wide.

I've tried to approach the project from the point of view of our users rather than as a technologist. (I can and will write a lot more about the technologies, the design, and our future plans. I have a crazy story about a little Perl 5 program which works with the GIMP image program and custom palettes and generates 8-bit sprites suitable for embedding in little programs. As well, Parrot fans take note of this auspicious sentence.) Our vision—what's more important to Dave and me—is both respecting the history of computing from the early '80s and giving the next generation of computer users great opportunities to play, to discover, to explore, and to create new things. If you have a modern web browser, you can program an emulation of an 8-bit minicomputer with a full-blown programming language built in. How geeky is that?

I've relied on my personal history to shape this project. Nostalgia sprinkles fairy dust on all good memories, but even so, some sort of magic was in the air in the very early '80s. Maybe you remember too.

I was 6 or 7 the first time I used a computer. I remember it well. I walked into the special education classroom of Jackson Elementary school and saw it in the corner. Class hadn't begun yet, so I sat down, turned it on, and flipped to the first page of the manual.

A simple program stared back at me.

I hunted and pecked and managed to type out the whole program. It must have been five or six lines long. It didn't work; I'd typed it wrong. I sat and stared and realized my mistake.

The second time I typed the program, everything worked. I don't remember what the program did--probably greeted me and flashed the colors on the screen--but I was 6 or 7, and I'd told the first computer I'd ever touched what to do.

Our school district was fortunate. Computers started appearing in other classrooms. I could convince my parents to buy me a magazine with programs listed in it, then spend time after school or at lunch transcribing the programs and, as often as not, eventually making my way through a couple of pages of text and funny symbols to discover that, despite my typos, I could actually do something interesting.

I didn't notice then that all of this typing had sunk into my brain. I did notice that my typing had improved, but I didn't stop to think the first afternoon I wrote out in longhand what I thought might somehow be a computer game where you move a mouse through a maze to find some cheese. I remember going to a friend's house to type it on his brother's computer. It didn't work, not completely, but more of it worked than should have worked.

I didn't think about that all. I didn't worry that I could break a machine the school district or someone else's parents had spent a few hundred dollars to buy. I didn't have to ask permission if I could write a program (though teachers didn't want us playing games during school hours, of course, or getting in fights if more than one person wanted to play with the computer). I didn't even question the idea that when I sat down, I had to type instructions to make the computer do something. I took it for granted that it wanted me to write a program or give it a command.

Back in those days, when you turned on the computer, it sat there blinking at you, waiting for you to type something. That's it. If you were lucky, you had a tape drive or a floppy drive, and you could load a program, but otherwise all you had is what you'd created yourself.

What a time I had. When my parents could afford to buy our own, I hooked it up to the TV and wrote a little program that sent multicolored hot air balloons bouncing around the screen as a Father's Day card for my father. As a book report when I was 12 I wrote a little adventure program in which you could experience scenes from the book.

Yes, I played a lot of computer games. Yes, I spent a lot of money buying those magazines with type-in listings. Yes, I made a lot of amateurish mistakes and annoyed my parents by using the family TV when I could have been outside riding my bike or playing with the neighbor kids.

But I learned something. I learned that this lump of plastic and silicon and wires and who knows what else was more than a passive device. It was a tool. I could learn to use it. I could explore its secrets. I could build things with it, use my imagination to produce ideas which I could realize in part or in whole. I'm sure many of you have similar stories. Some of the details may differ, but something sparked your interest, and a series of small ah-ha moments guided your explorations.

We want to help as many kids as possible create those moments themselves.

When I showed ClubCompy to my seven year old nephew, he drew pictures with the turtle for a while, then looked up at me and said, "Uncle? What if there were a hundred turtles, and they could all draw? And what if you could make the turtle twice as fat as he is now? And what if he turns in a really really big circle, what would happen then?"

I told him that everything he mentioned was possible. After all, when you're seven and someone hands you a magical device that can do anything you imagine, you ought to dream big, really big dreams.


I really liked the reminiscing, as it reminded me of my amiga times.

Looking at the page i am a bit confused though: Where is one supposed to start there? The documentation seems to only be a reference and less of a manual. I don't really see how you can hook kids with this, but i think i'm just missing something.

Good comment; thank you. We're adding a tutorial pane.

Modern Perl: The Book

cover image for Modern Perl: the book

The best Perl Programmers read Modern Perl: The Book.

sponsored by the How to Make a Smoothie guide



About this Entry

This page contains a single entry by chromatic published on November 30, 2010 2:15 PM.

When Do You Report Semantics Errors? was the previous entry in this blog.

Core Documentation Philosophy Wars is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Powered by the Perl programming language

what is programming?