Please create an account to participate in the Slashdot moderation system

 



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

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

  • Towers of Hanoi (Score:2, Interesting)

    by arrowman ( 637725 ) on Sunday March 13, 2005 @10:25AM (#11925740)
    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 see it work. Disclaimer: I've taught chess to primary school kids, but am no good in Towers of Hanoi whatsoever.
  • 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.
  • 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.
  • by Wm_K ( 761378 ) on Sunday March 13, 2005 @10:57AM (#11925885)
    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 of Complexification [complexification.net] on what they can achieve.

    Software engineering is ofcourse more than just programming. But being able to show some nice visuals can make it all much more interesting.
  • 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.
  • Mindstorm (Score:2, Interesting)

    by alder ( 31602 ) on Sunday March 13, 2005 @11:11AM (#11925948)
    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 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 Prien715 ( 251944 ) <agnosticpope@nOSPaM.gmail.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.
  • Re:Realistic? (Score:2, Interesting)

    by Seumas ( 6865 ) on Sunday March 13, 2005 @12:36PM (#11926330)
    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 start spitting out the little vocational drones early.
  • by kfg ( 145172 ) on Sunday March 13, 2005 @01:20PM (#11926528)
    As I suppose I'm showing mine by pointing out that my first high level language was APL, also implying that I was already of an advanced enough age at the time to be allowed to touch a mainframe terminal.

    I considered mentioning Smalltalk/Squeak, which I'm kinda fond of just messing about with myself, but I find one of the positive virtues of Python as a teaching language is the fact that it isn't a "pure" OO language. You can bend it to your will, rather than having to bend to its "vision" of what computer languages "should" be, so you can teach (and use) procedural and functional approachs just as readily as the OO approach, without having to learn a wholly new syntax and grammar just to learn a new conceptual architecture.

    I'm afraid I have some issues with OO as "the one true way" of programming, so I don't like using a pure OO language for teaching, prefering to introduce OO down the line as one methodology which proves useful in dealing with certain programming problems, like, say, modeling objects.

    KFG
  • Re:Realistic? (Score:2, Interesting)

    by endx7 ( 706884 ) on Sunday March 13, 2005 @01:53PM (#11926705) Homepage Journal

    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 addition, some universities are starting to offer Software Engineering majors.

    Me, I'm just a programmer.

Lots of folks confuse bad management with destiny. -- Frank Hubbard

Working...