Career Day for Elementary School Kids?
Chris Curtin writes "My daughters' school is having a Career Education Day next month and I'd like to do a presentation. My kids are in Kindergarten and Third Grade, but I could present to Fifth Graders, as well. How do I explain what a programmer does to the kids? I was thinking about building a web page for the little ones, maybe show the older ones some visual logic with VB, where I change a basic program and run it from my laptop, showing keyboard and mouse inputs, music, and so forth. I have VB6, Java, HTML and Windows 2k on the laptop I'll be bringing. Any thoughts on how to 'wow' the little ones and make the older ones want to learn more about programming?" If you were going to make a computer presentation to a class full of children, what kind of things would you talk about?
But, anyway, I think the idea of some quick GUI development (using VB, ProjectBuilder, Qt Designer, whatever...) is an excellent one. People who started with computers after 1984 have absolutely no idea of how software works. (That's why media explanations of "open-source" are so labored.) Show them that windows and buttons and output happen because someone put them there.
What I'm listening to now on Pandora...
From there, go into something like, "Well, how does the computer know to make Mario jump when I press this button? How does it know when the bad guy gets jumped on and is squished? It follows instructions, and it's my job to give computers those instructions." Explain that you have to figure out what people want to do, then tell the computer how to follow instructions other people give it. Keep it very simple, and make it as visual and interactive as possible. Remember that the kids have an attention span of maybe five minutes, even with all the pretty visual aids you can conjure, so keep it short and sweet.
Finally, a web page for the younger kids probably isn't that great an idea. Most probably aren't familiar with the Internet, and a web page is much more static than a game. Add to that the fact that most probably can't read very well, and you have a recipe for failure. Remember to keep things as visually oriented as possible.
That's it. I'm no longer part of Team Sanity.
I would relate programming (writing algorithms) to an everyday activity that most of the kids would be familiar with such as cooking.
You could even demonstrate a simple recipe like smores or peanut butter & jelly sandwich or fruit salad (for you Wiggles fans out there) and relate it to a simple program showing how each is just step by step instructions for doing something. One for making something to eat, the other for telling a computer what to do. The kids could get a little treat at the end :)
Logic is not Divine.
...it sounds like you have a great way to get high schoolers to have an understanding and maybe an interest in computer programming. You already know what to present, because it's something you've been doing for years. What you need to figure out is that when it comes to children of the ages you mention it's going to take much less of what you like and much more of what they like.
Judging by what you wrote, you don't have any plan for presenting the material. You have an idea of what to present to each, but no plan on how to present it. I suggest you speak to the teachers of these students about how best to interact with them. Children are the worst critics and the easiest audience to lose. If what you do isn't interesting to children, they're going to make it known by either falling asleep, biting you, or biting their neighbor.
Bottom line is the best person to tell you how to engage these kids is the person who spends eight hours a day in front of them.
On a mildly related note, I don't think you have a chance in hell of getting the kindergarteners to provide even a modicum of interest. "Look kids! See how I'm typing even though none of your hands are big enough to use a keyboard? Look kids! See the words I'm typing that you lack the ability to read? Look kids! See how I'm putting strange characters around the words you can't read to change the syntax into a broken mess? Look kids! See how I'm trying to get you to understand nested functions which is a mathematical concept you won't learn for another four years?"
I could go on forever, but I won't. I just advise you to know your audience. The youngest won't care or be able to follow, the third-graders probably won't care or be able to follow, and the few fifth graders who care and follow will be at the level of an adult user who doesn't understand computers but without all the other worldly knowledge to enable them.
You have a very tough crowd with very low chances of being anything but a total bore. Good luck. And remember: know your audience.