Saturday, April 21, 2007

Teaching Programming

I've always wanted to find a decent way to teach programming concepts to kids. The most uber-l33t programmers I know are people who started before they took Computer Science in college.

In another vein, I have a soft-spot for graphics programming. There is something satisfying about making programs that you can see. Scripting is useful, graphics is fun.

So I found this language called "Processing". It's a language based on Java that comes in the simplest IDE I've ever seen. The really cool thing about processing is how they simplify out a graphical hello-world application into zero lines. From there, you can add more and more complex interactions based on your level of experience and learning. It provides the perfect framework for teaching programming. Because the language is intended to produce graphics, variables are easily represented as big moving circles and squares, a big improvement for a beginner over printing values to the console to keep mental track of state. Because Processing is so simple, you don't teach the language so much as you teach the concepts.

Check out http://processing.org

And check out my presentation May 2 at the Mac Tech Group
http://www.mactechgroup.org

Tuesday, April 17, 2007

Teaching class this week

I'm teaching class this week. The class that I'm teaching has been taught many times by many people and is very refined. I have a teacher's edition of the book, which is an awesome crutch!

My past classes that I've taught have been a little less refined. The most I had was instructor notes that I inherited from another instructor with my updates.

I'm having to do little prep-work because every page, every exercise, every slide is spelled out to me. Surprisingly, it's given me more freedom. I find myself less concerned about knowing what to say next, and I have more time to devote to the students' questions and class discussion.

Lesson learned: Winging it is easier when you have a solid plan.