Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Education IT

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?"
This discussion has been archived. No new comments can be posted.

Software Engineering Demo for a K-5 Career Fair?

Comments Filter:
  • Start with Basic (Score:5, Insightful)

    by EdZ ( 755139 ) on Sunday March 13, 2005 @10:12AM (#11925680)
    Set up a little Basic introduction, the old 'Hello World' schtick. 'Help' them type out the code (all 2 incredible lines of it!) and watch them marvel in thier instant command of the computer.
  • by anonicon ( 215837 ) on Sunday March 13, 2005 @10:24AM (#11925729)
    I'm honestly not whipping out a stupid Political Correctness stick, but try to think of demonstrating something that has a big /COOL/ factor for both sexes in your class, or demonstrate two things, each of which might appeal to either sex. Demoing Madden 2004 might work for the boys, but will probably be a bore to the girls.

    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.
  • by Qbertino ( 265505 ) <moiraNO@SPAMmodparlor.com> on Sunday March 13, 2005 @10:36AM (#11925788)
    I don't know how long or indepth this fair thing is, so you might have to adjust.
    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 ... which doesn't mean their to stupid to understand the interessting parts of what you do! In fact, 9 year olds can be even more on top of current scientific/technical things than the usual grown-up. It's just all about explaining it in a way that it doesn't bore them to death.
    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.
  • by Chemisor ( 97276 ) on Sunday March 13, 2005 @10:39AM (#11925801)
    I would argue against fractals. Although the code is reasonably simple, it is very mathematical, and that is not something modern children can understand. In fact, for the fifth grade, games are pretty much the only option, since when a kid thinks of computers it's either games or homework. And you definitely don't want them to associate computer science with homework; you'll ruin their surprize when they go work for EA.
  • Just some tips (Score:2, Insightful)

    by StupidHaiku ( 867362 ) on Sunday March 13, 2005 @10:46AM (#11925840)
    Everyone else will probably have better ideas about how to demonstrate software engineering than i do, but as an Elementary Ed. major, my quick advice to you is be excited about what youre showing them. Kids are like little radars when it comes to attitude, and youll rub off on them if you look passionate. Have fun :)
  • Beakman's World (Score:5, Insightful)

    by wowbagger ( 69688 ) on Sunday March 13, 2005 @10:48AM (#11925843) Homepage Journal
    Beakman's World did a pretty good demonstration about this, and you may be able to do an adaptation of that approach:

    You need things:
    1. A collection of Nerf balls (or other soft small throwable objects).
    2. A hoop of some sort.
    3. A whiteboard and dry-erase markers.
    4. A person to play the CPU.
    5. A person to play the Engineer.


    On the whiteboard you write the Requirements:
    Design a program to get the CPU to throw a ball through the hoop.


    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:
    1. Throw ball at hoop

    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:

    • The PHB, who randomly changes the spec
    • The Hardware Engineer, who designs the hardware ("OOPS! - the CPU cannot pick up the balls because the arm is too short! Hardware Revision!")
    • the Vendor ("Oh No! The balls have gone End-Of-Life, and we have to find a replacement!")
    • The Marketing Guy ("I can't sell this doody - make it sing too!")
    • The Auditor ("You have failed to use the proper font for your program - your ISO-9000 certification is revoked - unless you want to hire me as a consultant to help you be in compliance....")

  • by tomhath ( 637240 ) on Sunday March 13, 2005 @10:50AM (#11925858)
    Keep in mind that these kids have been around computers and game consoles all of their lives. It will be very difficult to impress them by showing them something on the screen, they've seen it all. What impressed you wasn't running a program; it was having the ability to change the instructions so the computer does something it didn't do before.

    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)

    by gr8_phk ( 621180 ) on Sunday March 13, 2005 @10:56AM (#11925873)
    When I was a kid and saw my dad programming, he said "I think I can use this to make games." Boring strange looking text on the screen was suddenly a way to do something I was interested in. Software isn't an end unto itself (for most people) but a means to something they're interested in. Games are universally interesting to kids, though you may find another interesting topic and regardless, you should tell them how software can also be applied to all sorts of other things they may be interested in.
  • by Speare ( 84249 ) on Sunday March 13, 2005 @10:56AM (#11925878) Homepage Journal
    Lego Mindstorms is more about the hardware than the software. You want to keep it simple: there is this arm thing, and it can bend in a number of ways, but it's up to YOUR PROGRAM to guide it properly. Focus on the software and how it is the master over a piece of dumb hardware.
  • Re:cubicles (Score:2, Insightful)

    by Not Public ( 257178 ) on Sunday March 13, 2005 @10:58AM (#11925892) Homepage
    ... pssst...

    they already do it..

    that's what we call "education" these days.
  • by Anonymous Coward on Sunday March 13, 2005 @11:14AM (#11925964)
    - Don't use BASIC
    - 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. :wq!
  • by mrsbrisby ( 60242 ) on Sunday March 13, 2005 @11:18AM (#11925986) Homepage
    I've actually done this at the local schools.

    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.

  • by vrimj ( 750402 ) on Sunday March 13, 2005 @11:22AM (#11926004)
    Kids get computers, they use them from a young age. They might not know the details, but they don't know the details on how the dishwasher works either.
    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.
  • by kfg ( 145172 ) on Sunday March 13, 2005 @11:23AM (#11926011)
    ". . .have them see very basic principles in BASIC. . ."

    Nooooooooooooooo!

    ". . .since it was possible to "know everything" about the system, down to the bit."

    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)

    by Anonymous Coward on Sunday March 13, 2005 @11:24AM (#11926018)
    1) Teach them to learn the local employment laws so they know how many weeks they have to work to be eligible for unemployment benefits (only works in civilized countries)


    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)

    by chris_eineke ( 634570 ) on Sunday March 13, 2005 @11:27AM (#11926030) Homepage Journal
    I have seen other slashdotters making the suggestion to bring a robot arm and then letting the kids interact with that arm using a programming language (i.e. LOGO-based).

    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)

    by waffffffle ( 740489 ) on Sunday March 13, 2005 @11:55AM (#11926142)
    Along the same lines, back in college this girl was telling me how she taught computer science concepts to little kids (I forgot what age). She was the computer and her task was to make a peanut butter and jelly sandwich. She stood up in the front of the classroom and took instructions from the students. When they told her to "put the peanut butter on the bread" she picked up the jar of peanut butter and sat it on top of the loaf of bread. She also at one point dunked her hand into the jar of peanut butter I think. This kind of activity seems best if you have an entire class of kids to watch you for a period of time, but if this is a fair then it might not work.
  • by battjt ( 9342 ) on Sunday March 13, 2005 @11:59AM (#11926163) Homepage
    Basic is so far removed from the hardware that it is difficult to explain. I've found C easier to teach than more abstract languages. Try explaining how a GUI button works in the context of "a computer is just bits right?"

    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
  • by Y2 ( 733949 ) on Sunday March 13, 2005 @12:25PM (#11926280)
    My recommendation for the kids is to have them see very basic principles in BASIC ...

    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)

    by drsquare ( 530038 ) on Sunday March 13, 2005 @01:08PM (#11926476)
    Vocational drones? Better that than a load of college drones. At lease with a vocation they can learn some skills and make money, rather than getting into massive debt just to end up with a piece of paper that's effectively worthless as every other fucker has one.

    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.
  • by iamacat ( 583406 ) on Sunday March 13, 2005 @01:54PM (#11926711)
    Demoing Madden 2004 might work for the boys, but will probably be a bore to the girls.

    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. /me affraid of being beaten by political correctness sticks
  • Re:Realistic? (Score:2, Insightful)

    by Toresica ( 788403 ) on Sunday March 13, 2005 @02:33PM (#11926941)
    Professionaly, the word 'engineer' has a precise legal definition, and calling yourself one when you are not is illegal.

    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.
  • by budgenator ( 254554 ) on Sunday March 13, 2005 @04:35PM (#11927650) Journal
    how about logo and turtle graphics, [sarcastic humor]if they are that's going to be obsolete in five years, shouldn't it be lisp based? [/sacrastic humor] the logo/turtle graphics was designed for K-5 er's. Imagine them trying to explain recursive programming to their parents; especialy when they really get it.
  • Re:Realistic? (Score:4, Insightful)

    by JohnsonWax ( 195390 ) on Sunday March 13, 2005 @05:26PM (#11927977)
    Actually there is a such thing as software engineering with a precise legal definition currently recognized by Texas.

    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.

All the simple programs have been written.

Working...