[Bismark-devel] programming without fear... at age 10

Dave Taht d at taht.net
Fri Apr 15 12:42:09 EDT 2011


I'm always interested in new ways to reach the next generation, of any 
age...

I am wondering what is taught now as a mandatory course for liberal arts 
types as an introduction to programming at any level - from grade 3 to 
college? (I realize this is kind of off-topic for the bismark list but 
it was one of my unanswered questions from my visit to gatech, so...)

My friend Brian Clapper [1] just wrote up his experience with exposing 
some 10
year olds to MIT's "scratch".  I hope he blogs further on this...

In my case, LOGO was the revelatory experience - (not the turtles, but 
the list processing. I know I'm weird)

He writes:

I volunteered to participate in Career Day, at my daughter's school, and 
today
was the big day. I thought long and hard about how to describe programming
to 10 year olds, without boring the crap out of them. Turns out, the three
sessions I did went very well. I thought I'd share, in case others find
themselves in this situation.

First, I talked about computers, of course: How ginormous they were when I
was their age, how people needed special badges just to get in and touch
the computer, etc. I pointed out that computers weren't everywhere then,
not like they are today. From there, I starting asking the kids to name
places they knew used computers. I got the usual responses.

I then pulled out my Droid phone, asked them if they knew what it was.
(They did, of course.) I asked if it was a computer, and we talked about
that for a minute or so. (I showed them the flashlight app for it, and
talked about how someone actually sat down and wrote it, and then put it on
the web.)

Next came the iPad. We talked about how people use them. I showed them the
calculator app, which is hilarious, because it's so big. We talked about
how the calculator keys change when you change the iPad's orientation, and
how someone actually wrote the program to do that.

Then I talked a bit about other places there are computers. I got the usual
answers (video games, the cash registers in the lunch room, etc.). I asked
them if there were any computers in their cars. Some mentioned the GPS, so
we talked about that. I talked a bit about anti-lock brakes, and how
they're controlled by computers, using skidding across the floor in socks
as an intro. This worked well, because they had just done a science unit on
simple machines, so they have a new understanding of friction.

Then we talked a bit about how someone becomes a programmer. When I asked
how that happened, they all said, "School," or some variant. That gave me
the lead-in to the science analogy (school + experiments), because, of
course, kids love the experiments part more than the book part. It also
gave me a chance to invoke Mythbusters.

This was a perfect segue into the next part: A demo. I had found Scratch
(scratch.mit.edu), a free, cross-platform programming environment that's
like Logo, on steroids. You program by dragging controls from tools bars
into the canvas, and fitting them together like puzzle pieces. They affect
a small screen, where you can add sprites, draw lines ("pen up", "pen
down"), etc. A small Paint-like app allows you to draw your own sprites,
but you can also load in prebuilt graphics. Widgets include:

- control structures (loops, if statements, the like)
- sounds (drums, notes, with adjustable tempos and instruments)
- variables (though I skipped those for this demo)
- pen-related widgets (pen up, pen down, pen color, etc.)
- movement widgets. The "set x,y to (-120, 0)" allowed me to tie the
   discussion into a recent math unit, for instance. But there are others,
   like "walk 10 steps".

When you drag a control into the canvas, you can double click it, and that
fragment runs immediately. Piece it together with others, and you can run
them separately, too. Put them all together, and you have your program. By
having separate, disconnected pieces, you can get parts that run in
parallel.

You get the idea. So, I had the kids gather around behind me, I knelt on
the floor in front of my laptop (which was on two spare kid desks), and we
built a program.

First, we drew a simple sprite. Then, I showed them how to move the sprite
across the screen. We tested that part. Then, we put that action into a
loop, and ran that. Then, we modified the loop so that after ever step, the
sprite stopped, and the program played two drum tones. Then, we added a
snail trail, so the moving sprite left a purple line as he walked across
the screen. (Funny: In all three sessions, when I asked the kids what color
the line should be, they said, almost unanimously, "PURPLE!")

I cannot praise Scratch enough, for this type of talk.

I had about 25 minutes per session, with about 12 kids per session. This
talk format turned out to work really well with that time frame and that
size. The kids were attentive during the talk, since I didn't just lecture
at them, but kept asking them questions. But they were positively rapt
during the programming session. At the end, I told them, "Okay, you're all
now programmers," which, of course, they loved. I also told them that if
they're interested in playing with Scratch, they could have their parents
email me, and I'd tell them how to download it, "because the best way to
decide whether programming is fun or sucky is to try it."

If you have to do this kind of thing with kids, I highly recommend Scratch.
I ran it on my Mac, but it'll run on Linux or Windows. It's written
primarily in Java, with a native executable front-end.

[1] http://brizzled.clapper.org/



More information about the Bismark-devel mailing list