Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
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:
  • Realistic? (Score:5, Funny)

    by RobertTaylor ( 444958 ) <roberttaylor1234@NoSpAM.gmail.com> on Sunday March 13, 2005 @10:10AM (#11925666) Homepage Journal
    Bring loads of coffee in with you and feed it to the kids to get them hyper, give them all keyboards and glasses to simulate eye strain. Break their wrists to simulate RSI and get a megaphone with someone shouting 'code faster'...
    • Unrealistic (Score:4, Funny)

      by Col. Bloodnok ( 825749 ) on Sunday March 13, 2005 @10:24AM (#11925730)
      Or turn up in a sports car with a leggy blonde on your arm.

      (You may need to rent these items...)
    • by Anonymous Coward
      For the sake of your children in school don't go
    • by ggvaidya ( 747058 ) on Sunday March 13, 2005 @11:49AM (#11926113) Homepage Journal
      They won't *all* end up EA employees ...
    • by sgant ( 178166 ) on Sunday March 13, 2005 @11:50AM (#11926121) Homepage Journal
      Also, don't bathe for a few days beforehand, make sure your hair is as messy as possible.

      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...
      • Re:Realistic? (Score:2, Interesting)

        by Seumas ( 6865 )
        Speaking of realistic - isn't it a little _un_realistic to be conducting a career fair for kindergartners through fifth graders?! Christ, let 'em be kids for a little bit. Next thing you know, they'll have to pick "vocations" in junior high. That's how schools in this city started to go about a decade and a half ago. You picked "constellations" of vocations to go into. Yeah, that's great. Rather than gearing kids toward college, they geared them toward "writing" or "car mechanics" and such. Might as well st
        • Re:Realistic? (Score:3, Insightful)

          by drsquare ( 530038 )
          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 trades
          • Re:Realistic? (Score:2, Interesting)

            by endx7 ( 706884 )

            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.

            In Texas at least it is quite legal, as determined by the Texas Board of Professional Engineers. It may be legal in other states....I don't know, I just googled it real quickly. In addition, the US Dept. of Labor [bls.gov] says there is such a thing as a Computer Software Engineer. In addi

          • 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.

            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.
  • The Tandy COCO Guy! (Score:5, Interesting)

    by filmmaker ( 850359 ) * on Sunday March 13, 2005 @10:11AM (#11925669) Homepage
    Every so often you see a post from someone who's thankful that they learned on a C64, since it was possible to "know everything" about the system, down to the bit. For me, that same thing is true, except with a Tandy COCO1 (and later COCO2).

    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?)
    • by kfg ( 145172 )
      ". . .have them see very basic principles in BASIC. . ."


      ". . .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
      • I kind of agree about BASIC. At the very least, I understand what motivates you to post that.

        On the other hand, though, it seems like BASIC is a perfect choice for a K-5'er since it's relatively clean, and it great for very, very simple stuff, like demonstrating what a variable is. Or showing a simple for loop. Those concepts that are so elementary as to be transparent to you are the very ones that the COCO books showed me so well, and for which BASIC was a great platform for learning.
        • 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.
    • by battjt ( 9342 )
      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 th
    • by Y2 ( 733949 )
      My recommendation for the kids is to have them see very basic principles in BASIC ...


      Quick - learn smalltalk [squeak.org] and tote along some toys from Squeakland [squeakland.org].

      The next generation will thank you someday ...

  • by kclittle ( 625128 ) on Sunday March 13, 2005 @10:12AM (#11925672)
    What would be the best way to illustrate what a software engineer does to a group of primary school kids?

    Show them how to quickly switch the browser window away from /. whenever the PHB comes by.

  • by EmagGeek ( 574360 ) <(gterich) (at) (aol.com)> on Sunday March 13, 2005 @10:12AM (#11925674) Journal
    A basic understanding of how to speak Hindi...

    • Also useful for the K-5 kids who don't like science. Careers Teaching English as a Second Language in India -- but more likely teaching people in Lesotho and Cambodia to sound Nebraskan by the time these kids get out of school.
      • but more likely teaching people in Lesotho and Cambodia to sound Nebraskan by the time these kids get out of school.

        Or teaching Nebraskans how to sound Lesothan by then.

  • by barcodez ( 580516 ) on Sunday March 13, 2005 @10:12AM (#11925675)
    Something like Povray [povray.org] or just plain old fractal generation and manipulation which can be done in about 40-50 lines of code - change the code show them the result - let them have a go.
    • Mod parent up. By letting them futz around with a limited set of live code, and immediately seeing what differences their input made, it should hook some of them. Best yet, leave the code with the kids and they can take it home and do it themselves.
    • 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.
      • Although the code is reasonably simple, it is very mathematical, and that is not something modern children can understand.

        Modern children can understand math quite well, they just need to be shown how fun and interesting it can be. I think this could be a great opportunity to do just that. Generate a fractal such as the Mandelbrot Set [ddewey.net] where a very simple mathematical formula produces beautiful images. Kids could experiment with zooming in to find interesting regions of the set. More advanced kids could

    • by kryptkpr ( 180196 ) on Sunday March 13, 2005 @10:46AM (#11925837) Homepage
      Agreed on the fractals! Fractals are cool!

      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.
    • I agree with you that creating something visual is very rewarding but my suggestion instead of povray would be Processing [processing.org].

      "Processing is a programming language and environment built for the electronic arts and visual design communities. It is created to teach fundamentals of computer programming within a visual context and to serve as a software sketchbook. It is used by students, artists, designers, architects, and researchers for learning, prototyping, and production." Where you can show the examples
  • cubicles (Score:2, Funny)

    by PoopJuggler ( 688445 )
    Bring a cardboard box and a chair and make them sit in it for 8 hours a day for the entire school year...
  • Games (Score:5, Interesting)

    by BridgeBum ( 11413 ) on Sunday March 13, 2005 @10:12AM (#11925678)
    How about write a simple game which has easy to change features, like colors or something. Then, show the kids the game, and show them how they can change the game.

    Probably an interpreted language would be best for this. BASIC had it's moments, back in the day. :-)
    • I recommend the Qbasic "Gorillaz" demo, where monkeys would throw banannas at each other. It's complex enough to be entertaining but simple enough that you could show the colors changing or the banannas flying differently. Source is here [ucam.org], though you may have trouble finding a copy of Qbasic.
    • Agreed (Score:3, Insightful)

      by gr8_phk ( 621180 )
      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.
    • Back in the days of DOS, everyone had qbasic on the machine. These days qbasic is no longer included with Windows, although there used to be some dostools (?) package you could get with all the old stuff. So where would kids get any programming tool on their computer? No basic, and, hell, even no 'debug'! (remember that? :) Looks like the next generation is not expected to program anything. Perhaps we could petition Microsoft to start shipping some type of compiler/interpreter with Windows?
    • by Prien715 ( 251944 ) <agnosticpopeNO@SPAMgmail.com> on Sunday March 13, 2005 @11:57AM (#11926155) Journal
      When I was little, I remember my first program was the old guess a number game. You know, the computer picks a number between 1 and 100 and you try to guess it. (It tells you higher or lower). I remember actually being able to understand it and thus this is may be appropriate for younger audiences. If you'd like to modify the program, you can change the bounds (from guess between 1 and 100 to guess between 1 and 1000). I also think you could write this in 10-20 lines of code (very very short!)

      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.
  • by Anonymous Coward on Sunday March 13, 2005 @10:12AM (#11925679)
    Bring in some anime DVD's, some pr0n, an empty pizza box, and a crusty sock. If that doesn't convince them, I don't know what will!
  • 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.
  • Simple (Score:4, Funny)

    by stinkydog ( 191778 ) <(ten.godegnarts) (ta) (ds)> on Sunday March 13, 2005 @10:13AM (#11925684) Homepage
    Show them how to write a BitTorrent client in LOGO. All the kids are doing it.

  • by Anonymous Coward on Sunday March 13, 2005 @10:13AM (#11925685)
    What would be the best way to illustrate what a software engineer does to a group of primary school kids?

    It depends on the programmer. I wouldn't do anything to them at all.
  • Question. (Score:5, Funny)

    by gerardlt ( 529702 ) on Sunday March 13, 2005 @10:14AM (#11925688)
    What would be the best way to illustrate what a software engineer does to a group of primary school kids?

    What do software engineers do to primary schools kids?

  • by bigtallmofo ( 695287 ) on Sunday March 13, 2005 @10:14AM (#11925689)
    I can remember 22 years ago when I was 10 years old watching my math teacher at the time programming in BASIC on the one Commodore Vic-20 that we had in the classroom. For whatever reason, I was fascinated with the mystery of how this guy knew the right things to type in to make the computer do what he wanted.

    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)

    by Racher ( 34432 )
    This seems obvious to me... Logo Primer [mit.edu]
    • Re:Umm... Logo? (Score:2, Informative)

      by DRWeasle ( 605307 )
      How much time can you take with a group of kids?

      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.
    • Even better: StarLogo [mit.edu].
      Runs in Java, you can spawn hundreds of multicolored logo turtles and make them all move in sync (or randomly) using the same 5-line logo program from the console - type in a line and watch the turtles obey.

      Plus, they have ready-made projects (Click on Projects from the main page) that are all set to go, simple and super-cool visually, from "Slime-mold cells aggregate into clusters, using a chemical pheromone" to "Diffusion Limited Aggregation. Create fractals with simple rules".

    • Mindstorm (Score:2, Interesting)

      by alder ( 31602 )
      Or... Mindstorm [lego.com] - less abstract, hence IMHO for the beginners could be more attractive. And... you can keep the kit to play with it after the fair ;-)
  • by Speare ( 84249 ) on Sunday March 13, 2005 @10:16AM (#11925699) Homepage Journal
    Bring a laptop which can demonstrate how computers follow your instructions. Maybe LOGO or some other kid-obvious language.

    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.

  • by acomj ( 20611 ) on Sunday March 13, 2005 @10:17AM (#11925704) Homepage
    Dilbert in front of a class:

    "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.

  • by MondoMor ( 262881 ) on Sunday March 13, 2005 @10:19AM (#11925710) Homepage Journal
    What would be the best way to illustrate what a software engineer does to a group of primary school kids?
    To illustrate, I'd draw a picture of an overweight, pale man with bad facial hair. Next to that, I draw several hundred children with looks of repulsion and disgust, then one kid with glasses with a longing, wistful look on his face.

    Then I'd color it with bright primary colors and cel-shade it because cel-shading is fucking RAD.
  • Something else... (Score:3, Interesting)

    by andy55 ( 743992 ) * on Sunday March 13, 2005 @10:20AM (#11925713) Homepage

    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.

  • Take a globe with you. Point out the United States on the globe, then spin the globe and show them India...
  • 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.
    • 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
      • It's been my experience that guys vastly overestimate girls' interest in seeing sports on a screen. But let's set aside the Mars/Venus stereotypes and simply acknowledge that a large chunk of the kids (probably mostly girls, but that's not the point) will find something like a football, racing, or shooter game actively disinteresting. You may not be able to find a demonstration subject that'll interest everyone, but try not to pick one that's going to turn a lot of them off.
  • by Nine Tenths of The W ( 829559 ) on Sunday March 13, 2005 @10:24AM (#11925732)
    ." What would be the best way to illustrate what a software engineer does to a group of primary school kids?

    Pick a random Indian kid and put him in charge of the stall halfway through.
  • Towers of Hanoi (Score:2, Interesting)

    by arrowman ( 637725 )
    Kids love to solve puzzles. Well, some of them at least. Bring Towers of Hanoi (physical plastic). Let them solve it (three piles of 5 disks). Then let them figure out the solution for the general case. Help them a little bit. Start with 2 disks and build it up from there. Finally, let them code the solution in Python, or some other intuitive language with an easy syntax. Prepare some routines that visuallize on the screen what's happening (e.g. moveDiskFromPileToPile(fromPile,toPile)), so they actually
  • Explain to them that the entire world is run by computers, and by doing things in the computer, you can affect the "real world". Then hack the school lunch network while they watch and transfer everybodies lunch money into your kids account. "And now you all have to ask Tommy for lunch, because Tommy knows computers, and you don't!" Not a direct endorsement for software design, but it'll get them to see nerds in a whole new way. Oh, then teach your kid how to fight.
  • when I was around that age was HyperCard. I'm not sure if it's still made, or if there is a reasonable facsimile for Windows. Also, I would suggest LOGO, as it is simple and easy to see results. But HyperCard is the best bet, because it is fairly easy to understand, and, like LOGO, it is easy to see the results.

    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)

    by yotto ( 590067 ) on Sunday March 13, 2005 @10:34AM (#11925782) Homepage
    If you want to get the kids interested in your job, pretend to be a fireman.
  • I'd show them a simple simulation. Something with some easy to understand graphics and controls.

    Watch Uncle Bill open the valve that feeds water into the methyl-isocyanate tank. Can you say "RUN!!!"?

  • 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.
    • 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
  • Show 'em how to read slashdot!
  • Just some tips (Score:2, Insightful)

    by StupidHaiku ( 867362 )
    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 :)
  • I have a friend who worked on a porn-site. Are you catching my drift? ;)

    Anyway, where I am finishing my latest contract right now, I could show the kids what it really means for some people to work in IT industry. You know, a guy walks into the doors of the company as a junior developer, spends a year kissing up, licking ass, sucking dick whatever it takes. The guy becomes a 'team lead', and is given powers of basically a project manager for multiple projects. Well, it's easy enough since most people i
  • 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....")

    • I agree with the parent poster about doing something non-computer related. If you wanted to be more interactive, you might do the standard "make a peanut butter and jelly sandwich" ... (WITH PLASTIC KNIVES, otherwise the retarded teacher-drones will freak out).

      Have little boxes drawn on a piece of poster board labeled box 1, 2, etc), and put the jelly, bread, etc in each of the different boxes.

      Have 2-3 kids writing down instructions, and another take the instructions one at a time and read / execute them
    • Re:Beakman's World (Score:2, Insightful)

      by waffffffle ( 740489 )
      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 but
  • http://www.squeakland.org
    • You can build a 3D environment interactively in Squeak, then program it to do stuff. This takes all of maybe 10 or 20 minutes, once you get the hang of it, and it shouldn't take you more than an hour at home to get the hang of it.

      See the Wonderland 3D Fishbowl Tutorial [consultar.com] for Squeak. You really owe it to yourself.

      I should point out that I had an issue with an exception when I tried to "pop" the 2D fish I drew into a 3D shape. If you have the same issue, I can send you the solution upon request. If I re

  • 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 e

  • by DrJimbo ( 594231 ) on Sunday March 13, 2005 @10:55AM (#11925871)
    When I was a young kid, very many years ago, I was introduced to computers and programming in a summer school for bright students.

    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.
  • " What would be the best way to illustrate what a software engineer does to a group of primary school kids?"

    Reprogram them.
  • Kids will like
    1) Coffee
    2) High-resolution displays
    3) Violent video games

    Tell them that you get to drink coffee, look at high-resolution displays, and make video games.
  • JASON Project (Score:4, Interesting)

    by Liquid-Gecka ( 319494 ) on Sunday March 13, 2005 @10:57AM (#11925889)
    The Computer Science Club at Boise State University just did a presentation for ~6th graders. We presented on the inner workings of AI by showing them the complete production of a evaluation tree using a java program we wrote.

    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.
  • by bungley ( 768242 ) on Sunday March 13, 2005 @11:00AM (#11925901)
    They're only young, at least give them a chance to have a life when they grow up. In fact, it's probably your moral obligation to scare them off software engineering -- I wish someone did it to me.
  • Show them Squeak! (Score:2, Informative)

    by Nagus ( 146351 )
    Squeak [squeakland.org] is an environment that is meant, among other things, to be used to teach children about programming and computers.

    It's difficult to explain what it does. If I understand correctly, it is at the same time a "personal 3D environment" which can be shared, a customizable programming environment, a kind of window manager, and a teaching tool.

    The special thing about it is that any part of the environment can be edited on the fly, and reprogrammed/modified. This was demonstrated by Alan Kay at his Turing
  • by meckardt ( 113120 ) on Sunday March 13, 2005 @11:17AM (#11925981) Homepage
    Here's one that my wife uses (she's also a geek):

    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.
  • 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.

  • There are people who build the bridges and there are those who engineer them. What are you? There is a big difference here and unless you are going in to talk about Engineering then say you are a developer.

    I've got my BS in CompSci and just my thesis away from an MS in SW Engineering, there is a big difference. My advice, tell them you write programs. Convey that programs run stuff like the bank machines, coke machines and games. Explain that programs are all around us.
  • Suggestions... (Score:2, Insightful)

    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
  • Get a copy of Karel the Robot or some similar programmable robot package.
  • Guido van Robot [sourceforge.net] is a kid-friendly procedural programming environment written in Python. It is partly written by students for students, and features a grid-like world with a 'robot' icon (a triangle that has the letter 'G' in it) that can move around, walls, and 'beepers' that can be picked up or dropped.

    Interestingly enough, this setup is actually Turing-complete.
  • tell them that your job is the last refuge for the honest, in today's world full of deception and corruption, that writing programs is the oasis of sanity in a world gone bad. the computer (and the computer programs you write):

    • cannot be lied to
    • will not lie to you (unless you add that capability)
    • make plain your mistakes (unless you choose not to see)

    tell them what you do can be applied to how you do it. as you write programs (and fail to write programs), you can improve your craft and (given a

  • Typing on a computer isn't all that exciting and isn't all we do. I would tell them that you first spend time talking to people who need their computer to help them with their jobs. Then you need to draw pictures, like a brick and mortar architect, to plan your program. The you need to give the computer lots of simple instructions to build what you drew.

    If you're going to have some code with you, you could make it something interpretted and graphical. If you're a java guy, beanshell might be the way to go.
  • I have to make a major plug for Karel the Robot, which is the software package I use to teach logical thinking and basic OO design to my intro students. Karel is highly graphical, object oriented and (more or less...mostly less) language agnostic. I'm not sure what language you'd use, but there is a VERY easy to learn Java Karel library here [pace.edu].

    In fact, I have an idea for your presentation. As part of my unit on looping and recursion, I've written a set of classes that generates a maze that Karel has to trave
  • Just get a sign and hang it around your neck.

    "Will Code for Food - my job went to Bangalore!" ;-)
  • I was asked to do something similar for computer science. I came up with this [slashdot.org] swish presentation. It's good for a 20 minute timeline and students will recognized some of the pictures. I don't think students at that age are thinking too much about career opportunities but it does give them some exposure to careers other than the "guy/lady that hangs around the school fixing computers".
  • The Lego robots are incredibly useful for demonstrating how programs are written so if you can get a few take them along. Kids can take turns programming the robots to do simple tasks and then they can all watch the results.
  • While I was studying Math in college, one of my old high school teachers asked me to give a guest lecture to help encourage her students to continue their education. I was interested in computer graphics at the time, so I brought in my laptop and showed them a simple video game I had been toying with. It was a great success. I captivated their interest pretty quickly by bringing in something they normally associate with "play" rather than "school", and they had plenty of questions for me. The laptop was
  • An analogy to programming that really grabbed my attention when I was young and mushy-minded was this: programming is like building something out of LEGO bricks, but you never run out of the pieces that you need.

    A visual illustration might be to have a small number of LEGO bricks in a box (but not enough to build much), and then a screen displaying a basic program of some kind that lets you show how easy it is to make new variables or something.

    Having the basic program actually do something useful would b

  • Fight Invisibility (Score:5, Informative)

    by Coppit ( 2441 ) on Sunday March 13, 2005 @12:58PM (#11926423) Homepage
    Software is pretty invisible. The trick is to get across the idea of molding a program, without boring them with for loops and batch-oriented demos.

    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.

  • Squeak! (Score:2, Informative)

    by krasni_bor ( 261801 )
    Squeak! [squeak.org]
  • All of the comments seem to be advocating showing the kids what you do. Instead of boring them with technical details or demonstrations they can't understand, why not focus on why you do what you do.

    For example, one driving motivator for a lot of people is this notion that they are building something that benefits a large number of people.

    Kids, have any of you ever built a castle out of legos or a boat using capsella blocks? It's pretty fun isn't it? Ever show what you made to your friends or pare
  • My first year programming professor (Peter Millican) wrote this program to introduce us to Java (and those who had never programmed before to programming).

    http://www.comp.leeds.ac.uk/se15/TurtleJava/tur t le java.htm

    The advantage of using Turtle is that you can actually see what's happening. ie, forward(20), blot, etc.

    It's simple, easy to illustrate, and you can do some cool things with recursion. If you download it, go to the help menu and choose some of the code examples.

    I think primary school kids w
  • Don't go into coding, but how you design the elements, the action sequences, etc. Then tell them how you have fit these into the *limits* of a computer. Then show them how other [ interactive ] applications, e.g. a text-editor- resemble video games. Kids relate to video games.

I go on working for the same reason a hen goes on laying eggs. -- H.L. Mencken