Software Engineering Demo for a K-5 Career Fair? 310
gmjohnston asks: "A local elementary school is having a Career Fair in a couple of weeks and I
volunteered. The idea is for parents with various jobs and careers to show and tell the kids a little bit about what their's is, why they think it's interesting and rewarding, etc. It's to try to give kids a little early exposure to some of the diverse kinds of things one can do with one's life. I'm a software engineer, so I'd like to show something that has to do with programming or Computer Science, but which would be interesting
to an elementary school student." What would be the best way to illustrate what a software engineer does to a group of primary school kids?
"I'm trying to come up with something like what got me hooked way back when, which was when my Organic Chemistry professor in college showed me a listing of a Basic program (Basic Plus on a PDP-11/70 running RSTS/E if you must know) and I realized that, computers relied on a bunch of instructions that tell the machine what to do, and that if I could change the instructions then I could make the machine do what *I* want it to do! I'll have my laptop with me and I'll be at a table that the kids will be able to gather around and see the screen (or potentially do something themselves on the laptop, depending on what I come up with). Of course, showing them the kind of code I really work on (software development tools) would likely instantly bore them to death. So, the question is: What should I show? If other Slashdot readers have done this kind of thing, what did you do and how did it work out?"
Start with Basic (Score:5, Insightful)
Bi- or Dual-Sex Examples (Score:4, Insightful)
I'd suggest showing off software about music, the WWW, instant messaging or IRC, or non-NeoMasculine games a la Madden.
In the end, consider asking any kids with your family or friends what they think is cool PC-wise. They should be able to give you insights that an adult wouldn't have the perspective to realize, and will help make your presentation a winner.
It's not what you show, it's how you show it. (Score:4, Insightful)
You should completely splitt between what you do on your job and what computers can do. Prepare a show-and-tell only lecture and pratice to explain things in a way kids of this age will find interessting. Maybe tell a story or two of interessting tidbits of your profession in general. Keep in mind that they (children) have a different sense of humor and less concepts of apstraction
The other thing is a practical one, which lot have provided suggestions to allready. I'd like to point out that you might want to explain to someone who isn't the usual future geek and all into gameboy and electronic toys allready the nature of computers and how to program them. I'd suggest a simple program that displays the fascination of automation. Maybe a very simple, tile based turtle program enviroment with your own simple set of commands (go, stop, on, off, forward, backward, left, right, north, south, east, west,... you get the point). It should be good enough to display the basic concept of computers (programmability and automation) but be easy enough to do in a time where a group of kids each can get their own shot and everybody can watch without getting bored. Both units, the show and tell and the little programming part shouldn't take any longer than 30-45 minutes each for a group of 10 children. Anyone more curious should have a chance to ask you more questions though.
My 2 cents from a geek who's been a teacher for some time aswell.
Re:Graphical stuff it the way to go (Score:5, Insightful)
Just some tips (Score:2, Insightful)
Beakman's World (Score:5, Insightful)
You need things:
On the whiteboard you write the Requirements:
The CPU is only allowed to execute instructions that are written on a whiteboard by the Engineer.
The CPU is to be as literal as possible when interpreting the instructions - so if the instructions are:
Then the CPU should pantomime throwing something, because the Program does not include the instruction "Pick up the ball".
Start with just the "Requirements" on the whiteboard. As the kids come up, you explain the rules, and let them tell you what instructions to write down.
You can even have a bit more fun - if a kid starts suggesting your standard juvenile crap ("Have him scratch his butt <snicker>") you can pull a Donald - "You have been caught goofing off at work - YOU'RE FIRED!".
If you are real meanie, you can even do more of the experience:
They know what a computer is... (Score:2, Insightful)
On a slightly related note, I knew a kid who, after watching a man drive a big truck up to his parents' house and operate a bunch of complicated machinery, told everyone that he wanted to pump out septic tanks for a living.
Agreed (Score:3, Insightful)
Re:Robot arm and LOGO on a laptop. (Score:3, Insightful)
Re:cubicles (Score:2, Insightful)
they already do it..
that's what we call "education" these days.
Don't use 1980s metaphors (Score:1, Insightful)
- Don't use LOGO
- Don't use computer games
Are there any Software Engineers out there that use BASIC or LOGO? Don't use 1980s metaphors. And, how many jobs are there that program games compared to the vast majority of corporate programmers.
IMO, show them real stuff, like behind the scenes of an eCommerce site to buy books or buy music online. Or show them conceptually how messenging applications work. Some software engineer had to have architected the application.
You have to use alot of coloured diagrams to get the picture across; heck show them a real UML diagram; these are dumb enough.
For the past few years... (Score:5, Insightful)
It's a great deal of fun, and believe it or not, it won't bore them. Adults fear engineers (especially software engineers) because they think what they're doing is something that they cannot do.
As a result, they actively ignore your attempts to educate them. They think it's just out of reach and would rather appear rude and bored than stupid.
Of course, kids don't know this yet. They're fully willing. They most certainly will understand graphs, functions, tries, and so on. They'll understand it because [as we know] it's not hard, and they're not yet programmed to avoid it.
Show them LOGO; Show them C; Show them the inside of what they think a computer is, then smash open the hard drive and toss the platters around.
They'll love it.
Show them what it means to hack, and how much enjoyment it can bring. Show them your adhoc EIDE hotplug system (so they can try it at home) - show them anything you can. They most certainly will follow.
I must say, there's nothing quite like a third-grader asking why we "don't just all use assymetric cryptography all the time", or how the world let Ben Franklen get away with messing up the plus-minus on battery schematics.
The teachers monitoring you will roll their eyes, but the kids _will_ get it.
Show them they can be in control (Score:2, Insightful)
What you bring to the table is something else. Programming opens up the possiblity of control, something that kids don't get much of.
I think your on the right track, show them that they can make the computer do what they want. This is what made programming compelling to me as a child.
As to how, I know it is not as powerful as some other choices, but have you considered just using HTML? I know it isn't a programming language in the strictest sense, but it doesn't take much to show the basics and it is both usable and useful. It would not convey much programming, but it would convey the basic idea, computers obey coded commands that you give in a special way.
Re:The Tandy COCO Guy! (Score:2, Insightful)
Nooooooooooooooo!
". .
Now this is where the truth lies, at bit level. I like to start, not with a computer at all, but with a bag full of Othello chips (or something similar) and demonstrate in a very clear, graphical and hands on sort of way exactly what is going on inside of the little computer brain, and then show how these arrangments of binary numbers represented in physical medium can be at control of the programer to create whatever it is you wish to have appear on your computer's monitor.
Like, a game, which also gives a chance to demonstrate the importance of getting a good foundation in mathematics and physics if you want to do really cool shit with a computer, and, let's face, it, games are what's going to get the kids exited, not the commandline or beowulf clusters.
KFG
Simple. (Score:1, Insightful)
2) Teach them how the local unemployment system works, do they need to call in, fill in a card, what?
3) Teach them about the cult, err universities, that will suck the money right out of their pockets with a vacuum cleaner, in exchange for reading 150$ textbooks with a disgruntled professor.
4) Teach them that about 90% of what they paid to learn in the cult will be a) useless, b) forgotten in two years as all you can get are entry-level jobs so when you *do* get a good job, you have to learn over again at your own expense anyways.
5) Teach them that working in a field that involves cheap commodities like computers and software and is saturated with cults and people, will mean they have to compete every day for the rest of their lives to fight for crumbs.
6) Teach them to interpret HR "requirements" like "5 years experience for 1 year old software": it means HR lives on Mercury, where the year is 88 Earth days.
7) Teach them how to make a CV that's full of lies that can't be contradicted (because everyone else does, because of #6 and #5).
8) Teach them how to suck up in interviews, and how to handle the pseudo-scientific clap-trap like graphology and personality tests that pervade the HR field.
9) Teach them to leave computers at home and get a real job, like starting their own business.
Suggestions... (Score:2, Insightful)
I don't think that this will make the right impression on kids. Robotics is only one of several interesting hardware/software/compsci fields, but are you using a robot arm on your job every day? Though so...
(If you do, let me know. I for one welcome our robot-arm wielding software overlords!)
Don't get me wrong; I'm not saying you should pull up vim and code in C! Rather something with a nice "whoa! factor" that is still applicable to your job?
Bring a couple of devices, an iPod, a serial adapter, a mouse, and have a couple of demos ready. Explain how MP3s work. Something tangible is much more interesting!
I guess what I'm trying to say is that you shouldn't give the kids a wrong impression about your work. Be honest. Those little buggers know when you are lying to them.
Re:Beakman's World (Score:2, Insightful)
Re:The Tandy COCO Guy! (Score:2, Insightful)
On the other hand it is soooo hard to show accomplishment anymore. When I was a youngster, printing my name 8 billion times on the screen was fun.
10 print "Joe was here. ";
20 goto 10
Now, the student expects to integrate video before the end of class.
I realize that you could teach the students an IO package (Java Swing, MFC, GTK, etc.), but then we are back to the point where the student isn't really learning what is going on, only the magic of the IO package.
For instance, 20 years ago, my grandmother took two college courses in Pascal, but it didn't really help her use a computer. At the end of the classes, she understood Pascal (actually top grade in the class), but not computers or programming. Her comfort level hadn't changed.
I think assembler may be more exciting than BASIC. I was very excited to learn VAX assembly after only having programmed a TS1000 and a C64. I was able to guess at how the whole computer worked, because I understood the building blocks.
All that said, I'm a lousy teacher.
Joe
Re:The Tandy COCO Guy! (Score:3, Insightful)
GAAAaaahhhhhh!
Quick - learn smalltalk [squeak.org] and tote along some toys from Squeakland [squeakland.org].
The next generation will thank you someday ...
Re:Realistic? (Score:3, Insightful)
As for computer programming, not much point getting into that. The market's saturated, and it's shrinking rather than growing, with jobs all going to India. Everyone and his dog has a computer science degree, but you can never find a decent tradesman when you want one.
Also, there is no such thing as 'software engineering'. Calling something engineering doesn't make it so. Professionaly, the word 'engineer' has a precise legal definition, and calling yourself one when you are not is illegal.
Re:Bi- or Dual-Sex Examples (Score:3, Insightful)
Not really. Girls will enjoy a sports game or FPS as long as screens are not two yucky and somone teaches them how to play. What's not going to happen is them spending long hours alone to learn the controls or to beat some 1331 d00d on server stats page. They have better things to do with their free time, like grooming or talking on the phone with girlfriends.
Re:Realistic? (Score:2, Insightful)
In Texas at least it is quite legal, as determined by the Texas Board of Professional Engineers.
Not in Ontario. To call yourself an engineer, you can either
a) Maintain an engine b) Have a degree in engineering (and do a few other things) and become a member of the Professional Engineers of Ontario.
However, if you graduate with a degree in Software Engineering (something my university offers), you can become a member of the PEO.
Re:The Tandy COCO Guy! (Score:3, Insightful)
Re:Realistic? (Score:4, Insightful)
The problem is that the term is terribly misused. The first comment I read here involved endless coffee and coding - that's not software engineering.
Analogy:
Software engineering:coding::Civil engineering:plumbing
Another analogy:
Computer Science:software engineering::Physics:civil engineering
The problem is that software engineering is such an embryonic field right now - there are effectively no widely recognized standards of practice, no standardized testing, etc. for it to come to the same level as most other engineering disciplines.
The coders aren't doing much to change this, nor are the true computer scientists. Ultimately, CS will have to contract to a more self-contracted science, coding will revert to a trade, and software engineering will somehow emerge in the middle.
It's not MS/Oracle/etc. that need software engineering, nor are they driving it. It's coming out of Boeing and other large traditional engineering firms dealing more and more with code that DO take responsibility for their work (that's one of the first tenets of a professional engineer) and have no comfortable way now of determining if the work of their individual engineers is good or not.
Bottom line, from the perspective of a professional engineering firm, MS and all other software firms that follow their model of deniability of responsibility are absolute train-wrecks. At some point, a MS buffer overflow or some other dipshit problem will cause a major direct and obvious financial or human life crisis and the Congressional hearings will begin. Software engineering as a widely recognized discipline will be the result.