Slashdot Mirror


Software Engineering Demo for a K-5 Career Fair?

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

24 of 310 comments (clear)

  1. Realistic? by RobertTaylor · · Score: 5, Funny

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

    1. Re:Realistic? by sgant · · Score: 5, Funny

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

      --

      "Leo Fender was in a 'state of grace' when he designed the Stratocaster." -- Paul Reed Smith
  2. The Tandy COCO Guy! by filmmaker · · Score: 5, Interesting

    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 and another one.

    ps, mffp? (my first first post?)

  3. Truth in education... by kclittle · · Score: 5, Funny
    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.

    --
    Generally, bash is superior to python in those environments where python is not installed.
  4. My first suggestion... by EmagGeek · · Score: 4, Funny

    A basic understanding of how to speak Hindi...

  5. Graphical stuff it the way to go by barcodez · · Score: 4, Interesting

    Something like Povray 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.

    --

    ----
    1. Re:Graphical stuff it the way to go by Chemisor · · Score: 4, Insightful

      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.

    2. Re:Graphical stuff it the way to go by kryptkpr · · Score: 4, Interesting

      Agreed on the fractals! Fractals are cool!

      A Sierpinski Sieve 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.

      --
      DJ kRYPT's Free MP3s!
  6. Games by BridgeBum · · Score: 4, Interesting

    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. :-)

    --
    My UID is the product of 2 primes.
  7. Show them how you spend your free time... by Anonymous Coward · · Score: 5, Funny

    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!

  8. Start with Basic by EdZ · · Score: 5, Insightful

    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.

  9. That's scary sounding. by Anonymous Coward · · Score: 4, Funny

    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.

  10. Question. by gerardlt · · Score: 5, Funny
    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?

    --
    /* This sig is disabled. Press CTRL-W to enable. Thankyou */
  11. Early Programming Memories by bigtallmofo · · Score: 4, Informative

    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.

    --
    I'm a big tall mofo.
  12. Robot arm and LOGO on a laptop. by Speare · · Score: 5, Interesting
    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.

    --
    [ .sig file not found ]
  13. There was a dilbert about this by acomj · · Score: 5, Funny

    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.

  14. The best way to illustrate... by MondoMor · · Score: 5, Funny
    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.
  15. Unrealistic by Col.+Bloodnok · · Score: 4, Funny

    Or turn up in a sports car with a leggy blonde on your arm.

    (You may need to rent these items...)

  16. Beakman's World by wowbagger · · Score: 5, Insightful
    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....")

  17. Simple Paper Turing Machine by DrJimbo · · Score: 5, Interesting

    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.

    --
    We don't see the world as it is, we see it as we are.
    -- Anais Nin
  18. For the past few years... by mrsbrisby · · Score: 4, Insightful

    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.

  19. Now, now ... by ggvaidya · · Score: 5, Funny

    They won't *all* end up EA employees ...

  20. A Classic Game (easy to understand) by Prien715 · · Score: 4, Interesting

    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.

    --
    -- Political fascism requires a Fuhrer.
  21. Fight Invisibility by Coppit · · Score: 4, Informative
    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 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.