Why Programming is so Hard to Teach

OK, so maybe not hard for other programming teachers but for my sample of two it is by far the most time consuming and can be the most confusing course we teach.  The difficulty is there is always something new and interesting to teach.  In my usual lifelong rebellion against status quo I am always looking for something new and fun.  Yes, we could make a very secure and consistent Java or VB curriculum that we could teach the same way every year.  The kids would learn some programming skills and probably, except for the few and far between uber-geeks, never to take another programming course again.  Instead we have to make programming interesting and fun.  What a couple of idiots.

We already are using Corona (Lua) as our second semester teaching language so the kids can learn a little game writing.  So what if we have no real lesson plans, not a lot of experience with the language and a horrible debugger.  It is free and it is fun.  Kids take a second and third semester of programming because they like programming in this language and making little games.  Amazingly enough, along the way they learn some programming!

I have eight Mindstorms robot kits sitting on the shelf.  I have not used them in a couple of years because I hate the NXT-G programming environment and I cannot afford enough licenses for RobotC, which I do like.  Then last month I stumbled on Enchanting, a Scratch based language for controlling the NXT robot.  So why not try this?  I only have to learn how to make it work with the NXTs, learn the idiosyncrasies of a new controller language and build a robot.  Oh, I also have to figure out a direction to take the students.  Details, always details.

A thought comes to mind, there is a Kinect/Scratch interface and there is now a NXT/Scratch interface.  Now can I get the Kinect to command the NXT through Scratch?  Can I use this to get kids interested in programming?  Dang, programming is hard to teach.


2 Responses to “Why Programming is so Hard to Teach”

  1. geekymom Says:

    I know I’m always touting this, but you should give http://calicoproject.org/ a try. They have libraries for kinect, NXT (and other robotics) and you can work in several languages. It’s free. One IDE for multiple languages and multiple contexts, and always being added to. LUA is I the experimental phase right now. You can do a visual language similar to scratch, python, ruby, scheme, and more. I totally agree with your approach. I change things every year.

  2. Mike Says:

    I think that some people “get” programming and some don’t. You can introduce the concepts, but they have to take it from there.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: