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.
Dear Dead,
If you come to my school, pleeeease pretend you don't know me. And don't talk to my class or my teachers. Ugh, if you embarras me again I could just diiiiie.
Love,
Your daughter
Vonal Declosion
...to bring a map of India with you.
My three year old daughter and I wrote a VB program together as a present for mom. It was exceedingly simple, just a few graphics like pictures of doors to click on which would pop up "Happy Birthday, Mom" types of message boxes, and several "Yes" or "No" question and answer radio buttons.
It was easy enough and basic enough and most importantly, pretty enough, for my then-3-year old to figure it out. She's now seven and still loves programming. I mean, really, think about it - doesn't VB lend itself more to an audience of elementary school students than your other examples (e.g. Java)?
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...
Have a simple program started that can do a bit of output, then ask for them to input what the program will say. Maybe the teacher's name, some of their names, what they're studying, etc. Just demonstrate how YOU can control the computer in ways they may have not thought of.
I would highly recommend some Logo demonstration. Drawing is fun and drwing with computers is even more fun. Plus they will like the turtle.
I was thinking about some simple game (to catch their attention) and then show them how it is written. Again something simpler (like Logo) might do better than VB...
Code poet, espresso fiend, starter upper.
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.
Love,
Your daughter
Karma: Excellent (Mostly due to me being a filthy whore)
You might want to consider deleting your daughter's Slashdot account.
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.
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.
They like blinking lights and shiny things.
Try to keep it on that level if you can.
I went in and announced to the class that I'm a gigilo. The teacher looked shocked, and after class she asked me "Why'd you say that?"
I replied "How do you expect me to be able to explain what a UNIX administrator does to kindergartners???"
I know, I know... It's an old (and bad) joke.
They will respond to video game creation.
nuff said.
...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!
...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.
The last thing we need to deal with is a bunch more kids crowding the job market in ten years.. :)
:)
And seriously, with the growing competition frow low wage programmers in India and elsewhere, shouldn't people get back to going to school for "real" jobs?
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
If you want to really WOW them, don't forget goatse.cx man and tubgirl. They are part of many a programmers' day.
cpeterso
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
Have you heard of LOGO? It's a kid's programming language. You use a BASIC-like language to make a turtle draw things. There's java emulators. You should load it up and let them work on it. Show that changing 'Draw 0 10' to 'Draw 0 20' (or whatever the exact syntax is) makes the line twice as long.
Aside from that, games. There used to be 2-liner contests in old magazines, some of which made functional little games. Pong should be easy to program. Tic-tac-toe maybe. I doubt the code for checkers would be of interest to little kids, but you might show them simple coding for a tic-tac-toe game. Something along the lines of: "OK, you put your X in the upper left hand corner. What do you think the computer should do?" Talk them through the logical consequences - most kids should be able to understand 'if A does this, then B should do that'.
Depends on how much work you're willing to put into it. I think I'd just show up with some games and say "If you become a programmer, you can make your own." But then I'm lazy.
I first got into programming at a two-week summer class in 1990. The teacher asked students to write a "program" to brush your teeth or make a peanut butter and jelly sandwitch. One program ran:
Take two slices of bread from the bag
*teacher tears a hole in the bag and removes two slices*
Open the jar of peanut butter
*after a few failed attempts, teacher manages to remove the lid*
Put the peanut butter on the bread
*teacher sets the jar of peanut butter on the bag of bread*
I love being literal-minded, and that example emblazoned on my mind "Be specific, or the computer won't do what you want." Anything that could be that literal was an obvious match for me!
Running this example of programming will pique the interest of kids who think like geeks. It will also provide a concrete concept of a program to kids. Finally, it gives you a chance to look silly (an important part of teaching elementary school kids) while getting the kids to think about the way to solve the problem (the educational bit). And as a bonus, you don't have to carry a laptop and a projector.
I'm not sure how well kindergarteners would deal with this, but I think it would be a great exercise for both third- and fifth-graders. FWIW, I took that computer programming camp after my fourth-grade year back in 1990 when Apple II was a pretty cool thing. They taught BASIC and Logo, we built robots, and played with lasers. And now look where it's gotten me!
Ceci n'est pas une signature.
That's what all those k-5 kids are gonna be looking like after your third sentence. Your daughter will likely also learn a new level of humiliation when the other kids start saying that you have the "boringest" job in the world.
An earlier post mentioned using Logo for a hands on demonstration which I think is a fantastic idea but, probably won't be very effective using a single laptop.
I think you would be better understood if you abstracted the subject, tremendously. I think that you would be better appreciated if you showed clips from familiar movies that used CG heavily and then explained, at a very high level, how programmers made it all happen.
Perhaps you could demonstrate a very simple animation of your own and then explain what goes into making it work. Then all the kids will think you are God and ask when you will have the next Shrek finished. Also, your daughter won't think she has the lamest Dad in the world. At least until she is 13 or so.
As a final note, see if you can arrange for or borrow a projector. 20+ kids gathered around a laptop makes of a lame presentation.
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.
There are several games out there where you program a robot to do things.
Mindrover (which you can download a demo of, for both Linux and Windoze) is one where you have to build a robot. IBM has a program where you can program a Java robot but I suspect that is a bit above them.
Another possibility which is a visual programming language that uses video as a paradigm (I read that and I have not seen it) is Toontalk which you can find at www.toontalk.com. The object of the game is to write a program to control a robot that solves problems. Its aimed at kids. Demo at website too.
There are actually several visual programming languages done by university research projects aimed at kids. Try searching on Google. However, many of these things are mac based.
Also, maybe shoot for something that paints a picture based on a program. One thing that may also work is a dataflowish programming language (think Khoros, there is one on freshmeat as well but the name escapes me) that does image processing on a picture. For instance, you could have a picture of yourself and a flow with a control that changes the color of you hair, or better, even, get a webcam, do this live and squash the face of the teacher. I once did whits with two bored kids of a colleague of mine and it was a great hit with the girls.
The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
I know games have been mentioned before, but it might also be nice to show off what you do with some visual stuff. Even Vis-Basic to do a simple animation as an intro might get their attention.
Also don't forget to mention how you could get to work for the CIA as a spy by writing programs to watch out for bad guys...
hmmmm?
I was writing programs in BASIC. Sure, at that point I was basically copying things out of books (like the time I wrote a program that said "God Morning" because one of the o's in Good was worn away), but I understood that I got what I put in. By 3rd grade, I was able to write my own programs (usually quizzes for friends about Astronomy) and make little animations with them (make a rocket scroll up the screen!). What's my point? Kids can understand programming at this age, but it's more about what a programmer does than how they do it. Keep it on that side of things with demonstrations of how to control the computer with your code. Don't worry about what the actual code is.
I'd stay at a more physical level than programming. Describe literally what you do. Everyone knows about computers to some degree like everyone knows about airplanes. I'd hit the extents of how computers touch our lives - really quickly. Maybe a book store versus amazon.com via the web. (Everything is information) But not much detail. The whole web poster.
Show them your work. (slideshow) I mean the basics - you work in an office. You probably work in a cubicle. There is a server room and L@@K!! at all those wires and blinkenlights. your desk. slip in a pic of a 60's machine room, maybe quote that IBM guy who said there was maybe a market for 5 or 6 computers in the whole world.
me as a 5th grader would have gone ape over some complicated diagrams - the kernel poster comes to mind.
have fun.
must... stay... awake...
You might want to show the older kids some games...if they really have interest, as I did, they'll be completely wowed by what people can crank out. When you're young like that, the most tangible evidence of the benefits of programming in one way or another can bring is a flashy 3d game. Of course, this IS a career day...don't know how you'd get a game in to show em. Heh. A look at a coding environment seems like a good idea to me too, so they can see what you really do your work in.
If you have any particularly interested kids, you might want to show them snippets of code, or provide some insight on how to get started. I remember when I looked into programming, finding good resources to help out and provide a good introduction to the entire world of programming in all its forms was very difficult. Showing how easy it is to get started with BASIC in one of its forms, new and old (I did my very first programming in QBASIC), might be a good idea too.
Dunno if all this would be overstepping the bounds given to you, but this sort of stuff is what interested me when I first thought about programming.
Wow, Career Education Day in Kindergarten?
When my brother was quite young, he was asked what he wanted to "be" when he grew up, and he replied, "I want to be a Rattlesnake!"
As a few others have mentioned, get away from computers, get away from code, get away from showing them how you program. It will go in one ear and out the other, if that is they can stay awake long enough while you drone on.
:-)
You want to do something physical, that will capture the kids attention, teach them something fundamental about what you as a programmer do, and most of all let them have fun and laugh.
A couple of ideas..
have a kid be the computer, give them some cut out shapes and ask the other kids to get the computer to assemble the shapes into some object, say a house. But you make sure that the computer can only do exactly what the program says.
you be the computer and do some cooking, show them how a recipie is just like a program, and you have to follow it exactly or something won't go right. Of course, the kids get to eat the results
have the children tell you how to perform a task, while you are performing it, make it funny by making exagerated mistakes because the children didn't tell you exactly what to do.
Logic and process are the fundamentals of programming, and a surprising number of people don't *know* that (amazing how often you hear "but the computer should know that" from adults), instilling this is the best way you can show what you do, and what you do is to tell a computer how to logically follow a process to the letter.
NZ Electronics Enthusiasts: Check out my Trade Me Listings
I remember an anecdote from Ted Nelson's Computer Lib book about how one guy demonstrated programming to kids. He did it by pretending to be a robot, and the kids had to give voice commands to do some simple task like walk across the room and pick up an object. I'll give you an idea (I'd do this on separate lines as a script but the goddam lameness filter doesn't like it)
You: Begin. Kids: walk across room. Y: error. Kids: walk forward. Y: error. K: walk Y: error, hint try 'lift foot.' K: lift foot. Y: error, which foot? K: lift left foot. Y: error, how high? K: lift left foot 12 inches. Y:
I think you get the idea. Kids love to boss other people around, and you have to get them thinking about breaking down simple things they know. You could even give the kids activities of creating short "scripts" on the blackboard once they figure out how to make each stride, etc.
Since you want to demonstrate Microsoft programming tools, I'd suggest you bring some visual aids, like a bottle of gasoline and matches to set yourself on fire at random intervals.
1). Get Kids to bring in Mommy and Daddy's credit cards :)
2). Demonstrate online shopping
3). ???
4). Profit !!!
If you can find it I'd recommend Apple Logo. That's how it all started with me back in 1984. It's a great language for kids and it shows them the basics of programming logic etc.
How did you use all the advicem and how did the presentation go?
Okay-
No one here seems to get it. Let me simplify it for you! You are there to be supportive of your child.
The teacher will have a set routine for this whole "production". You will not have very long to explain or show anything. You are there to answer a few questions. Career day is not about the parent or even really the career, it's about the child. Think that over and re-focus your efforts.