One of the Biggest Challenges in Teaching Programming

It’s not what you think. It’s not “when do you introduce objects?” Nor is it “which language?” or even “which approach?”

Nope. As a teacher for all these  years I’ve found the hardest thing about teaching programming is coming up with the right problems. Lets face it – the bulk of problems and examples in almost all programming texts are just awful. They tend to be simpleminded, boring, obscure, or just plain lame. We’re all sick of the dreaded “hello world” first program. When I titled my last PyCon talk “Goodbye hello world” I got a reasonably full room, probably largely because of the title.

Not that I’m free of blame either. I’ve assigned the various calculators, cash registers, math functions, etc. right along with everyone else. Because they need to do something and it’s hard to come up with problems that are at the right level of difficulty, illustrate the concept being taught, and are interesting, engaging and fun.  So we just do the best that we can and hope to get through before the boredom sets in.

Of course, I’m being a bit sneaky here. I’m hoping someone will read this post and refute me by posting a bunch of boffo exercises. That would really teach me… 😉

I have found a few problems/projects that I thought did work well, so let me get the ball rolling:

  • Conway’s Life – great for several things, including 2-D arrays, simulations and timesteps, even objects. Kids can find it fascinating and every time I assign it, at least one kid gets completely wrapped up in it.
  • graphics and animation – in Python the Livewires library makes animation pretty easy, and kids have enjoyed making things move around the screen. They also are learning looping and branching at a minimum, but they don’t seem to notice.
  • turtles – replacing “hello world” with some simple turtle graphics has also worked well. And the sequence of movements makes the idea of a program as a sequence of instructions clear from the beginning.

One Response to One of the Biggest Challenges in Teaching Programming

  1. Paddy3118 says:

    As the (proud), father of twelve, and ten year-olds that at some time I wish to become programmers, I keep an eye out for what interests them: mobile phones, you-tube music videos, the PSP, Liverpool football club, friends.

    At some stage I will be getting them involved in programming, most likely with Python, and it will be my job to trawl their interests to find something to interest them, that they could do.

    I haven’t cracked it yet ….

    – Paddy.

Leave a Reply

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

You are commenting using your 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

This site uses Akismet to reduce spam. Learn how your comment data is processed.