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?
From there, explain that it's all building blocks. Hundreds, thousands, millions of tiny little pieces like that which all work together. Your presentation can be mostly handwaving and neat video clips or pictures. Just understanding that there are little details which add up to wonderful things is enough to capture their imaginations.
And of course, if they ask how they can do it too, mention the wonderful learning opportunities that can begin with learning Linux^W UnixWare, only $1399 a seat. Compiler extra.
Start off the demo by showing them a simple game (pac-man, whatever). Then show them how a programmer modifies code to make the games they love. Then show them a few other examples. Throw in some Nintendo, PS2, and other references.
You'll have the kids hanging off the edges of their chairs. Always get their attention by starting off with what they already know and what they can identify with.
Doesn't matter if you're not a game programmer per se, just use that as an intro to what a programmer actually does. Then you can branch from there and site other examples that aren't game related.
Any thoughts on how to 'wow' the little ones and make the older ones want to learn more about programming?
Well, after you are done 'wow'ing them, you might also wanna mention this:
Programming is $60-an-hour software job (also done by a $6-an-hour code writer in India)
Source:
A new study by the McKinsey Global Institute, the think tank of the consulting firm McKinsey & Co., suggests why. When a firm ships a $60-an-hour software job to a $6-an-hour code writer in India, the most obvious benefit goes to the Indian. But, the McKinsey study reports, the U.S. economy receives at least two-thirds of the benefit from offshore outsourcing, compared with the third gained by the lower-wage countries receiving the jobs.
...I'd have to re-emphasize some of the earlier posts. Keep it simple. Really -- keep it simple. While kids have a capacity for learning that is amazing, you DO NOT want to get too technical. You're not clear if you're presenting to K,3, & 5 grades at once, but that is a huge spread, and you're almost certain to lose either the K or 5th grade. If you're doing separate presentations, that'd be much better.
Take in logo (I think I saw an open source or downloadable version somewhere) and show them the direct connection between typing in a command and the logo turtle responding. Let them discover, o n their own, that when you type in RT 90, the turtle turns and when you type in FD 50, it goes forward. At that point they have a basic understanding that your commands effect the computer. Then show them a simple logo program -- maybe start with a long command line that draws a square, then load one that draws a face and run it. Let them see how complex it can get in stages.
After that, you can link the kind of program that controls a turtle to the kind of program that draws pictures and makes web pages. Focus on small stages. If you keep in mind things like the thousands of details you know, you'll lose them.
And remember, good teaching is often good entertainment as well. I'm not saying do a fancy show, but you have to keep them entertained to hold their attention.
Good luck!
You could use a Quake or Halflife editor and show them that they can make their own games. Now this isn't quite real programming, but for little kids their minds work with shapes and colors. They are just learning how to use words. But they are adept at building things with blocks. Making a simple map is basically plopping walls and ceilings down, like blocks.
You could show them how to make a copy of their classroom in the computer. Go to the room ahead of time and take pictures of the blackboard, bulletin boards, doors, whatever catches your eye. Use them as textures and eye candy. You don't have to make a full map, but show them that you can make anything with computer, including a copy of their classroom.
Fear Is the Only God
Face it,
With grades five and under(!), don't expect the kids to be wowed with logic. Try explaining the concepts of AND, OR, XORing, etc. to your children this evening. You said that your daughter was in third grade, so I'd expect something along the lines of "Daddy, that's boring!" Add two years to that and you'll get something like "Shut up dad, that's boring..."
Regardless, it seems to me that they won't care about seeing a program that you wrote. Let's say, for example, that you wrote the NT kernel on which your laptop's Win2k is based, as well as the Explorer interface. Singlehandedly, nonetheless. I doubt that the class(es) would be any more impressed by this than they would by a simple:
Hello, world!
Therefore, two options:
(1) Be boring and target the possible one or two outcase kids in there that might actually care.
(2) Make some sort of whiz-bang video, flash animation, or any other kind of neato hoo-hah.
The former allows you to stay true to yourself and your profession, while the latter plays to your audience in a pleading attempt to get them to care about what you do and reinforce your right to the oxygen you consume. To be perfectly honest, I'd go whiz-bang and play "Multimedia Content Developer" instead of "TPS Report Author."
Good luck!
-CSA
From what I recollect, its an object oriented language that works with Lego motors. Create your own robot...then show them how to program whichever part you want to move. Then let them modify the objects and the order in which they operate.
:)
When the kids go too far and the robot "crashes" off the desk, teach them about testing, and re-testing.
I'd skip the requisite "project/use case proposal to clueless mgmt" lesson until they become teenagers and are already jaded.
I started programming when I was in fourth grade. They should be able to understand some basic (that's basic, not necessarily BASIC) code. Just write some quick code to do some flashy stuff, and show it off.
I think Purple Floyd just nailed it, but I think I can offer a simple distinction.
Your presentation should be centered on teaching them about Coding, not teaching them How to code. I think that will be the difference between you being the "funnest" dad giving presentations, and you being the most boring dad. And in the end, the most important thing is for your kid to know you're the coolest parent ever.
"Inattention makes clowns of us all" -Bean