Slashdot Log In
Software Engineering Demo for a K-5 Career Fair?
Posted by
Cliff
on Sun Mar 13, 2005 09:08 AM
from the getting-them-early dept.
from the getting-them-early dept.
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?"
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
Realistic? (Score:5, Funny)
Unrealistic (Score:4, Funny)
(You may need to rent these items...)
Parent
Now, now ... (Score:5, Funny)
Parent
Re:Realistic? (Score:5, Funny)
Don't sleep for 2 days beforehand either.
Oh, and at every opportunity keep asking to borrow a few bucks from each of the kids.
When a parent or school official comes by make sure you start shuffling papers and typing on a keyboard to show that "I'm doing something". Then when they walk away just mumble under your breath "damn Suits".
In fact, mumble under your breath quite a bit, and don't forget your red Swingline stapler...because they switched from the Swingline to the Boston stapler, but I kept my Swingline stapler because it didn't bind up as much, and I kept the staples for the Swingline stapler and it's not okay because if they take my stapler then I'll set the building on fire...
Parent
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 trades
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.
Parent
The Tandy COCO Guy! (Score:5, Interesting)
I found that the manuals they had, with the anthropomorphized computer dude, were exactly what I needed to learn. The funny thing is, those books were written for adults, but come across like child's manuals since it was assumed that even an adult would know *zero* about how computers work in the early 80's.
My recommendation for the kids is to have them see very basic principles in BASIC if possible, since it's so, well, basic - not that it really matters. What made it so exciting for me as a 8 year old kid was that it seemed possible to know and understand everything about the machine - especially since the book was comprehensive and it wasn't exactly huge. The combination of the cartoon character, the limited and reasonable limit on the total knowledge one could possess about the machine, and the simple, clear lessons engaged my child's mind completely and really sparked my imagination.
COCO manual [joeldalley.com] and another one [joeldalley.com].
ps, mffp? (my first first post?)
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:The Tandy COCO Guy! (Score:3, Insightful)
Truth in education... (Score:5, Funny)
Show them how to quickly switch the browser window away from /. whenever the PHB comes by.
My first suggestion... (Score:5, Funny)
Graphical stuff it the way to go (Score:5, Interesting)
Re:Graphical stuff it the way to go (Score:2)
Re:Graphical stuff it the way to go (Score:5, Insightful)
Parent
Re:Graphical stuff it the way to go (Score:5, Interesting)
A Sierpinski Sieve [wolfram.com] not only looks cool, but there is a very simple algorithm you can use to generate it:
- Pick 3 corner points. They need not be arranged in a perfect triangle (if they aren't, you will get a warped version of the fractal.. useful for illustration!)
- Start at any point inside the shape formed by the three corner points.
- Pick one of the 3 corner points at random. Your new point is half-way between your old point, and your chosen corner point. Plot a dot there.
- Repeat the above step indefinitely.
This is VERY simple code, it only uses very simple graphics intructions and changes to things like colors and corner points (moving them further apart, closer together, use equilateral or isoceles triangles...) give instant gratification..
As homework for the "Advanced" (curious) students, maybe let them try to make one (or more) of the three corner points interactive and move at runtime.
Parent
cubicles (Score:2, Funny)
Games (Score:5, Interesting)
Probably an interpreted language would be best for this. BASIC had it's moments, back in the day.
Agreed (Score:3, Insightful)
A Classic Game (easy to understand) (Score:5, Interesting)
Lastly, you could discuss the strategy of the game and how to win the most quickly (ask the question "Using this strategy how many turns would it take at most to win?"). You can call the strategy an "algorithm" and you've taught them more CS than they'll learn for the next 5 years.
Parent
Re:Games (Score:3, Informative)
Show them how you spend your free time... (Score:5, Funny)
Start with Basic (Score:5, Insightful)
Re:Start with Basic (Score:2)
Simple (Score:4, Funny)
SD
That's scary sounding. (Score:4, Funny)
It depends on the programmer. I wouldn't do anything to them at all.
Question. (Score:5, Funny)
What do software engineers do to primary schools kids?
Early Programming Memories (Score:5, Informative)
I think the things that fascinated me most at the time were seeing how programming languages could be used to create games. I spent many hours on my Commodore 64 typing in BASIC and ML source code from magazines like Compute!'s Gazette.
Umm... Logo? (Score:2, Informative)
Re:Umm... Logo? (Score:2, Informative)
Try putting together a predefined demo. Start it with a game the kids are familiar with, either a scholastic game the teachers currently use or get a G-rated game from the internet. Spend about 5 minutes or so demoing the game and describing how the game consists of instructions that tell the computer what to do. Give the opportunity to ask questions. Then when you think you have their attention, show them LOGO. Show how a simple command can make a square.
Robot arm and LOGO on a laptop. (Score:5, Interesting)
Demonstrate real-world applicability with a toy robot arm and a poster of a few industrial robot arms, which presumably work the same way.
Without programs, a computer is a doorstop. You know that. Help them know that. The rest is just talking about the incidentals, like whether or not your boss allows hackey-sack near the water cooler.
Re:Robot arm and LOGO on a laptop. (Score:3, Insightful)
There was a dilbert about this (Score:5, Funny)
"I work in a cube, its kinda like a bathroom stall but the walls are lower"
"I spend most of my days worring about the electronic fields from my monitor are killing me"
by the end all the children are in tears..
I like this approach. We have enough competetion, the fewer of us there are the more they'll have to pay us.
The best way to illustrate... (Score:5, Funny)
Then I'd color it with bright primary colors and cel-shade it because cel-shading is fucking RAD.
Something else... (Score:3, Interesting)
Computer games are of course always a possibility (and a good one at that), but there are other options. I make music visualizers for audio players, and I find younger folks take an interest in it all the time--from all ages. It appeals to kids that are into math and science because, to them, it's something really cool you can do with subjects that are geeky. It's something to consider, at least.
Use a globe... (Score:2)
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.
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.
My invaluable contribution (Score:3, Funny)
Pick a random Indian kid and put him in charge of the stall halfway through.
Towers of Hanoi (Score:2, Interesting)
Make it applicable to their life NOW (Score:2, Funny)
What got me hooked... (Score:2)
Of course, you could take the coward's way out and show them Half-Life 2, and say, "if you're a programmer, you can make games like this!"
Fireman! (Score:3, Funny)
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.
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:
Simple Paper Turing Machine (Score:5, Interesting)
We were each given (or made, I don't remember) a long strip of paper about an inch or two wide, with lines making it into a long row of squares, like a single row from a page of graph paper. Each square was like a memory location. We were also given a paper clip that acted like the instruction pointer.
There was a simple instruction set, I think they associated numbers with instructions, like move forward or backward so many squares and simple arithmetic. The whole class together worked through a simple program.
There were some downsides to this. Some of the kids were totally lost on what we were trying to do. So we had to go real slow which then made it very boring for me. But the upside was that when it was over, I understood how computers worked and that simple model has helped my throughout my life as a programmer.
The key is to be really prepared and work it all out ahead of time. Make sure you have the instruction set and the simple programs all worked out ahead of time. You might want to practice it a bit. Keep it simple. Treat it like a game with rules. Forget about being true to Turing, instead focus on giving the kids something they can do and understand.
Not all of the kids will "get it". But those that do will really understand what programming is all about. Especially when you combine the simple Turing machine with gee-whiz-bang stuff on your laptop.
JASON Project (Score:4, Interesting)
Here [boisestate.edu] is the download page for it. (I know I know! The site is default template. We just setup the new software last weekend so give us a break =)
Not sure if this helps younger kids get fired up but I did work for 6th graders. =) Its also fun to watch it generate and draw the tree.
Sick bastard (Score:3, Funny)
Demonstrate computer logic (Score:3, Interesting)
Decorate sugar cookies. Have kids give instructions. Do EXACTLY what they say. Gets the point across quickly how you have to be exact when you tell a computer what you want it to do.
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.
Fight Invisibility (Score:5, Informative)
Check out toontalk [toontalk.com] for a graphical programming environment that looks like legoland.
Also see how the objects-first people are teaching programming nowadays. In the first week of class they have people drawing faces using OO programming, without loops or branches. For example, they have the students create a drawing program using event callbacks.