Slashdot Mirror


How Do You Explain Software Development To 2nd Graders?

First time accepted submitter zimania writes "At the start of every school year, my kids' teachers invariably ask if any parents have any special skills they can present to the students. As a software engineer, I'd like to give a presentation to the classes about developing software. The tricky part is making a presentation fun, inspirational, and easy enough for 2nd and 4th graders to grasp. Has anybody been brave enough to attempted such a thing? Are there kid-tested prepackaged presentations freely available? Would it be best to present the development of a simple game? Web page? Any advice is welcome."

38 of 430 comments (clear)

  1. Easy! by TheCouchPotatoFamine · · Score: 5, Interesting

    Have them stand together and execute a "program" as if each of them are "utilities". Something like getting an apple onto the teachers table, but each person does one thing and one thing alone. Then let them have fun seeing what they can figure out to do - so long as they still only do that one thing. This isn't about "code" it's about a way of thinking!

    --
    CS majors know the time/space tradeoff, but they never get taught the 3rd, crucial, tradeoff of the set: comprehension!
    1. Re:Easy! by istartedi · · Score: 2

      OK, that's actually a pretty cool idea. I regret my initial hasty reply of "maybe nothing". You also reminded me of the first program I ever encountered (and I suspect we all encountered it by 2nd grade). It worked like this:

      For a picture of a naked lady, turn to page 45.

      45: The teacher is ugly. Naked ladies are on page 89.

      And so on, and so forth.

      It was a simple language, but not well structured. Mostly statements and gotos; but it did have conditionals, perhaps even before Lisp: If you want to see an explosion, turn to page 10, otherwise turn the page.

      Of course you can't have the student's marking up books now can you? Yep, the first programming language a kid learned, and it was fun, intuitive and just a bit subversive. Nothing changed when we went electronic.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    2. Re:Easy! by Required+Snark · · Score: 4, Insightful
      You can also do the inverse: you act as the computer, the kids act as the programmer. You start with a simple task: making a peanut butter and jelly sandwich. The sandwich components are the props.

      First have the kids define the steps for making the sandwich. Write them on the board. Then "execute" making the sandwich. They will make a bunch of typical mistakes. For example, they will forget steps like taking the bread out of the bag, opening the jam and peanut jars, etc. So as you go through the steps, you stop when there is an obviously wrong action. Each mistake is recorded as a change to the "program" on the board.

      This shows how simple the steps have to be, and also shows how programming is about breaking down complex activities into very simple steps. It also shows debugging.

      And at the end, you can eat the sandwich!!!

      --
      Why is Snark Required?
    3. Re:Easy! by mrchaotica · · Score: 2

      I recall in kindergarten being plopped down in front of an Apple IIe with Logo and letting my imagination run wild about what designs might be created on the screen.

      This!

      Sit them down in front of computers with LOGO, teach them how to get the turtle to move, and then leave them alone (except to answer their questions).

      And yes, LOGO is still the best language/environment to use for this. (There's also Squeak, but I think LOGO is much better, especially for 2nd graders.)

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    4. Re:Easy! by bzipitidoo · · Score: 3, Insightful

      I tried out Scalable Vector Graphics on a 2nd grader. Whipped up a little text file and loaded it in Firefox. She and her father complained that SVG was too hard.

      And I see their point. SVG is much inferior to LOGO. SVG has a turtle of sorts. Problem is, the SVG turtle remembers position only, no orientation. For instance, could not draw a 5 pointed star by ordering it to rotate 288 degrees and drawing a line 5 times, had to calculate the x,y coordinates.

      The so called human readable XML style syntax was another impediment. We could use a big revamp of HTML. Reduce the verbosity and cut down the excessive structure. It wouldn't be backward compatible like HTML5 is, but web pages sure would be a lot smaller and more readable. And maybe a 2nd grader wouldn't have such a rough time with it.

      --
      Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    5. Re:Easy! by greg1104 · · Score: 2, Funny

      I hate it when I end up with bugs in my PB&J

    6. Re:Easy! by sconeu · · Score: 3, Interesting

      I did this with my daughter's 3rd grade class, only I showed them how a computer counts to 5.

      Someone was the CPU, someone was the display, someone was memory, etc...

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    7. Re:Easy! by shish · · Score: 2

      I have a friend who used this method with his students, and found it very successful, but some advice by proxy -- if you're going to do something like making a cup of tea with real boiling water, do it at a desk where no students are sat...

      (Though to be fair, the student in question did learn the difference between "pour the water out of the kettle" and "slowly pour the water out of the kettle and into the cup, stopping when the cup is nearly full")

      --
      I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
    8. Re:Easy! by JaredOfEuropa · · Score: 2, Funny

      Hell no, make those regulations part of the game... When the kids have finally figured out the peanut butter sandwich program, tell them that no, you can't do that because of HSE Rule 26b/6. Just like the real world where they'll have to deal with SOx, export compliance, legal, etc. Bonus points if you can actually make a few kids cry during the proceedings (hey it works on grownups...).

      Me, I'm not bitter or anything

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
  2. Logo language (turtle) by psy · · Score: 2

    Back in primary school (15-20 years ago) i was introduced to programming using the Logo language (drawing the path of a turtle on the screen).

    Syntax was something similar to:

    FORWARD 100
    LEFT 90
    FORWARD 100
    LEFT 90
    FORWARD 100
    LEFT 90
    FORWARD 100
    LEFT 90

    OR:

    REPEAT 4 [FD 100 LEFT 90]

  3. Use abstract language by antifoidulus · · Score: 4, Funny

    Use abstract language and flow charts to explain, for instance here is pseudocode for a function called doSoftwareEngineering:

    function softwareEngineering outputs betterBonusForBoss and meagerSalary

    do until tooOldToEmploy
          change jobs
          do until bossFiresYouForBonus
                do TPSRepeatsReportsUntilYouWantToCry
                repeat
            repeat
    repeat

    gosub without return

  4. Peanut butter and jelly sandwich by dacut · · Score: 5, Insightful

    One of the most engaging presentations I've seen on this was the making of a peanut butter and jelly sandwich where the students write out the instructions and you execute them -- very literally, as a computer would do -- illustrating the attention to detail and error checking required for programming.

    I recall seeing the knife go through the lids for the peanut butter and jelly jars, the jars being placed directly on slices of bread, peanut butter being spread on the bread wrapper, etc.

    This would be something to incorporate into a larger talk, probably at the end (to keep their attention going).

  5. Scratch? by Max+Romantschuk · · Score: 3, Interesting

    A projector, and Scratch?
    http://scratch.mit.edu/

    Mindstorms could also make sense?

    To explain a programming I would demostrate how changes to a simple piece of code changes something that you can see, like an animation (scratch) or a robot's behavior (mindstorms).

    --
    .: Max Romantschuk :: http://max.romantschuk.fi/
  6. Re:Build a game in front of them by Pseudonym+Authority · · Score: 2, Funny

    I think that they should learn Lisp or Cobol.

  7. Get them involved! by matt-fu · · Score: 3, Interesting
    Whatever you do, print out some copies of "Snake Wrangling for Kids" to hand out while you're there. It was written for kids who are eight years or older, but chances are there are at least a couple of kids in there who would get it if they looked it over. I gave a copy to my daughter when she was seven and she thought it was pretty fun. Even if nobody has access to some kind of Python install, it may plant seeds for later.

    http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/

  8. When software goes bad :-) by Dr+Black+Adder · · Score: 2

    I do workshops for 15 year olds +, so this may be useful to you: There are many great stories of disasers that have been caused by software. This lets me explain how my job is to create software that does not make those mistakes. :-)

  9. Software Engineering in a Nutshell by The+Dancing+Panda · · Score: 2, Funny

    I'd say tell them the truth. It's a job that sucks the life out of you.
    Most of your days will be spent:
    a) in "requirements" meetings: Where people who have no idea what they want hope for some reason that you do.
    b) in "testing" meetings: where those same people get pissed that you didn't do what they didn't say.
    c) in "bug report" meetings: where people can't fathom that in a hundred thousand lines of hastily written code (because we had a due date, and had too many testing meetings to actually test anything), there could be a mistake somewhere.
    d) "developing": where you write some shitty business software that most people are forced to use during jobs that they also hate. Meaning no one will ever be happy with the work you're doing.
    e) looking for a new job: And not being able to find something interesting because your experience is in fucking business software, because it was the only decent paying job available when you were first out of college and didn't know any better. And everyone that's going to pay you decently wants experience in whatever they hell their doing, not business software. Even though you have a god damn master's degree in CS, not "business software".
    f) Oh god please make the hurting stop.
    g) Drinking, and trying to avoid people who want to talk about work.

    Feel free to pass this out as a pamphlet to the kids.

    1. Re:Software Engineering in a Nutshell by dudpixel · · Score: 4, Insightful

      This might be true if your first introduction to code was your first day at uni.

      Many software engineers started out as kids coding their own games and learning stuff on their own.
      The software development doesn't stop with your job.

      I always have several projects on the go at home. These days they're mostly geared towards earning a second income, and some have been successful.
      But to see my life as a software engineer as purely what I do for my employment - that would make me cry.

      My job just pays the bills - yes I write code for a living and I do enjoy my job (as much as that is even possible), but none of it compares to the stuff I tinker with in my own time. Software engineering is a way of life, not just something you do for a job.

      --
      This seemed like a reasonable sig at the time.
  10. Be glad... by HockeyPuck · · Score: 2

    Be glad you aren't like me and support mainframes...

    "Hello class, I work on this really big black computer the size of a refrigerator and the weight of an elephant...No, it doesn't play Angry Birds.... but it's older than both of your parents"

    I'm still trying to figure out how to explain what I do to Adults...

  11. 10 PRINT "BASIC STILL RULES!" by Dahamma · · Score: 2

    10 PRINT "YOU SUCK!"
    20 GOTO 10

    Pretty much every Apple II in my elementary school ran that program almost continuously... what more do you need?

    [Bonus - it was a gateway program to writing Eamon expansions by Jr High. Double bonus if anyone actually knows what the hell I am talking about...]

  12. Heh, you remind me that joke... by elsurexiste · · Score: 4, Funny

    What do prostitutes and programmers have in common? They both have trouble explaining their jobs to 2nd graders!

    --
    I rarely respond to comments. Also, don't ask for clarifications: a brain and Google are faster, believe me!
  13. Here's my way of explaining "programming" by Sun · · Score: 2

    Caveat - I have never actually tried it, and I developed it for adults. I still think it might work with 2nd graders (probablu too coplex)

    Ask for a volunteer. Write a bunch of numbers on the board, and tell the volunteer to sort them.

    Explain that this is not programming.

    Now, cover the volunteer's eyes, write some more numbers on the board, and tell him to tell you to sort them. Allow asking "what is the first number" and such.

    Explain that this is, also, not programming.

    Now, tell the volunteer to tell you how to sort the numbers before they are written on the board. Explain that once the numbers are written on the board, you will not hear any comment from him. Write the instructions down on the board. When they are done, write down numbers and carry the instructions out. Try to pick numbers that won't work with their instructions. Allow the class to fix the instructions, but any time they do, restart the whole thing.

    This is programming.

    Shachar

    1. Re:Here's my way of explaining "programming" by fahrbot-bot · · Score: 2

      I usually start with something like, tell someone over the phone how to tie their shoe.

      --
      It must have been something you assimilated. . . .
  14. Re:A few kids might be able to get it by Snarky+McButtface · · Score: 2

    Seven years old.

  15. Re:A few kids might be able to get it by Half-pint+HAL · · Score: 3, Insightful

    This information is available on wikipedia.

    Is it more effort for 10,000 non-US-based geeks to look up Wikipedia, or 1 US-based OP to mention an internationally recognisable age in his question...?

    --
    Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
  16. Re:More details please... by sconeu · · Score: 2

    I like this. When I did career day and my kids were in elementary school, I did a couple of things.

    At the time, I did embedded systems, so first , I asked them how many computers they thought were in their Mom's car. And then I used that as a jumping off point to explain (at a very high level) embedded systems.

    Then I talked a little about how I write software. I asked them, if they were building a house, would they just start hammering, would would they make a plan. Pointed out the same thing for software.

    The last thing I did was to make the teacher happy. I asked them what they thought one of the most important tools I used (besides a computer) was. They guessed for a bit, and then I brought out a book (picked the biggest programming book I could, I think it was Petzold 5ed at the time), and kind of played with it a bit until someone figured out "books". Pointed out you need to read.

    Career day was always tough for me, because my daughter was always in the same class as the guy who did lasers (no frickin' sharks).

    --
    General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
  17. Stick with what works by jtownatpunk.net · · Score: 2

    Just use whatever presentation would be appropriate for your board of directors. Maybe bump it up a notch or two so the kids don't feel insulted.

    I keed! I keed! I know a lowly programmer would never be permitted to speak to board members.

  18. Re:A few kids might be able to get it by erroneus · · Score: 2

    Yes, I generally agree. That's why I recommend teaching them about God. The world it too complicated for these young minds and we can't have them walking around having more questions than answers. So start delivering your powerpoint show and when you get a blank look, just change over to discussions of God, Santa Claus, ghosts or other imaginary things.

    Actually, I might try to explain programming as a way to make their toys do things you want them to do. But really, 2nd grade would be way too challenging a concept for them. They already know what a computer is, but it's a LOT of little details. Anything more than 3-4 steps in a process and they are bound to get glassy eyed. But you can explain that they already know a lot about what a computer does because they are learning those things now! They know how to organize their things and put them into their boxes. (shoes, jackets, crayons, etc... they store them, sort them, and search them) They know how to do math functions too.

    In fact, the word "computer" was originally used to describe a job that people did. It might be interesting for them to know these things. But to demonstrate programming itself would be too much for a short period of time. Instead, I would try to give them a basic understanding of how the magic box is similar to what they are learning in school already today. But computers do not replace the need to learn these things any more than cars replace the need to walk. In fact, I think I would start out with the standard "car analogy"

    "Raise your hand if you know what a car is!" "Great!" "In a car, you can go really far and, depending on how busy the road is, really fast too...." They already know what a car is, but by starting out with something they already know will help them to draw parallels with the purpose of computers and that can be done within the first minute. After that, think of a fun class exercise they can follow or participate in that involves sorting by number or letter or some other criteria... things they do all the time already. That's more challenging than you might think though... give that some thought.

  19. Mine craft by rve · · Score: 2

    I've seen a kid that age program in mine craft. They're ready, they're just not into stuff that's boring.

    Then again, TFA doesn't ask about interesting children in programming, but in software development. This seems silly to me. 2nd graders might be interested in learning how to count just for fun, but teaching them to do book keeping will require a massive carrot & stick.

    1. Re:Mine craft by TheRaven64 · · Score: 2

      So true! It's a shame that learning Logo certainly doesn't give you any transferrable skills. No language that I've used since has had variables, loops, subroutines, and no environment has used vector graphics. The geometry that I learned from Logo has been completely useless too.

      --
      I am TheRaven on Soylent News
  20. Re:A few kids might be able to get it by NEDHead · · Score: 2

    ahh, 2nd grade. Best 3 years of my life

  21. Yep, he asked about software development by Moraelin · · Score: 4, Funny

    Yep, that's the trick part, way I see it. He asked about software development, not programming. Programming what you want, especially in a game, is fun. Software development, on the other hand has lower average job satisfaction than being a garbage man, according to a survey from a couple of years ago.

    Mind you, it might still be able to explain it via an exercise, but I don't think anyone has the heart to do that to some innocent little kids. I mean, it would probably go like this:

    "Hi, kids, my name is Moraelin and I'm here to show you how software development goes. I must thank Mrs Crabapple for letting us come to the park for this exercise. We'll be making this a role-playing exercise, so it's easy to understand. I brought a few friends to help with some key roles. Say hi to Tom, Dick, Harry, Jack and Jill.

    "Now the first thing to remember is that we're not in this for the fun. You'll get a grade for this, so try to do your best.

    "The most important skill in my profession is to sit in meetings and look interested. It may not be the greatest percentage of the day, unless you really draw the short straw, but you'd be surprised how much more important making a good impression to the boss is than actual work...

    "You over there? Yes, you in the blue sweater. What's your name? Well, Billy, you get a minus one point on the grade for fidgeting instead of paying attention. Yes, I know it's boring, but that's the whole point I'm trying to convey. Let this be your first lesson in real world employment.

    "Well, anyway, for the purpose of this exercise, you'll be divided into teams and have to draw something on the pavement with chalk. As a team. Remember, what matters is the whole result, not just your own personal performance.

    "Now to make things more educational, I brought a second class to pad the teams with. The assignments will be big enough to include them, but they've all been assigned some secret roles to play. Most... let's just say it sounds like 'mazy loron', but occasionally you'll get the guy who just tells you how to do your job instead of his own doing his, the guy who keeps adding pointless "THIS IS A FLOWER" comments to your work instead of doing his own part, the guy who keeps trying to tell you about his vacation instead of letting you work, and so on. Some may even be naturally inclined to go beyond even the assigned role in their being useless and counter-productive.

    "I probably don't need to tell you that you're not supposed to beat them up even if they 'accidentally' erase your part of the work. In fact, you're not even allowed to complain about them. Doing so will get you a bad grade for being a bad team member.

    "You have a question? Oh, WHAT you'll have to draw? I don't know myself either. Tom and Dick will role-play the customer. You'll have to make them tell you what they want drawn.

    "Now they'll be as vague and occasionally wrong as humanly possible, and occasionally obnoxious, but you must extract exact information from them. You don't get points by just doing close enough. If they say they want a flower, you must get out of them exactly what flower and what colour. If they say they want a boat, you must find out exactly what kind of boat. And if they say they want a cow, well, better make sure they don't ACTUALLY mean the kind that meows and catches mice.

    "They'll also change their mind or demand changes at random times, and at the end will blame you for not guessing they actually wanted something different. You'll also have to change it to that, and repeat about a dozen times.

    "Harry will play the Pointy Haired Boss in his exercise. He'll give you extra directives, like only using blue and yellow chalk because of trying to consolidate into fewer technologies, or drawing with the chalk on paper because he read that that's the latest buzzword. For your grade, you'll have to figure out a way to satisfy both him and your customer. If you end up trying to mix

    --
    A polar bear is a cartesian bear after a coordinate transform.
    1. Re:Yep, he asked about software development by Moraelin · · Score: 2

      Eh, it didn't take that long. It kinda just came naturally as I was typing it, which probably is the saddest part.

      That said, as I was saying, I'm answering about software development, not about programming. I still think it captures the actual and more important essence of software development: taking something that at first sounds like great fun and something you like to do (which drawing flowers with chalk is a good guess for little children) and mis-managing it into a soul-sucking nightmare. Using some fun building stuff with blocs as an illustration may be a better example of the programming part, but sadly it would miss the more important soul-sucking parts there.

      --
      A polar bear is a cartesian bear after a coordinate transform.
    2. Re:Yep, he asked about software development by jasenj1 · · Score: 2

      I'm glad I've never worked anywhere like that. And I've been doing software development for almost 20 years - for only two companies, though.

      I suspect lots of jobs are filled with boring meetings, self-important, self-serving, useless and worse than useless co-workers. Doing whatever the actual job is you think you're doing is probably a fraction of many people's days. So there's nothing unique about software development there.

    3. Re:Yep, he asked about software development by mveloso · · Score: 2

      You forgot to mention that at the end of the project, you have to explain what you learned to an Indian child. You'll then be fired and the other child will do you job for you and you'll have to collect unemployment.

  22. Re:A few kids might be able to get it by silentcoder · · Score: 2

    I was about that age when I wrote my first program. Sure it was a simple basic program that printed my name in an infinite loop - but it was the start of a new route of discovery.

    In short:
    1) You're wrong.
    2) My answer to the GP - don't TELL them... SHOW them !

    --
    Unicode killed the ASCII-art *
  23. Same as ... by PPH · · Score: 2

    ... to corporate management. But we can use bigger words.

    --
    Have gnu, will travel.