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

430 comments

  1. A few kids might be able to get it by Megalodactyl · · Score: 1

    But I think that 2nd grade is a little bit too early.

    1. Re:A few kids might be able to get it by mwvdlee · · Score: 0

      You seriously mean to tell us the 2nd graders on 4chan are able to get it?

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    2. Re:A few kids might be able to get it by Bobby+Onions · · Score: 0

      How old is 2nd grade?

      It's not mentioned anywhere and we're not all in the USA, believe it or not,

    3. Re:A few kids might be able to get it by Snarky+McButtface · · Score: 2

      Seven years old.

    4. Re:A few kids might be able to get it by Your.Master · · Score: 0

      Age 7, approximately.

      Age = grade + 5, give or take a year because of the child's birthday compared to the start and end of the school year.

      This information is available on wikipedia.

    5. 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'
    6. Re:A few kids might be able to get it by syousef · · Score: 1

      How old is 2nd grade?

      Seven years old.

      2nd grade is as old as the school system.

      Oh the child? Depends on how stupid the child is ;-)

      --
      These posts express my own personal views, not those of my employer
    7. 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.

    8. Re:A few kids might be able to get it by Joce640k · · Score: 1

      I'm not sure how old "2nd grade" is.

      Is it even an age? From the context it seems to be.

      Is there a formula to converts it to metric...?

      --
      No sig today...
    9. Re:A few kids might be able to get it by ciderbrew · · Score: 0

      Bloody colonies not knowing their place. :)

    10. Re:A few kids might be able to get it by boristhespider · · Score: 1

      Sure. (Grade + 5)*365.25*24*60*60 gives you the target age in seconds. There will, unfortunately, be an error of 365.25*24*60*60 on that since children can inconveniently be born at any time of the year, and then there will also be an additional error of x*365.25*24*60*60 on that (where x is an integer function encoding the stupidity of a subset of children) to account for people held back one, two or more grades. There will also be an extra error since the year isn't exactly 365.25 days long, but this should be expected to be extremely subdominant to the other uncertainties.

    11. Re:A few kids might be able to get it by Anonymous Coward · · Score: 0

      2nd grade is as old as the school system.

      Assuming there wasn't a need for a 2nd grade until one year later, wouldn't 2nd grade be one year younger than the school system?

    12. Re:A few kids might be able to get it by Opportunist · · Score: 1

      That's about when I started programming (ok, I was 8). So I'd say yes, a few might get the idea.

      Actually... well, allow me to elaborate a bit to get the idea, and to get into the mindset of a 7-8 year old child who gets confronted with computers and having to program them. Back then, for me, it was an Atari 800XL and the Basic interpreter found in its ROM. Nothing fancy with hard drive or such (and thiiiiiis high was the snow, and I had no shoes...). My dad brought it home for me, even though he knew jack about computers and couldn't even turn one on, but he knew me, and he knew that I'll eventually end up in IT. And he brought home those books and magazines with program listings (there wasn't that fancy thing called internet back then... did I mention the snow and the lack of shoes?). And those listings contained bugs and errors, so the first thing I actually learned was debugging (ok, mostly shotgun debugging, but it sure taught me a few things).

      Ok, I admit, I was much easier to impress with "computer stuff" than the kids these days. "Animations" that basically consisted of lines of text being added and the screen scrolling to "animate" it was already something. But the true fascination was that I could dictate what this machine should do. Not just within the confinements of some program that allowed me to, say, steer a figure or move a cursor, but full control over the box in front of me. I told it what to do, when to do it and how to do it.

      The true revelation was when I found out how to put it into graphics mode and how to draw various lines across the screen. Sure, they didn't show something that pleases the eye, but I drew those lines!

      I guess it will be much harder to impress kids these days. The idea that, if you don't have a tool for something you want to do, you just make one, doesn't really work with them anymore. Why make one, google it and download it. I think what could impress them is that you control the machine. Every aspect of it. You're not limited to what a program lets you do. You decide for yourself. You are in control. You are the one that creates those games, those tools, even that OS the computer is using.

      Well, I guess it's less impressive than it was 30 years ago. But I guess second graders are still mighty impressed if you tell them that you're one of those guys that make those games.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    13. Re:A few kids might be able to get it by Opportunist · · Score: 1

      If you want to compare it to something the kids can relate to, use Lego. You have blocks that are, by themselves, just simple blocks. 1 by 2, 2 by 4, nothing really recognizable. But if you put them together in the right order, you have houses and spaceships and robots and whatnot.

      It's like programming. You have commands and functions that are by themselves nothing, but if you put them together correctly, you have games and tools and operating systems.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    14. Re:A few kids might be able to get it by Anonymous Coward · · Score: 0

      Depends whether you're in the invention or the discovery school of thought. If 2nd grade was discovered, it is infinitely old.

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

      Lego blocks don't "do things" like programs do. It will be lost on them.

    16. Re:A few kids might be able to get it by Opportunist · · Score: 1

      Huh? Believe me, when I was 7, the things I built out of Lego did things. Only in my imagination, but they sure did! Those little space men were very definitely alive and those rockets and moonbases were very much real.

      In the mindset of a 7 year old, the things these Lego buildings do are as real as anything your program will do.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    17. Re:A few kids might be able to get it by Barryke · · Score: 1

      Lego Technic is the only real Lego! The rest is just small Duplo. :(

      --
      Hivemind harvest in progress..
    18. Re:A few kids might be able to get it by Barryke · · Score: 1

      Lego technic would do that yes. Also a water runway, or marble track.

      First tell them that the complicated things are basically just a bunch of simpler things. Give some tiny, simple examples. Their imagination will do the rest while you do a simple demonstration:

      Have them imagine they have to make a lot of sums:
      1 + 2
      2 + 3
      3 + 1
      and such.

      Now show them how we can visualize that.
      1 dot + 2 dots = 3 dots.

      Now show them how we can actually make that happen.
      dot = marble.

      We input 1 marble, then input 2 marbles. The output, is 3 marbles. Done.

      Now remember (!) them that the complicated things are basically just a bunch of simpler things.
      This is a such a simple thing. It can do wonders, if you combine them the right way..

      See http://www.google.com/search?q=marble+calculator

      --
      Hivemind harvest in progress..
    19. Re:A few kids might be able to get it by Barryke · · Score: 1

      Adding to this -

      So with marbles you can build calculators.

      Now tell them theres more ways you can make calculators, like the electronics inside a .. calculator!
      These electronics also shift and rotate and move, only on such a tiny scale of things we cannot see. But we can make them!

      To better make (leave the programming hardware/software difference out of view, its not that interesting for these purposes) these things, we can use a computer (which is also lots of calculators, making colors change and making your mouse move!) to see better what we are doing. So we can type, and .. if done correctly .. it (magically) figures out "a tiny, electronic marble track" in the computer that does what you just typed. The marbles even tell your computer to show a digit on your screen, or the marbles can make noise via the speakers. (if done correctly and the marbles cooperate, it may even be music!) :)

      --
      Hivemind harvest in progress..
    20. Re:A few kids might be able to get it by TheRaven64 · · Score: 1

      I started learning to program aged 7, so it's definitely not to young to get an idea of what is involved. My school also had Capsela for children to play with, which forms a better analogy for modern modular programming than lego. Each capsule contains a set of gears (or something like a motor) and you can connect them together in a variety of ways. Low-level programming is analogous to building the individual capsules out of the individual gears, high-level programming to assembling them.

      --
      I am TheRaven on Soylent News
    21. Re:A few kids might be able to get it by Opportunist · · Score: 1

      They're kids, there's nothing wrong with them playing with C#, erh, Duplo.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    22. Re:A few kids might be able to get it by AVee · · Score: 1

      Ok, I admit, I was much easier to impress with "computer stuff" than the kids these days. "Animations" that basically consisted of lines of text being added and the screen scrolling to "animate" it was already something. But the true fascination was that I could dictate what this machine should do. Not just within the confinements of some program that allowed me to, say, steer a figure or move a cursor, but full control over the box in front of me. I told it what to do, when to do it and how to do it.

      That's the crucial part, and that still true today. The first step is to take the 'magic' out of it and show those kids it is actually something you could understand and control. I think I might actually start by with taking a computer apart a reassembling it. Those kids might be way more familiar with computer compared to us at the same age, but I bet most of them have never seen the inside a PC and believe you will surely break is if you even try to open the case. Showing then it's just parts, each with their own function will trigger at least some of them.
      And don't forget to encourage them to try the same at home *grin*

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

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

    24. Re:A few kids might be able to get it by Custard+Horse · · Score: 1

      God = imaginary therefore Jesus = Vaporware?

    25. Re:A few kids might be able to get it by PortHaven · · Score: 1

      That's half the problem with education today. Adults are stupid, and think the children are too.

      I've taught 1st graders fractions. How? Well, I didn't use 1/4, 1/8. That is meaningless to young children and a hard concept to understand. Essentially, you're trying to teach a concept with conceptual pronouns. BAD!!!!!

      But take a few apples, and suddenly half an apple, a 1/4 apple. Eight kids getting a slice of an apple becomes a very understandable concept.

      ---

      How to teach programming. Seriously, start it on the play ground.

      Create a game where the kids run in a circle. And do loops. Keep looping. Then have signs/placards.

      If wearing a blue shirt, go left, otherwise loop right. Now you can create a series of game commands that essentially teach looping, sorting, if/then, etc.

      Don't try to use technical terms. Their grasp of language concepts still doesn't tie as well as an adults do. But put the concepts into life application (ie: running on the playground). And you can open them up to the logic.

      Now, after doing that game a couple of weeks. You can begin to bring the concepts in the classroom. Now they have real world experience to bridge them to conceptual concepts.

    26. Re:A few kids might be able to get it by heckler95 · · Score: 1

      I think you hit on a lot of great points here - I was 9 when I wrote my first AppleSoft BASIC programs on an Apple IIe on loan from my school. Prompting for input and doing simple arithmetic with somebody's age was ok, but the thing that had me hooked was writing a looping program that drew random boxes and lines in random colors on the screen indefinitely. The thing that really made that great was that at the time (1990-ish) those text prompts and colored lines and boxes weren't visually that far from "state of the art" games like Oregon Trail. It made me feel that at 9 years old, I wasn't that far from mastering all that a computer could do. Nowadays, the bar is set much higher. Kids grow up with Playstation 3 games that are rendered in near-lifelike detail with speech and making the mental jump from your first dozen-line program to something like that is just huge. I've been writing web/DB business applications for 7 years now as part of my job (and have been a computer geek for more than 20 years) and even I have a hard time grasping what goes into creating an A-list console game. The rift between a first program and something useful and/or impressive has unfortunately grown exponentially along with Moore's Law and that spark of inspiration that so many of us experienced in the early stages of personal computing is becoming more and more elusive.

      I think the one saving grace is the relative ease with which you can develop and publish a real working website. It may not compare to top sites in terms of design and functionality, but it is conceivable that a young person could figure out enough HTML, CSS, and JavaScript (probably with a little "help" from the web and Ctrl+C) and actually create something from nothing. More importantly, they can easily share their accomplishment with others by just emailing a link or posting it on Facebook and get the encouragement they need to inspire them to go further.

      So after my long nostalgic diatribe, my real contribution to the conversation is this: Give them a crash course on HTML (tags, links, styles, etc.) and using input from the class, collaboratively build a simple webpage. Include a photo of the class, a link or two, some student-chosen colors or font style elements, and **publish it to the web, giving the students the link to show their friends and family**. If they can go home to mom and dad and say "hey, look what I helped to make!" I think you have a pretty good chance of inspiring at least a few of them to explore more.

    27. 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 *
    28. Re:A few kids might be able to get it by Anonymous Coward · · Score: 0

      The latter, since nobody has an exhaustive list of the ordinary bits of US culture you foreign visitors to this US site don't know about.

    29. Re:A few kids might be able to get it by Anonymous Coward · · Score: 0

      Should we use small words as well? Try to keep up.

    30. Re:A few kids might be able to get it by mldi · · Score: 1

      Nice idea if it was 5 years ago. Nowadays people consider their facebook, blogger, etc their web page that they "made". They're largely unimpressed by the web anymore unless it falls way outside what they can do easily (do more than just a photo and some text/tags).

      --
      If you aren't suspicious of your government's actions, you aren't doing your job as a responsible citizen.
    31. Re:A few kids might be able to get it by Anonymous Coward · · Score: 0

      2nd grade is as old as the school system.

      Schools 40-odd years ago had sub-a, sub-b, and standards 1 through 10. It is my understanding that "grades" only recently replaced the traditional "standards" (grades 1 and 2 replacing sub-a and sub-b)?

    32. Re:A few kids might be able to get it by heckler95 · · Score: 1

      7-8 year-olds typically don't have Facebook, Blogger, or any other personal presence on the web at that age. Don't underestimate the inspirational power of creation. A simple drawing or watercolor painting from scratch is much more likely to inspire a young person to take an interest in art than tracing a comic book or coloring in a coloring book. Sure it may not look as great as what they're exposed to out in the world, but it's completely their own, and that can be powerful.

    33. Re:A few kids might be able to get it by mldi · · Score: 1

      After reading this thread, am I the only one who thinks people are underestimating the capacity for understanding in a 2nd grader? Let's be honest here: not everyone will get it. You add 20 years and there's even fewer who understand it. You're not there to inspire the uninspirable in that field. You'll spark interest from the right minds as long as you don't pander to the lowest common denominator and make it too simple.

      I remember discovering programming in basic when I was 8 years old without outside inspiration. I was also beginning to read full length novels. Comparing programming to legos would have bored me to tears.

      --
      If you aren't suspicious of your government's actions, you aren't doing your job as a responsible citizen.
    34. Re:A few kids might be able to get it by Phiu-x · · Score: 1

      I whish I had mod points! Nice idea. This IS EXACTLY how I would teach them. Your comment is saved in txt file for when my son gets older.

      --
      This is a stolen sig.
    35. Re:A few kids might be able to get it by Anonymous Coward · · Score: 0

      I think that the Basic- and LOGO-running microcomputers are entirely to thank for why I understand what coordinates are, and could do basic coordinate transformations around end of elementary school. Kids can understand that stuff, but some kids -- like me -- won't ever understand the stuff they can't apply. I'm broken this way -- if I can't apply it, I won't know it. My hero Feynman was "broken" in the same way: if he couldn't derive it / apply it himself, he'd never figure it out.

    36. Re:A few kids might be able to get it by anyGould · · Score: 1

      Really? My school started teaching LOGO in grade one.

      By grade two, you should be able to explain it as "I write the instructions that tell your gadgets what to do".

      Obviously, you probably don't want to get into recursion or anything like that. :)

    37. Re:A few kids might be able to get it by Opportunist · · Score: 1

      *pout* Don't spit on one of the few things outside computers that actually were fun in my childhood.

      If you could have shown me how to combine them (maybe with microcontrollers) you'd have had me hooked.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    38. Re:A few kids might be able to get it by Kell+Bengal · · Score: 1

      I think many people not from the US would be surprised at the number of things that are outside the homogenous ISO Standard American Sitcom Cultural Norm. Even growing up with American TV in Australia (an English-speaking western nation), having lived in Canada for 3.5 years and having attended an American school in Thailand for 3.5 years didn't prepare me for the plethora of tiny little differences. Everything from 'what are Daisy Dukes?' (very short shorts) to 'what is a sledge-pull' (a type of tractor truck race) to 'what is a W-4' (tax stuff) to more esoteric cultural stuff like how hierarchies in the work place function (they are much more rigid than in Oz).

      --
      Scientists point out problems, engineers fix them
      altslashdot.org: The future of slashdot.
    39. Re:A few kids might be able to get it by mcavic · · Score: 1

      I approve of your math.

    40. Re:A few kids might be able to get it by mikael · · Score: 1

      Still remember that day back in the 80's. Getting the Atari 800 with 100+ free programs and games on a couple of tape cassettes.

      Most seemed to be memory games where you try and match pairs of patterns. Others were generating Moire patterns and doing color cycling tricks. About the coolest at the time was that Byte article on drawing a landscape with trees, fallen leaves, grass, and a color cycled stream and waterfall. The tutorials on making sound effects seem funny now...

      [If anyone wants a copy, I'll put them online - managed to archive them and restore the data just recently].

      Things done back them, the light pen from Silica Shop, the graphics tablet interfaced using paddle controllers don't seem so ancient. It's like we knew where the user interface was going to go, but didn't know how to design the silicon.

      These days, you could still use an emulator to play these programs, but more advanced animations can be done with tools like Blender or 3DMax/Maya with scripts. There are any number of Youtube tutorials on making such animations.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    41. Re:A few kids might be able to get it by uninformedLuddite · · Score: 1

      I didn't see him take into account the slowed rotation of the Earth due to the Japan earthquake.

      --
      The new right fascists are bilingual. They speak English and Bullshit.
    42. Re:A few kids might be able to get it by narcc · · Score: 1

      That's about when I started programming (ok, I was 8). So I'd say yes, a few might get the idea.

      Well, I was 9 -- I think in 3rd or 4th grade when I taught myself BASIC on an Apple ][ (This seems par for the course on slashdot)

      Of course, computers were a whole different thing back then. There were lots of games that were just text or simple graphics. Making simple games or games that looked like some commercial titles was something that was well within the reach of the average kid at that age. You could do a good bit with little more than a basic understanding of variables and the if, print, input, and goto commands.

      I remember writing a dragon-fighting math game, for example. On each turn, you'd get a pair of coordinates for the dragons 'weak point' which you'd multiply together to successfully attack. Now, while that was exciting for a few of my classmates, with the added novelty of having a kid they knew make it, if a kid showed such a program to his friends today, they'd have a MUCH lower opinion of their efforts.

      I don't know that an environment could be developed today that inspired the same level of control and capability as BASIC on those old micros. Any environment you could put together on a modern system would be just that -- a different environment. You're not really in control of the computer, but you can make this program do interesting things. It's not really the same experience at all.

      Worse, there is little today for the 13 crowd. Scratch is too complicated for that age group and I don't know of a modern Logo that is as engaging as those early micro versions. Small Basic is pretty good, but you need to generate the interest yourself -- the mystery of the machine and it's inviting blinking cursor aren't there to draw their interest and attention.

      Just as an example, the BBC did a program called 'Electric Dreams' where they took a modern family and transported them through time, one day a year (from a technology perspective) through the 70's, 80's and 90's. In the 80's decade, the kids picked out a micro from a staged 'computer fair' They were sold on the BBC micro over the ZX Spectrum because ... they could write their own programs! The 'BBC salesman' showed the boy how to write a simple program that flashed his name on the screen and the kid was hooked -- he even invited a friend over to play at writing programs on that antique. The kids sat totally engaged in the task, digging through the manual and trying out various commands.

      Short of taking away all their modern technology and giving them an old micro, I don't know how you could reproduce that experience.

    43. Re:A few kids might be able to get it by mcavic · · Score: 1

      Surely that falls within "the year isn't exactly 365.25 days long".

    44. Re:A few kids might be able to get it by rufty_tufty · · Score: 1

      I've got to say if there's one thing my limited experience with children has taught me it's that they're a lot brighter than most adults give them credit for.
      If you think they won't be interested in it then you're talking to the wrong kids, even if it is over the heads of 80% of the class that 20% that is inspired, or at least has hope for an interesting/challenging/useful job should make it worthwhile.
      No it's not something that you see on spongebob,, but you can do it, you too can write software, now get out there and start writing some perl!

      --
      "The weirdest thing about a mind, is that every answer that you find, is the basis of a brand new cliche" -
    45. Re:A few kids might be able to get it by uninformedLuddite · · Score: 1

      I have it on poor authority that it isn;t going to matter late 2012 anyway

      --
      The new right fascists are bilingual. They speak English and Bullshit.
    46. Re:A few kids might be able to get it by mldi · · Score: 1

      *pout* Don't spit on one of the few things outside computers that actually were fun in my childhood.

      If you could have shown me how to combine them (maybe with microcontrollers) you'd have had me hooked.

      Oh, definitely!!! Lego spaceships that light up and move when someone walks by? Golden!

      --
      If you aren't suspicious of your government's actions, you aren't doing your job as a responsible citizen.
  2. Give them a good example by Anonymous Coward · · Score: 0

    The best way to teach a second grader about programming is to explain how pornographic websites are created.

    It take alot of software to get out of control skanks from the rented bedroom to your computer.

    1. Re:Give them a good example by unixisc · · Score: 1

      Dunno whether I'm troll-feeding, but this is a good way to get one's teaching licenses revoked.

  3. 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 Anonymous Coward · · Score: 0

      Think along the lines of the "Mouse Trap" game. It's a wonderful example of programming the perfect mouse trap. I really like the parent threads idea which I think may be great.

    2. Re:Easy! by Anonymous Coward · · Score: 1

      You mean like this:
      http://www.youtube.com/watch?v=BUCZJWo9MZo
      Bonus: Trippy "Mad Men"-era vibe.

    3. 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"?
    4. Re:Easy! by Anonymous Coward · · Score: 0

      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. Sadly, we weren't let free reign, which IMO, was the worst possible thing you can do to a kid with something new and fascinating in front of them. Here's a neat toy. Now, follow these instructions to the t and don't deviate.

      The ability to express my ideas clearly through a completely foreign medium and produce a desired result was astounding to me at that age. Yes, this might be dated, and I can only imagine what it's like growing up with all the tech. we have now, but I identified something then that I still very relevant today. Code can be as much an expression of creativity as it is a tool to perform a function.

      It is also likely that, some of these students have already grasped the concept of programming. They just haven't fully realized it yet. Ask if any of them play Chess, or Checkers. Surely you can wrap an interesting tutorial into a game they're already familiar with.

    5. Re:Easy! by Worchaa · · Score: 1

      Absolutely correct--- the parent must either be, well, a PARENT or a teacher (perhaps both). Choose an EXTREMELY simple, straightforward physical task, break that task up into absolutely fundamental chucks, assign a [child-unit]* to each chunk, execute. *[child-unit]: Depending on how many kids you have and how you want to structure things, assign your kids to work as either individuals or small groups. I'll return to this in a bit... For 2nd grade, I'd suggest opening up by having the children consider single-task robots. They'll dig that. A bot can perform ONE physical movement. The task is to move a box from Table A to Table B. Break the movements into chucks like this: a: Grab box, elevate from table height to chest height b: Accept box at chest height and pivot left/right from a stationary position c: Accept box at chest height and move back and forth on a linear path from Table A to Table B d: Accept box at chest height and pivot left/right from a stationary position e: Accept box at chest height, lower to table height and release Following this model, you need three kinds of kid-robots: Lift/Lower, swivel cargo, transport cargo. If you explain and demonstrate each chunk, they'll get it. For 4th grade, do the same except lead them in a discussion to discover that the 5 chunks only require three discrete actions, and have them outline the order on the chalkboard. In essence, they'll be writing code. Good luck, consult the classroom teacher for assistance with the lesson plan, and above all HAVE FUN !!

      --
      - Marching Band: It's not just for breakfast anymore
    6. 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?
    7. 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

    8. Re:Easy! by stephanruby · · Score: 1

      If this is your first time presenting to this class, keep it super simple. For instance, put up the picture of a dinosaur and make it growl/shake. And just use the time to make a connection with the kids. If you want to teach them something useful, talk to the teacher about a follow up session, and take a look at the following materials for inspiration: http://csunplugged.org/.

    9. Re:Easy! by Worchaa · · Score: 1

      You know, I like your approach better than the one I suggested. The learning process is more intuitive and interactive for the kids, and the result better demonstrates actual programming skills. A+ for you, here's your scratch & sniff sticker. :)

      --
      - Marching Band: It's not just for breakfast anymore
    10. 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"
    11. Re:Easy! by deains · · Score: 1

      There are a lot of rules & regs regarding food preparation in schools and such, so for the sake of your blood pressure, you should probably take an example activity from somewhere other than the kitchen. Otherwise, great idea. :)

    12. Re:Easy! by greg1104 · · Score: 2, Funny

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

    13. 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.
    14. 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
    15. Re:Easy! by Jane+Q.+Public · · Score: 1

      Can we add a "Blue Screen of Shame" mask for the kids that get it wrong? :o)

    16. Re:Easy! by Jane+Q.+Public · · Score: 1

      Who. "... kids who get it wrong...". My grammar is better than that. It's late.

    17. Re:Easy! by Tomato42 · · Score: 1

      Mod parent up. I think it's the best way to show computing to children.

    18. Re:Easy! by opposabledumbs · · Score: 1

      I agree completely with this. I use Lego Mindstorms with classes of 4th - 6th graders, and a lot of what I do is about breaking a problem up into a set of steps, and then writing instructions for each step.

      It's amazing how much fun you can have with this, and how you can introduce concepts like ranges, variables and randomness by setting up an obstacle course that they have to run/walk through, and throw a big foam die (random number), or open a folder with a printed number inside (to represent a variable, that they tear out of the folder and carry with them to the function that the variable is used in as an argument - like do x star jumps, where x is the number).

      If, else and while can be done in a similar manner: "If you're a boy, throw three red balls into basket A. If you're a girl, throw one ball of each colour into basket C" kind of thing.

      You can then let some kids modify your initial obstacles, or come up with a completely new course, and then see how to write a set of instructions that will allow someone to complete the course. They can even save parts of this as reusable code pieces, if you plan your classes in the right way, which is a very powerful idea.

      Of course I then move on to the lego robotics environment. But I think the point is to show the kids that computers do many simple processes very quickly, and that every activity can be broken up into a set of simple steps, which need to be followed in order to succeed.

    19. Re:Easy! by hey · · Score: 0

      Nice idea. But peanut butter isn't allowed in many schools. Allergies.

    20. Re:Easy! by TheRaven64 · · Score: 1

      There's also Squeak, but I think LOGO is much better, especially for 2nd graders

      I wouldn't give them Squeak by itself, but Squeak eToys is probably better for teaching programming than Logo (although Logo is better for teaching geometry). With eToys, you can do things like draw a picture of a car, and then animate it based on rules, such as 'turn left if the colour under this pixel (which is an object) is lighter than the colour under this pixel' and have it follow tracks around the screen.

      --
      I am TheRaven on Soylent News
    21. Re:Easy! by bunratty · · Score: 1

      A few years ago I taught six sessions of Logo programming to a class of students ranging from second to sixth grade. I was a bit ambitious and tried to teach about control flow and input and output, and I suppose some of it got through. They mostly made the turtles make circular patterns using repeat, forward, right, and left. For one presentation, I think having them write Logo programs is ideal because they're able to make circles right away on the first day. At least they'll get a taste of what it's like to program, and it will be fun.

      --
      What a fool believes, he sees, no wise man has the power to reason away.
    22. Re:Easy! by Fnord666 · · Score: 1

      You start with a simple task: making a peanut butter and jelly sandwich.

      I would suggest a cheese sandwich, peanut allergies being what they are these days.

      --
      'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
    23. Re:Easy! by Anonymous Coward · · Score: 0

      Or, you could just tell them that it's a glorified IT job, and much like sysadmins, software developers are a dime a dozen. Real men do hardware.

    24. Re:Easy! by angel'o'sphere · · Score: 1

      Kids don't learn by blaming them or putting them ashame for making mistakes.

      You have to motivate them by lauding them for stuff they do good and to motivate to improve by figuring their own mistakes ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    25. Re:Easy! by SeeSp0tRun · · Score: 1

      Offtopic, I know, but I would have dropped out in pre-k if that were the case growing up.
      End of story.
      Give me peanut butter, or give me a GED!

      --
      Something witty.
    26. Re:Easy! by Anonymous Coward · · Score: 0

      That's right, the only retort to such a devastating truth is complete silence.

    27. 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...
    28. Re:Easy! by maxwell+demon · · Score: 1

      You start with a simple task: making a peanut butter and jelly sandwich.

      I would suggest a cheese sandwich, peanut allergies being what they are these days.

      But cheese is bad for people with lactose intolerance.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    29. Re:Easy! by Anonymous Coward · · Score: 0

      Peanut butter?! In a school? Yes, programming can be *that* dangerous.

    30. Re:Easy! by Anonymous Coward · · Score: 0

      This isn't about "code" it's about a way of thinking!

      Someone once told me how he taught programming to small children.
      He asked them agree what they wanted teached to do and write down simple orders: turn left, take step ahead, turn if reached obstacle &c. (give them list of actions that can be done - it's your language).
      This excercise involves product management, analysis and development: ask kids to decide what they want teacher to do (product management), general way to do this (analysis) and giving instructions using atomic commands (coding).
      Then teacher would execute the program and guess what happens if it contains bugs. Kids love bugs.

    31. Re:Easy! by Anonymous Coward · · Score: 0

      Infinite loop:
      You could have the kids all pass the apple forward.
      To illustrate an infinite loop, make one kid's job to pass backwards.

    32. Re:Easy! by omnichad · · Score: 1

      Not if the kids don't eat it.

    33. Re:Easy! by monkyyy · · Score: 0

      give then water or cardboard, the only 2 "food groups" allowed to be served to childen

      --
      warning pointless sig
    34. Re:Easy! by dacut · · Score: 1

      You can emulate the orientation bit by playing with transforms (<g transform="rotate(30)">...), but at the second-grade level? Yeah, stick with Logo.

    35. Re:Easy! by Bucky24 · · Score: 1

      You had the option to drop out when you were in pre-k? When I was that age my parents made those kinds of choices for me...

      --
      All the world's a CPU, and all the men and women merely AI agents
    36. Re:Easy! by Bucky24 · · Score: 1

      The bread is also bad for people with glucose allergies, unless you use special bread.

      Why are they eating the sandwich again? Isn't it supposed to be used as a prop? If it's really that big of a deal you could always make cardboard cutout pieces and use those instead of the real food.

      --
      All the world's a CPU, and all the men and women merely AI agents
    37. Re:Easy! by Anonymous Coward · · Score: 0

      Haven't tried this myself, but one example I've heard and sounded like fun is to have them "bubble sort" themselves into order by age, height. name etc.

    38. Re:Easy! by dotgain · · Score: 1

      Bonus points for getting trolled by a .sig line.

    39. Re:Easy! by mattack2 · · Score: 1

      ...especially not PB&J, with the peanut freakouts going on.

    40. Re:Easy! by Jane+Q.+Public · · Score: 1

      It was a joke. Lighten up.

    41. Re:Easy! by Anonymous Coward · · Score: 0

      Do Kids still have books? Isn't it all screens and whatnot?

  4. Build a game in front of them by Anonymous Coward · · Score: 1

    I'd suggest hooking up your laptop to projector and building a game in front of them. Take some easy-to-use framework, like cocos2d for python or anything native to your language of trade, but readable enough for 2nd graders to understand. Make a game of walk and jump (a.k.a infinite scroll), tetras, or any other arcade/puzzle thing.

    1. Re:Build a game in front of them by Pseudonym+Authority · · Score: 2, Funny

      I think that they should learn Lisp or Cobol.

    2. Re:Build a game in front of them by Anonymous Coward · · Score: 0

      or Logo.

    3. Re:Build a game in front of them by Anonymous Coward · · Score: 0

      Good God. How old are 2nd graders? About 6? 7? The last thing they're going to want to do is sit politely watching some geek typing in motherfucking Python on a projector screen. This has to be the most absurd suggestion I've heard.

      What would be far better would be to preprogram a small game -- maybe something simple involving chucking a bird out of a catapult at some pigs -- and present it to them in various stages of completion. Not the source, because that would bore them to fucking tears even if they wanted to read Java or Flash or whatever you use to build it, but the result. So at the first step you have the graphics pallatte with all the sprites and animations. At the next step you have a basic physics model. At the next step you put the graphics into the physics model. A bird goes flying from a catapult and hits a pig which explodes - now we're cooking with gas. At the next step you show the graphics for a test level. At the next one you show a completed level (how you did this depends on how you implemented it but showing a completed level and bouncing a ball around it would work. If you've implemented it with explicit collision boundaries then that's weird but show those boundaries instead.) Then finally show the whole lot together.

      That would be quite a bit of work, though it's not like the game would have to be profound or even well-made, but it would step them through the process of building a game without boring them by sitting in front of them typing some fucking Python code. I mean, seriously? And this way you can introduce a whole bunch of concepts as you go along, chiefly when explaining the physics model. Like the types of bird you've got can explain object-orientation, the path they take from the catapult explains differential equations solvers (even though they don't know what a differential equation is; you say that you're using a general technique to solve the physics. And you are. Euler integration), and so on.

    4. Re:Build a game in front of them by CProgrammer98 · · Score: 1

      But won't the Birds get Angry about being shot out of a catapult towards pigs?

      --
      And the people shall be oppressed, every one by another, and every one by his neighbour Isaiah 3:5
    5. Re:Build a game in front of them by Anonymous Coward · · Score: 0

      Probably. If any of the children notice that you can show them a revised set of graphics where the birds are all scowling.

    6. Re:Build a game in front of them by maxwell+demon · · Score: 1

      You want them to learn simple languages first. Therefore let me suggest Unlambda as first language. It has only a few built-in functions, and almost no syntax to learn.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    7. Re:Build a game in front of them by Anonymous Coward · · Score: 0
      "This has to be the most absurd suggestion I've heard"

      Really? Stick around. Check out anything vaguely space-related here. I garantee you'll need to recalibrate your absurdity meter on a logarithmic scale. The sheer simple-mided idiocy that passes for "insightful" in those stories is staggering.

    8. Re:Build a game in front of them by Bucky24 · · Score: 1

      Being able to pronounce the language should be a requirement ;)

      --
      All the world's a CPU, and all the men and women merely AI agents
    9. Re:Build a game in front of them by tom17 · · Score: 1

      Hmm, this is a good idea for a game. I think it would be a perfect game for the plethora of touch-screen devices out there now. I will start on it now and call it Anger Bird.

      I will be rich beyond my wildest dreams!!!

  5. Minecraft by Nukedoom · · Score: 1

    You can explain how worlds are created in Minecraft, or if that turns out to be too complex to simplify, show that software like Minecraft is capable of creating fun and interesting things, and that it's much more than a black box that pumps out endorphins.

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

    1. Re:Logo language (turtle) by TellarHK · · Score: 1

      That's what I first thought of. My school was too cheap/broke to actually have the turtle, but the draw-on-screen Logo software out there was a great thing to learn with. It would be interesting to see someone take the idea of Logo, an instant-feedback system, and create a new language with just enough functionality for educational use. You could make it really simple, maybe even an embedded sort of thing on a ROM chip. Just something really basic and low level that you can put on a little box designed to connect to a TV, since even the poor households these days have those. Heck, a hundred dollar box that can hook up to your TV and run uncomplicated little programs that kids could type in from textbooks or even magazines devoted to the idea would be brilliant.

      We could call the language something simple to remember, that evokes the lack of complexity inherent in the design. Something really basic.

      I see a great future for this. Kickstarter, anyone?

    2. Re:Logo language (turtle) by XiaoMing · · Score: 1

      Logowriter FTW. And that turtle was so cute. Penup, pen down!

    3. Re:Logo language (turtle) by knuthin · · Score: 1

      Logo makes sense.
      All the Knuth fans might hate me, but I started with Logo + QBasic.
      Also I have heard good things about Alice (which could be a bit more modern as compared to Logo and QBasic)

      One thing I am curious about is what will kids turn into if they are exposed to nothing but UNIX/Linux based systems. I always wished I was introduced to UNIX as a kid.

      --
      Some apps are WYSIWYG. Some others are WYSIWTF.
    4. Re:Logo language (turtle) by Macgrrl · · Score: 1

      Check out the game RoboRally. Each player has a set of simple commands to execute in the form of cards. One instruction per card. The game board also contains instructions which are played out whenever you land on them. It also demonstrates what happens when you combine instructions and the importance of selecting the right order of instructions.

      If you are really enthusiactic you can build a live action RoboRally board (a bit like live action chess), we used to have someone run live action RoboRally at gaming conventions along the east coast of Australia, it was almost as fun to watch and to play as people collided with each other around the board.

      --
      Sara
      Designer, Gamer, Macgrrl in an XP World
    5. Re:Logo language (turtle) by Anonymous Coward · · Score: 0

      Why would Knuth fans hate you? Don has always been pretty agnostic when it comes to languages.

    6. Re:Logo language (turtle) by chromatic · · Score: 1

      How about a web based system? ClubCompy's Tasty language does exactly that.

      (Disclaimer: I consult on ClubCompy.)

    7. Re:Logo language (turtle) by Belial6 · · Score: 1

      This could be done more effectively with a Bigtrak. Remember those programmable tanks from the early 80s? You can get a mini version from Think Geek.

      http://www.thinkgeek.com/geektoys/science/de2e/

      Yeah, it is $25, but that is cheaper than a lot of the other suggestions here. If money isn't a huge issue, get 4 of them and let the kids play with them. Programming them is basically the same as Logo Basic, but instead of putting lines on the screen, the tank actually moves around the room. Great fun, and teaches the basic concepts of programming.

    8. Re:Logo language (turtle) by deek · · Score: 1

      My first try at programming was in high school, on an Apple II, using BASIC. As I remember, this was how it went:

      10 PRINT "John Baxter SUX !!"
      20 GOTO 10

      I recommend a similar approach with the 2nd grade kids. Giving them the power to insult their fellow classmates is always appreciated, and remembered.

    9. Re:Logo language (turtle) by mr100percent · · Score: 1

      Yes! There was even a robot Turtle. A very simple language, Logo and LogoWriter.

      Perfect for 2nd graders.

    10. Re:Logo language (turtle) by mwvdlee · · Score: 1

      Giving them the power to insult their fellow classmates is always appreciated, and remembered.

      Especially by John Baxter.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    11. Re:Logo language (turtle) by boristhespider · · Score: 1

      Jesus, I forgot about this! Yes, this one was one of my earlier programming experiences too, or something very similar to it. Though my first actual experience was using Sinclair Basic to make the Spectrum screen flash in sickening colours that made me begin to worry if I were epileptic. (I wasn't, but I didn't often do that again.)

      10 RANDOMIZE
      20 A=7*RND
      30 B=7*RND
      40 BORDER A
      50 PAPER B
      60 CLS
      70 GOTO 20

      I've probably got that totally wrong because I've forgotten Sinclair Basic completely but you get the point. This produced truly sickening results, making it ideal for children.

    12. Re:Logo language (turtle) by psy · · Score: 1

      Just following on from this. As it was quite a while ago my school had limit amount of computers. There was only 1 computer for the class (which was in another room).

      So we learnt LOGO on the black board. We all designed our "program" on paper (i think it was in pairs or small groups).

      We then all took turns to go and run our program. Sometimes it worked, sometimes it didn't.

      We then went back and adjusted (debugged) our program and had another go shortly after.

      Basically gave us skills to plan what we wanted, write and test it and then identify problems and solve them by correcting the code.

    13. Re:Logo language (turtle) by RogerWilco · · Score: 1

      Yeah, I started on LOGO as well.

      The nice thing was that the first student to finish the exercises would get to use some kind of plotting device that would draw using the LOGO commands. It was pretty cool for the 10-11 year olds we were.

      --
      RogerWilco the Adventurous Janitor
    14. Re:Logo language (turtle) by dominious · · Score: 1

      I remember Logo too...and it was BORING! Kids will not really get that much excited these days with moving some pixels around. They already play so many games with graphics and stuff.

    15. Re:Logo language (turtle) by Caesar+Tjalbo · · Score: 1

      10 PRINT "John Baxter SUX !!" 20 GOTO 10

      I recommend a similar approach with the 2nd grade kids. Giving them the power to insult their fellow classmates is always appreciated, and remembered.

      I agree but throw in more 'programming' to show the power of automation (python example, despite code tags, indentation isn't preserved: replace underscore with space):

      >>> print 'John sux!!!111!!!'
      John sux!!!111!!!
      >>> print 'Mary sux!!!111!!!'
      Mary sux!!!111!!!
      >>> names = ['John', 'Mary', 'Peter', 'Caroline']
      >>> for name in names:
      ... ____print '%s sux!!!111!!!' % name
      ...
      John sux!!!111!!!
      Mary sux!!!111!!!
      Peter sux!!!111!!!
      Caroline sux!!!111!!!

      --
      "I'm not much interested in interoperability. I want substitutability. I want to be able to throw your software out."
    16. Re:Logo language (turtle) by delinear · · Score: 1

      For a really cheap alternative physical product, something like this might help take the concept from the screen to the real world. It was my first experience as a kid at putting some instructions into a real life object and having it follow them, and setting up a basic maze or something would help them think through the problem of how to navigate it end to end.

    17. Re:Logo language (turtle) by Anonymous Coward · · Score: 0

      Just something really basic and low level that you can put on a little box designed to connect to a TV, since even the poor households these days have those. Heck, a hundred dollar box ....

      Woah woah WOAH. $100.00????????

      Haven't you been paying attention?

      Even the OLPC was targeting $100 for an entire ruggedized laptop.

    18. Re:Logo language (turtle) by Anonymous Coward · · Score: 0

      I'm sad that more people don't seem to get this. I think you may be a little too subtle for /.

    19. Re:Logo language (turtle) by Anonymous Coward · · Score: 0

      You can also play the turtle game with kids (where they get to play the turtle). :-)

    20. Re:Logo language (turtle) by Anonymous Coward · · Score: 0

      I assume there's a way to break an infinite loop without refreshing the page?

    21. Re:Logo language (turtle) by Anonymous Coward · · Score: 0

      We could call the language something simple to remember, that evokes the lack of complexity inherent in the design. Something really basic.

      Python? - it has a turtle module built-in (http://docs.python.org/library/turtle.html)

    22. Re:Logo language (turtle) by Anonymous Coward · · Score: 0

      Yes that's a great idea. He has to use LogoWriter and convince the kids to draw something simple (a house, a sun or something) with commands. Later he can present something more sophisticated preprogrammed (like a full tree or a bird) so the kids say "wow!"

    23. Re:Logo language (turtle) by St.Creed · · Score: 1

      I second that. My friends and I (all CS majors) absolutely loved Roborally, but we weren't alone in that. A lot of other folks quickly grasped the basics of programming because of that game.

      --
      Therefore, by the (faulty) logic you're using, you're just a cow with a keyboard - osu-neko (2604)
    24. Re:Logo language (turtle) by chromatic · · Score: 1

      The Escape key should do it.

    25. Re:Logo language (turtle) by rufty_tufty · · Score: 1

      See as a kid I hated that turtle, for a start off only the kids the teacher liked got to play with the turtle, for a second what was the point in moving a turtle around?
      Now when I got my hand on Basic and could write my own text adventures - then that was useful. If only they'd have had a decent graphics library in those days...

      --
      "The weirdest thing about a mind, is that every answer that you find, is the basis of a brand new cliche" -
  7. Choose your own adventure by Anonymous Coward · · Score: 0

    At the simplest level, software is choices.
    2nd graders can understand choose your own adventure books.
    Software really is nothing more than a far more complex choose your own adventure book.

  8. I'd Reckon by Greyfox · · Score: 1
    It's probably easier than trying to explain it to my dev team! Oh! No I didn't!

    Heh heh heh.

    The intro-to-CS exercise they used back in my day was for the instructor or another student to pretend to be a robot that would follow instructions literally, and other students would have to devise instructions to a simple task. It gives you a good grasp of what talking to a computer is like, without having to go into technical details that second graders probably wouldn't understand or talk about binary math which second graders also probably wouldn't understand.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    1. Re:I'd Reckon by sjames · · Score: 1

      Plus, for second graders, it adds much hilarity like walking in place with nose against the wall because nobody said stop.

  9. Use Their Own Work by mugetsu37 · · Score: 0

    See if they've been working on any group projects of their own and try to relate it that way. Then you needn't worry about introducing a new system, rather show how it would work in your world. My dad was able to explain it to me when I was that young, there's no reason another second grader would be unable to understand the concept.

  10. Scratch as Comprehensible Input by Anonymous Coward · · Score: 0

    You might check with their teacher to see if they have been exposed to Scratch and try to do a simple live demonstration. If their technology teacher hasn't heard of it, you might shoot him or her an email about it.

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

    1. Re:Use abstract language by Anonymous Coward · · Score: 0

      DEF00001: null pointer dereference on startup.

      you can't change jobs on the first iteration, function pre-conditions cannot be met on startup.
      impact: career cannot be started, family starve.
      no workaround

      fix: refactor "change jobs" to extract "find a job", "quit", "start pending job" operations. rewrite loop in terms of those.

      Implementation notes: There is scope for a race condition between iterations, must do operations as a transaction in this order:
      1) find a new job
      2) quit
      3) start pending job

      but on starting the first iteration do not do "quit", and on ending the last iteration must do only "quit"

    2. Re:Use abstract language by gl4ss · · Score: 1

      basic for kids.
      find a book from '80s, adapt from that.
      it's important that they'll "get" that the computer just follows pre-made instructions, it's just a machine that goes to next step depending on what the state is.
      dos and .bat files were easy to learn as a kid and then going forward from that.

      the kids have probably seen computers and played computer games already.. fun way to spoil some of the fun of them is to have them play a simple text adventure made in basic, and then show them that.

      then have them write a text adventure as a class - to get a taste of what bloated development process can be! they'll never agree to what should happen to the player!

      also, for 2nd graders it would be fairly easy to provide them with some solutions to problems from their math class written in basic, or have them write a basic program that generates math exams of their grade.

      --
      world was created 5 seconds before this post as it is.
    3. Re:Use abstract language by antifoidulus · · Score: 1

      You are right, I forgot to add code to deal with interrupts, namely when some smartass gets all pedantic over names you used in your pseduocode and makes a huge deal because he cannot recognize the difference between human language and code.

    4. Re:Use abstract language by Anonymous Coward · · Score: 0

      not cool dude. by "some smartass" I guess you mean me (who posted the example completed defect report, ready for implementation). The defect does not say there is something wrong with the name, but assumes that the name describes the implementation. As it is a fantasy especially for your fantasy example program I've assumed the obvious defect that programs tend to have given the slightly over-factored loop and provided a realistic, albeit appropriately fantastical, defect report with analysis of the problems that the fix might introduce that should be avoided with care - just part of the fantasy.

      So calm down, stop being so defensive, and don't talk to me by addressing me as "some smartass".

    5. Re:Use abstract language by syousef · · Score: 1

      do TPSRepeatsReportsUntilYouWantToCry

      Wouldn't it be quicker and easier to just pinch the child hard until he or she is sobbing and tell them that feeling is what coding is like?

      --
      These posts express my own personal views, not those of my employer
    6. Re:Use abstract language by jank1887 · · Score: 1

      you might want to sit and watch a bunch of second graders type on the keyboard. for a basic program, anything more than

      10 print "butt"
      20 goto 10

      will take them well into lunch time.

    7. Re:Use abstract language by LocalH · · Score: 1

      More real than you thought, huh? =P

      --
      FC Closer
    8. Re:Use abstract language by Anonymous Coward · · Score: 0

      Nah, too boring. It has to be something visual and interactive.

    9. Re:Use abstract language by Anonymous Coward · · Score: 0

      gosub without return -> goto

    10. Re:Use abstract language by uncledrax · · Score: 1

      You forgot the "or die()" conditionals

      --
      ----- The internet has given everyone the ability to have their voice heard equally as loud.. even if they shouldn't be
  12. Scratch by Anonymous Coward · · Score: 0

    Have you heard of scratch? http://scratch.mit.edu/

    It's a GUI based programming language that lets you drag and drop code 'blocks' and create programs that do visually cool things (like watching a character run around the screen).

    1. Re:Scratch by JMJimmy · · Score: 1

      That's a great idea. I'd add to that, not to treat them like idiots - it's amazing at what a second grader can understand. I know I was amazed with the stuff my nephew came out with.

    2. Re:Scratch by ajo_arctus · · Score: 1

      Scratch is very good, I agree, but for a presentation (if it's hands-off for the kids), the risk is that the kids will concentrate on the pretty 3D graphics and miss the point of those funny little grey oblongs (and they probably won't be able to read the instructions if it's projected on a big screen).

      How about Shoes (http://shoesrb.com/)? It's a really simple IDE designed to let kids explore Ruby. It lets you create Windows and buttons and event handlers and stuff really easily, so you can create a 'real' app in a few lines of really quite readable code. You can probably make the font big so the kids can see what you're typing.

    3. Re:Scratch by Anonymous Coward · · Score: 1, Interesting

      I don't know why no-one suggests Inform 7 in these cases. http://inform7.com/

      I mean, it's not the simplest programming language, but it's fairly intuitive. I really think it could make it easier to learn programming.

    4. Re:Scratch by jank1887 · · Score: 1

      there's a science / robotics / etc summer camp program run near me. sent my kid (3rd grade) to 'jr video game maker' camp for a week. he had a blast, and they also used scratch. free, and it introduces a lot of the structured decision making you need for programming and algorithm development.

      the first thing they made was something like pong. you make sprites and assign scripts to the sprites. then you create event structures, etc. "when sprite 'ball' touches sprite 'paddle' reverse direction", and things like that.

      You can't expect kids at that age to type. And the 'start by using Python as a calculator, then introduce basic functions, then variables', etc., etc, is crap for kids of that age. Kids interact with programs through video games. That's how you hook them into programming. you have to show them there's something fun to do.

    5. Re:Scratch by story645 · · Score: 1

      the risk is that the kids will concentrate on the pretty 3D graphics and miss the point of those funny little grey oblongs (and they probably won't be able to read the instructions if it's projected on a big screen).

      So do an interactive presentation. The code being in blocks makes it really easy to have the kids code along 'cause you can point at a block and ask the room "so how many steps should he go" and "what should he do next" and run the code every time you add a block.

      --
      open source modern art: laser taggi
  13. Why not use an anology? by Anonymous Coward · · Score: 0

    I would probably try explaining it like a computer program is like a castle built of blocks. Each block is like an element of code that has a specific function. So you can have the turrets, the drawbridge, the tower, etc.. each of these individually isn't a castle but when you add them all together then you get a program. Your job as a software engineer is to build the castles parts and then put it together.

  14. Know your audience. by XiaoMing · · Score: 1

    It's hopefully pretty straightforward to assume that no 2nd grader will really be interested in the process of software development.

    My suggestion is to start off trying to relate it to something they know and use. There has been educational software for as long as there's been the hardware to run it. OG Oregon trail (spacebar for hunting) to Newschool oregon trail (mouseclick for hunting), to that time traveling mathdog game that I always forget the name of. Try to find out if they play any educational computer games in their curriculum, and then divulge the dark underbelly of the development process that would to into such a game!

    And of course, even that isn't without methodology. Children of all ages (incl. us) all love a good story. They will most likely learn more from an example story of a funny situation regarding the software development process, in relation to a game they play, than any template directly trying to assault the subject matter, regardless of how well done it is.

    1. Re:Know your audience. by Anonymous Coward · · Score: 0

      *applause*

      Thank god somebody here has some sense. I was THE only one in 2nd grade that was interested in programming games. I would have loved to have a presentation. I was learning c64 Basic and never really did get it at all until I got older but I tried and read like hell.

      Like I said, I was the only one that gave a shit.

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

    1. Re:Peanut butter and jelly sandwich by dcollins · · Score: 1

      These exercises are really only fair if the permitted operations are defined as the first step.
      (1) Definitions (2) Axioms/Hardware (3) Theorems/Programs

      --
      We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
    2. Re:Peanut butter and jelly sandwich by v(*_*)vvvv · · Score: 1

      Love this. The "giving of instructions to the kids to execute" by another poster is also lovely, but this would be what I'd do if I'd preferred the kids to remain seated!

      A programmer can only make the computer do what the computer can already do. But then, how do you make it do something it has never done before, but just for you?

      Maybe start with a premise that you wash dishes. But provide commands that would let them piece together a program that would "scrub" jelly onto a "plate" of bread... Then at the end, don't forget to show them the instructions they compiled, and present that as a function they can execute again. And make a student do it.

      That is programming.

    3. Re:Peanut butter and jelly sandwich by Anonymous Coward · · Score: 1

      Be careful with that, peanuts may actually kill some of the kids.

    4. Re:Peanut butter and jelly sandwich by Anonymous Coward · · Score: 0

      I did something similar to this PB&J idea in an introductory BASIC class I taught, though it was at a (low end) university. It was a small class, so I was able to divide the group into pairs and give each pair a combination lock. I showed one person in each pair how to open the lock, made sure that person could do it, then they had to give the lock to the second person and give verbal directions on opening the lock. The exercise demonstrated the importance of precise meaning, language abstraction, and the dividing of a task into subtasks, just like for the sandwiches. I reckon any relatively simple task would do for such an exercise.

    5. Re:Peanut butter and jelly sandwich by wvmarle · · Score: 1

      Lovely. I will remember this one, may be useful.

      What you should to add, as mentioned in other comments too: reduce the commands the students can give to a set of very basic and unambiguous commands that you have written on cards. Like "move forward", "move hand up", "stop moving". Because that's what a programming language does too. They can of course use the same command over and over again, but nothing else than that.

      After all programming is of course first and foremost a way of thinking, the actual programming language or the computer hardware it runs on doesn't matter much. That only limits the actual commands available, and the speed at which they're executed.

    6. Re:Peanut butter and jelly sandwich by Wolfling1 · · Score: 1

      I did a presentation with a slightly older group where the task was to replace a flat tyre.

      Same kind of thing. It was hilarious. I actually had to intervene to stop their 'program' from dropping the car on my foot - which triggered off a whole new stream of conversation that I had not been anticipating.

    7. Re:Peanut butter and jelly sandwich by vlueboy · · Score: 1

      These exercises are really only fair if the permitted operations are defined as the first step.
      (1) Definitions (2) Axioms/Hardware (3) Theorems/Programs

      1-3) None of those 3 steps are things a 2nd grader can understand, so we MUST be "unfair" to those principles to be "fair" to the audience. We don't even learn a natural language that way; many noun translations and sentences are lightly explored first. Much later, the grammar rule disection begins. It's the same with absolute beginner and advanced Computer language learners.

      Programming like GP suggests is a common teaching aid. It's self-explanatory AND fun once those uninitiated start experiencing how silly program execution WILL BE without literal rules. The whole point is that the more steps you leave out, the more chaos is left for some kind of person to sort through cleanly. We know that person to be a "developer", but the kids will be amused enough with their human "computer" experiment that their interest is already roused.

      My school initiation was in 9th grade, with a much harder "Explain how one gets ready for school after waking up this morning." You have people eating breakfast without getting off the bed, dressing or even opening their eyes, and explaining that "walking" might require a whole session of "left foot, n angle, right foot, m angle, check obstacles" in itself gives you a view of how much automation our own brain abstracts away by the time we're out of second grade.

    8. Re:Peanut butter and jelly sandwich by Anonymous Coward · · Score: 0

      Practice at home. Are you able to communicate? If you usually are able to explain things to your kid and he enjoys it, you may have a change with 30 kids in a classroom for 20 minutes - if not, don't try.

    9. Re:Peanut butter and jelly sandwich by Anonymous Coward · · Score: 0

      This isn't like development that I know. In your scenario you already have the business requirement of a PB&J. More realistic would be "I'm hungry" as the requirement and then make them write a program to solve your hunger but keep rejecting their solutions and complaining that they're taking too long.

    10. Re:Peanut butter and jelly sandwich by Anonymous Coward · · Score: 0

      I've found the concept of a program as a recipe to be useful. Both have preparation (what do you need? why? how do you know?), process (what are the steps from start to end?), and a need to know when the process (the recipe or the program) is done. This is particularly useful if you've ever made assumptions about a recipe because it seemed familiar then ended up with an unexpected result, e.g. brownies with the density of bricks.

    11. Re:Peanut butter and jelly sandwich by Anonymous Coward · · Score: 0

      I used to do this the very first day for when I taught Programming 101 at the University of Kansas in the 90's.

      It was such a big hit that the department chair would often sit in to watch the hilarity (and awful big mess) that ensued.

      Interestingly, about a fourth of the students would drop the class after that session.

      Not sure if it was the knife yielding punk rock maniac (literally) flinging PB&J fixins everywhere, or the rude awaking at the sheer volume of details involved in being a computer scientist, but the ones who remained did extremely well.

      Obiligatory: http://peanutbutterjellytime.net/#story

    12. Re:Peanut butter and jelly sandwich by Anonymous Coward · · Score: 0

      I think it must have been a long time since you've been to a school. These days peanut butter isn't allowed anywhere NEAR schools due to allergies.

    13. Re:Peanut butter and jelly sandwich by Anonymous Coward · · Score: 0

      The teacher that I had that used this ignored my list of commands and assumed others. She taught me that users can't be trusted to follow directions and will always find some way to break your instructions/program.

    14. Re:Peanut butter and jelly sandwich by Anonymous Coward · · Score: 0

      These are 2nd graders, dude.

    15. Re:Peanut butter and jelly sandwich by jdeisenberg · · Score: 1

      I have done this one: put two different colored books in the center of a table, one on top of the other (say, a blue book on top of a green book). Then tell the students that you are a robot that can follow only these instructions: 1. Move forward one step 2. Turn clockwise (90 degreees; demonstrate) 3. Turn counterclockwise (90 degrees; demonstrate) 4. Pick up a book 5. Put down a book The robot can hold only one book at a time. Tell the robot how to switch the books so that the green book ends up on top of the blue book, and the books still have to be in the center of the table. Either have the students work in teams and come up with a list of instructions and then follow them, or -- more fun -- have them give you instructions on the fly and act them out.

    16. Re:Peanut butter and jelly sandwich by Just+Some+Guy · · Score: 1

      Ever notice that it's not any of the kids you'd actually want to keep around anyway?

      --
      Dewey, what part of this looks like authorities should be involved?
    17. Re:Peanut butter and jelly sandwich by Anonymous Coward · · Score: 0

      ...really? These are kids in grade 2. I have some instructions for you:

      Sit the fuck down and shut the fuck up.

  16. Two words: Scratch and Game by fzammett · · Score: 1

    I started getting my kids into programming at young ages... not 2nd grade, but close: my son was in 3rd grade, my daughter 4th. I tried a couple different approaches... gave him an old Commodore 64 (yes, a real one!) and the original BASIC manual that came with it and let him try to figure it out himself (he's been way beyond his age reading-wise for years now so it really wasn't as bad as it sounded). That didn't work. I tried coding a simple Pong game in JavaScript with him following along... that kinda/sorta worked, he was at least interested and went off and tried some things himself.

    In the end though, what kept his interest the best was Scratch and making games. If I was going to do what you're talking about I'd do a simple game with Scratch right in front of them. Be sure to mention that Scratch is free and they can ask their parents to get it on their computers at home to play with. Being a game will keep their interest and make it relate-able because, after all, what kid these days of ANY age doesn't play video games? You can throw in some comments about software development generally, vis a vis, how you'd go through a beta test phase, maybe draw a simple wireframe on the blackboard before you start, explain debugging briefly, etc.

    I think you won't have much luck with 2nd graders no matter what you do frankly... they just don't have the attention span to get very far... but a game with a visual thing like Scratch might keep them into it for at least a few minutes, might even get one or two of them interested enough to go do it on their own... so long as they don't come trying to take my job the next week! ;)

    --
    If a pion (n-) collides with a proton in the woods & noone is there to hear it, does lamdba decay into the source pa
  17. Sure by Anonymous Coward · · Score: 0

    tell them that we produce nothing physically real, but we replace ppl's jobs and create new jobs.
    Or, you can just tell them that we create those computer games, and make it possible to create cars, trucks, space shuttle, nuclear reactors, etc.

    If you are having this much issues with talking to kids, then I suggest that you not do so.

  18. Robotz by Anonymous Coward · · Score: 0

    To successfully teach programming to 2nd graders you need to get them interested. Start with a selection of Arduino-based robots, lasers and a toy shark. And Minibloq (http://technabob.com/blog/2011/04/17/minibloq-visual-arduino-programming/). Then ask the 2nd graders to have a last-man-standing demolition derby style competition using them.

  19. Maybe you don't by istartedi · · Score: 0

    When I was in 1st or 2nd grade, the whole idea of a computer in the home was still science fiction. One day, we were marched into a room at the school and shown some kind of hookup--in retrospect it was probably a lineprinter based hookup to the school's mainframe. We were shown a couple of printouts and I always rememeber what they said. "In order to work with this printout, you need to be good at math. In order to work with that one, you need to be good at reading".

    The whole thing was a dog and pony show of course, designed to encourage us to study so that some day we could work with the cool sci-fi machine that filled a room with hums and clicks, and sent men to the Moon.

    That was the only in-class computer "instruction" I had until highschool. I ended up writing software for a living a number of years.

    In other words, 2nd grade? You could tell them there are little gremlins in the machine and that it'll make rainbows and unicorns if they press the right buttons. Some even say that the average child doesn't have the neural connections to handle some problems until they approach puberty. I know that some math was a real PiTA for me until jr. High, and then it got easier.

    Also, I learned more computing outside of class than in it. I came to college knowing how to use a lookup table to make a program 3 pages which most people used 11 pages of if-then statements to accomplish because that's all they were taught. Ahhhh, good times. That said, I do sometimes wish I'd had more formal training. I got realy embarassed one time not knowing the meaning of the phrase "side effect", and I know that probably would not have happened if I'd had a hardcore MIT-style Lisp based CS curriculum instead of my own hacking and a few Pascal-based courses as part of a BSEE.

    --
    For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
  20. Focus on requirements and design by chatgris · · Score: 1

    Take a very simple application that keeps a list of what money you get, and what you spend it on. A simple display screen of Amount Reason Then explain you need to add two buttons - add money and spend money. Each button opens up a screen where you enter the information, explain how you need fields to enter the data, and buttons to go OK. Then you can go, what if you hit the button by mistake? You need a cancel button. Around this time you need to talk about how dumb computers are, and how you have to tell them every single little detail of what needs to happen. Then assuming the OK button is hit, you need to update the screen to add the new Amount and Reason. After you explain the above (use a blackboard to draw simple versions of what the screen should look like), you will have spent probably 15 minutes explaining what you had to go through at least. Then, if you have the resources, open up something like excel. Explain that each and every little menu and option and button requires just as much if not more analysis like what you just described - and that keeping track of all that information with such detail gets very difficult. And voila, you've largely explained what software development is all about, without touching code.

    --
    Open Your Mind. Open Your Source.
    1. Re:Focus on requirements and design by omnichad · · Score: 1

      Sorry - that's a requirement that kids don't understand. You have to understand the requirements fairly well to follow along. You might think that tracking finances is simple, but to a kid, the whole idea is essentially foreign.

  21. 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/
    1. Re:Scratch? by Anonymous Coward · · Score: 0

      I've taught 10 year olds how to program using Scratch, so using Scratch to explain software development to 8 year olds should be straight forward. If you do that though, make your program really simple (5 lines at most) and frame it as a story (such as a shark trying to catch a fish for dinner). If you want to ask the kids questions (to keep them engaged) and you're okay with them calling out answers, mention that to the teacher so that he can tell the children it's okay.

      And whatever you do, don't let the kids "program" you like a robot. The last time I tried that, the kids forgot to implement collision detection. OUCH!

    2. Re:Scratch? by ajo_arctus · · Score: 1

      Scratch is very good, but I'd probably recommend Hackety Hack instead. A third alternative is Alice. Somebody who wants to introduce children to programming should definitely look at all three.

      Hackety Hack: http://hackety-hack.com/

      It's Ruby, so it's nice and compact and quite readable, and it includes Shoes, so you can create windows and forms and respond to events in single lines of code (that do what they say).

    3. Re:Scratch? by Anonymous Coward · · Score: 0

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

      LEGO WeDo is also a good programming language for younger kids--7+

    4. Re:Scratch? by Anonymous Coward · · Score: 0

      Yes. Just use scratch. It's fun, easy, works on whatever computers they or their parents have, and will have them _doing_ rather than just listening.

  22. Dilbert by Anonymous Coward · · Score: 0

    Spend a half hour reading Dilbert cartoons aloud, with a facial expression that suggests you may be putting off something important, like Bush reading "My Pet Goat" to the Florida kids.

  23. More details please... by Fubari · · Score: 1

    More details, please.
    This "present special skills to students" is a vague goal.
    Is this like parents coming in for 10 minutes and explaining "I am Timmy's dad. I'm a carpenter. I build houses." That would be pretty easy: show them what software does (xbox, ipad, cell phone, internet(club penguin), a tickle-me-elmo or some other toy with software. Tell them you build software, and that software makes these things "smart". What *doesn't* use software in 2011? They're like what, 8 years old? Don't overshoot.
    If they want volunteers to help students acquire these skill, you're going to needs lots of prep time.

    1. 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.
    2. Re:More details please... by L4t3r4lu5 · · Score: 1

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

      Bring out a laser pointer, and a light show laser. Point the pointer at the board, demonstrate how boring it is; You can wiggle it, but it really just sits there. Dim the lights, put on some music, and set the light show laser to "auto" and demonstrate. Even the most simple of these units can be programmed to show certain patterns which could be replicated with LOGO and shown on a projector, onto the same board the light show laser is emitting.

      Your pwnage will be total and awesome.

      After writing this, I noticed you're writing in the past tense. I'm expecting you to say your daughter is now 24 and has a degree in Forensic Pathology or something, and this comes almost 2 decades too late.

      --
      Finally had enough. Come see us over at https://soylentnews.org/
    3. Re:More details please... by foniksonik · · Score: 1

      They are 7. You underestimate. I was building transformer robots from cardboard, rubber bands, and adhesives. They transformed and were built as components of bigger robots, ala constructicons or Voltron. I also was programming games from books using basic, a commodore 128, 5.25 floppies and a BBS login over a cradle based phone modem at 2.4 baud. Yes I knew what each was and read up on how to make the most of what I had.

      --
      A fool throws a stone into a well and a thousand sages can not remove it.
    4. Re:More details please... by Anonymous Coward · · Score: 0

      Don't worry, a few years later that other dad shrunk the kid.

    5. Re:More details please... by sconeu · · Score: 1

      Close. She's 21, and the other is 18.

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    6. Re:More details please... by Anonymous Coward · · Score: 0

      "I like this." Dude this ain't facebook.

    7. Re:More details please... by Anonymous Coward · · Score: 0

      >> "I like this."
      >Dude this ain't facebook.

      This.

    8. Re:More details please... by Anonymous Coward · · Score: 0

      "They're like what, 8 years old? Don't overshoot. "

      Overshoot??

      I learned to code at 8 as did most of my friends that code. I learned on a ZX spectrum and it only took about 8 or 9 hours of reading through it's manual for me to understand that I could program the machine to do things and what that meant. by 11 years old I had written a scrolling platform game in a combo of BASIC with some inline z80 machine code. by 14 I had done the same and better on PC in both QBasic and MS Visual Basic and then Learned C (Borland) from a book at 15.

      I genuinely believe that 8 years is about right to start introducing the concept of software engineering to children, do it too much later and they will never develop the thought methodology to program a machine. Once you have the thought processes down you can program anything in any language, it's just a matter of syntax.

      All that being said. I'd recommend using something like flash and demoing event driven action-script style programming of visual elements that look pretty. Kids are spoiled by high end graphics these days, their interface with the machine is so far removed from it's guts now that they might have difficulty grapsing lines and lines of precedural text based coding straight off.

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

  25. Robot or turtle by steveha · · Score: 1

    You might tell them you are going to pretend to be a robot, and tell them to give you instructions to pick up an object (let's say an apple), carry it across the room, and set it down. Write out instruction cards they have to use, cards that say things like "lower hand", "close hand", "raise hand", "walk forward", etc.

    The fun will be when they realize that robots don't have common sense, and if they tell you to walk you just walk until you hit something. Or maybe they didn't tell you to line up the hand with the apple, and your hand closes on air.

    Perhaps with fourth graders you might just bring a laptop that is set up with Python, and use Python's "turtle graphics" features to draw progressively cooler things.

    http://code.google.com/p/python-turtle-demo/

    steveha

    --
    lf(1): it's like ls(1) but sorts filenames by extension, tersely
    1. Re:Robot or turtle by Anonymous Coward · · Score: 0

      Note that the turtle software is named after an actual robotic device with a couple of wheels and a pen. You could buy one, hook it up, and draw an a really big sheet of paper for real.

      Then let the kids draw their own on screen only and pick your favourite to draw for real.

      My primary school gave us a go with a turtle with one of these, my high school had a drafting board with a pen arm that would move around and could pick up all sorts of colours... that was cool.

      For the kids that don't quite get it you could take a bigtrax (dumper truck, programmable with movements and turns just like a turtle but no pen).

    2. Re:Robot or turtle by Anonymous Coward · · Score: 0

      my high school had a drafting board with a pen arm that would move around and could pick up all sorts of colours... that was cool

      -- you mean you had an X-Y plotter. Those indeed were cool things. I used to have a Roland DXY 980. Cheated like hell using it to draw stuff in millimetre graphing paper for lab reports during my undergrad years. Our profs wanted it to be hand drawn on graphing paper. The plotter output looked close enough. I don't think they ever figured it out. All I had to do was a little modification to get the pen lowering/raising to be a tad slower so that it would not leave telltale pen-slamming blobs on the paper. It didn't require any firmware modifications, I'd simply send a PD command, wait a bit on the PC end of things, then send following line drawing commands. As long as the pen got down before the arm was moving, everything was fine, and that was the point of "spoonfeeding" the data.

  26. Re:Their attention spans are very short by rubycodez · · Score: 1

    no no no, that's the protocol for asshole managers who have no technical background but try to micromanage you. The sugar part is where you bring in donuts and such often so everyone loves you and it makes the asshole look even worse by comparision

    children, on the other hand, will pay attention to something interesting and fun, and respond to positive role model.

  27. Lego Mindstroms by Roger+W+Moore · · Score: 1

    If you have any lego mindstorms build a shooter bot (one that can move and shoot balls) and then show them how you put a simple program together to control it and get them to help design a program to make the robot hit a target (like the teacher's foot if they don't mind!). The lego system uses graphical programming which is not great but nice and visual and is so simple that even my son - who just entered second grade today - has been able to write simple programs with it.

    If nothing else it might encourage a few of them to go home and ask their parents for a Lego mindstorms set which is a good way to get them thinking of science and engineering in the future!

    1. Re:Lego Mindstroms by Anonymous Coward · · Score: 0

      Decades before MindStorms I always thought of programming as like playing with Lego, but with an infinite set of bricks.

      Each instruction in a programming language is as simple and well defined as one of those bricks, but when you combine enough of them in a smart design you'll produce something cool. And the good thing is - those programming instructions are free - you can have as many as you want. Plus mum & dad won't yell when they stand on a programming instruction without shoes on.

  28. Robots! by Anonymous Coward · · Score: 0

    Take in some sort of robot - e.g. parallax has the scribbler which can draw pictures with a sharpie. If you can work this into your presentation then I think that it will hold their attention. There are also the mindstorms robots, sumobots,... Perhaps you could look into some of the livecoding stuff that can draw pictures or play music. You could cover something like music sequencing and synthesis, or dsp. Maybe a kinect? How about discussing routing algorithms used on a GPS? I would think that you could have the kids try to figure out optimal routes? You could easily make this into a game.

    1. Re:Robots! by Belial6 · · Score: 1

      The best robot to bring in is a Bigtrak. http://www.thinkgeek.com/geektoys/science/de2e/

      It is programmable on the spot, and it isn't as fragile as something like a lego robot. At $25 it is also cheaper than most other robots as well.

  29. too young? by dudpixel · · Score: 1

    2nd grade might be too young to teach anything other than a vague concept of what it means.

    I think a simple game would be the best bet - but I suspect the only thing you could convey to them is some demonstration of "i type this code, turn it into something the computer can understand, and when you run it, it looks like this".

    I taught myself programming at ~10 years old by borrowing books from the library where you could type in the 10-50 line BASIC programs and run them. I learnt to tweak them to do other things, and eventually had a breakthrough in grade 6 where I discovered how to move characters around on the screen, in response to keyboard input.

    I'm not sure if a 2nd grader would be ready to do that, but who knows in today's world? These kids grew up with computers - whereas I only got access to my first computer when I was 8. And it was an Amstrad CPC6128.

    Anyway, I suspect what you're really trying to do is impress them with what it means to become a software engineer. You're not teaching them software engineering - you're showing them that if they like to create things, and invent things, using computers, then software engineering can take them there. Show them what is possible, and some idea of how to get there, and you'll have several class members decide right then that they're going to be a programmer when they grow up.

    I knew from 10 years old that I wanted to be a programmer. Now, 20 years later, I'm living that dream.

    Never underestimate the impact of a simple demonstration on young minds. My motivation was initially game development but as I grew older my love of games faded. I still like to create games, but I'm equally interested in other applications too.

    --
    This seemed like a reasonable sig at the time.
  30. Logo! by Ambiguous+Coward · · Score: 1

    Introduce them to Logo. 2nd graders can grasp the concept of a turtle that leaves a line as it walks. I say this from absolute experience: my father was a 2nd grade teacher for over 20 years and he introduced them all to Logo. It was always a HUGE hit, and the kids picked it up amazingly well. Remember, 2nd graders are only around 8 years old. They don't care about for loops and binary systems and memory and stacks. Logo is such a wonderful thing to introduce young children to "making computers do things." It allows them to explore the concepts of telling the computer to do what THEY want, and it keeps the lesson fun and simple.

    Make it even more interactive and have the kids execute their own Logo program physically, either in the classroom, a gymnasium, or (better yet) out on the playground with that colored plastic safety tape.

    Again: Logo, Logo, a million times Logo.

    http://en.wikipedia.org/wiki/Logo_(programming_language)

    --
    Their may be a grammatical error, misspeling, or evn a typo in this post.
    1. Re:Logo! by mrbluejello · · Score: 1

      Logo logo logo!

      Logo was everywhere back in 1986, but it's nowhere now...what's the deal with that?

      Awesome way to start.

    2. Re:Logo! by Ambiguous+Coward · · Score: 1

      Seriously, I have no idea where it went. I'm sure there are tons of free interpreters out there for every platform in existence, though. Surely google can reveal them.

      Teaching 2nd graders is all about not sweating specifics like how a program runs or pseudocode or crap like that. Logo's great because it's all about simple steps that make a picture, and then experimenting easily with those steps.

      In a similar vein: my father used to watch the school district and local businesses for old equipment that was getting thrown out. Old copiers, fax machines, any interesting stuff like that with lots of bits. Then he'd put it on a table in the back of the classroom, and throughout the year, the kids would take turns at it, usually just two kids for 20 minutes at a time. There was one rule: no breaking, no cutting. (And, of course, if you see anything that says "WARNING" or "CAUTION," fetch the teacher.) It might take them an entire year to take it apart, but eventually they'd get it. That's much more interesting and investigative than "how does a photocopier work?" At least to a 2nd grader.

      The key is encouraging free exploration, rather than explaining how a thing works. 2nd graders don't give a damn how it works, they want to get their hands dirty. Help them do that, and you'll see huge success.

      --
      Their may be a grammatical error, misspeling, or evn a typo in this post.
    3. Re:Logo! by Ambiguous+Coward · · Score: 1

      Also I just want to say it's rather awesome seeing a 1980's photocopier entirely reduced to its constituent parts.

      --
      Their may be a grammatical error, misspeling, or evn a typo in this post.
    4. Re:Logo! by crimperman · · Score: 1

      I thought this too. At my kids school they use a beebot from year 1 (5-6 yr old) and that fact really helped me when introducing my two to the concepts of programming using Kturtle. I'm not sure how available the beebot is outside the UK though.

  31. Lightbot by Anonymous Coward · · Score: 0

    http://www.kongregate.com/games/Coolio_Niato/light-bot

    The game Light-Bot covers some of these ideas with simple instructions controlling a robot to achieve a goal.
    Also has the bonus aspect of an increasing challenge giving the kids something to work towards.

  32. Scratch by null+action · · Score: 1

    I suggest showing them some simple programs in Scratch (http://scratch.mit.edu). It's like turtle, but with a block programming interface, and a built-in graphics editor. You could bring in a computer with a projector to show them basic commands and what the commands do. Kids that age are able to understand it, and have fun making a simple animation or game. Our elementary school has a computer lab; if yours does you could bring the kids there after your demonstration for some hands-on work. If there isn't a room with a lot of computers, you may be able to ask a few parents to bring in laptops so that the kids can try it.

  33. 4th graders can learn to code by Anonymous Coward · · Score: 0

    I learned simple LOGO programming (move the turtle, etc.) when I was in 1st grade. I taught myself BASIC when I was in 4th grade, then C a year later. So, I can't see any reason not to just teach them actual programming. For the younger kids, having the program manipulate something in the real world (like that turtle in LOGO) makes it more accessible. But by the time they are in 4th grade, just throw 'em in the deep end. They'll pick it up pretty quick.

    1. Re:4th graders can learn to code by Anonymous Coward · · Score: 0

      Actually, as a follow-up to my own post, I just remembered something we did in my 7th grade classroom that was a really good introduction to the imperative nature of programming. Every student in the class was asked to write down step-by-step instructions that a space alien could follow to make a PB and jelly sandwich. The teacher then picked out a few at random and followed the instructions. He made sure to intentionally interpret any instruction that was ambiguous in the "wrong" way, resulting in various substances being spread everywhere but on a piece of bread. It was very funny and after 2 or 3 complete failures to produce a sandwich, the students in the class started to get a much better understanding of how a computer executes a piece of code.

  34. Yes. by Anonymous Coward · · Score: 0

    I picked up a copy of 'Learn to Program BASIC' when I was in fourth grade. Though simplistic and outdated (which is probably good for the age bracket you quoted), it did a marvelous job at explaining the core concepts of programming in an applicable fashion. Honestly, the only reason I've been programming into my adulthood. If you can find a copy, I would recommend that as a resource.

  35. First you tell them by countertrolling · · Score: 1, Funny

    Get a good lawyer...

    --
    For justice, we must go to Don Corleone
  36. 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. :-)

  37. Show them you can spell too by Anonymous Coward · · Score: 0

    Show them that we can write programs to make computers do things, but can't spell:

    "... brave enough to attempted such a thing ..."

    Sorry.

  38. 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 Anonymous Coward · · Score: 0

      Excellent. They'll need to keep me around until I want to retire.

    2. 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.
    3. Re:Software Engineering in a Nutshell by swillden · · Score: 1

      If you truly can't find another decent-paying job because your experience sucks, perhaps you need to take a lesser-paying job working on mainstream stuff, to build up the experience you need for decent-paying jobs working on mainstream stuff. I'm assuming that the problem is that your "business software" is written in some lesser-used language and toolset. If you're writing "business software" in something like Java or C# and potential employers are telling you they aren't hiring you because of the type of software you've been writing, they're lying to you.

      I also recommend that, rather than drinking, you do some side projects at home. Try to recover the joy you found in writing software when you first started, and take the opportunity to learn some other languages and tools, and perhaps even to build yourself a portfolio of open source software to use as a proof of experience. Good employers will give that sort of thing as much weight as work experience. Plus it's fun!

      If, on the other hand, you see writing code as drudgery never found any joy in doing it for its own sake, then you really need to think about changing careers because software development isn't for you. If you're not passionate about it, you'll hate it wherever you're doing it -- and, honestly, you'll suck at it, which will mean that you'll never get a chance to work at the places you wouldn't hate.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    4. Re:Software Engineering in a Nutshell by jasenj1 · · Score: 1

      This used to be true of me. However, now I fall in the older, over 40, spectrum of software engineers. My wife, kid, and other outside work activities take up the time I used to spend tinkering and writing on the side. Also, after staring at a screen for eight hours+ at work, I don't have a strong desire to do it at home.

      I enjoy my job, and try to pick up a book now and then on some new language or framework, but I don't have the time or energy to be in computer geek mode all the time.

    5. Re:Software Engineering in a Nutshell by Anonymous Coward · · Score: 0

      I'd say this applies to IT jobs in general - you have to like what you do, or you're not going to, you know, like what you do. Those of us who are systems administrators know that if you are a real sysadmin, you live, breathe, dream, eat, and shit systems administration, not just go through the motions at work and then go home and forget about it, and we know that being a sysadmin is a personality type, not just a job. Yes, the meetings mentioned above do exist, and yes they do suck the fun out of your job. Every job has parts that aren't fun. But in between meetings, you do get to have fun, and after work you take it home and keep having fun with the same stuff (and without the meetings!).

      If these kids have the right interests and expectations, they can go into IT and have a very enjoyable career. This includes not having the expectation that they'll have money to burn for the rest of their lives. So this is a great opportunity to demonstrate what you enjoy about your work and why, and encourage interest in it. It's also a great opportunity for some of the kids to realize they DON'T share your interests, and the experience will be equally beneficial to that group too. (However, I think it's important for those kids too to understand a little about what goes into software development. After all, we wouldn't be terribly useful if computers were the only things we knew anything about. It'll make them better users, and they will be users no matter what their career is.)

      So to generalize even further, I guess a good overall message for them is to do what they like, regardless of which field that takes them into. At that age, their interests might completely change by the time they're old enough to start thinking about majors and careers, but this message will hold true. Find what you like to do, and start early! Don't wait until college. If your interests change by then, that's ok. If they do what they're interested in and they enjoy, their quality of life will be much better. They won't find a job that's all fun all the time - there's always boring meetings, maybe coworkers or managers that aren't so great, and whatever else - but if they enjoy the real work that they're doing, they won't wake up every morning dreading the day, and they'll inherently be better at their jobs. "If you enjoy what you do, you'll never work a day in your life."

    6. Re:Software Engineering in a Nutshell by Anonymous Coward · · Score: 0

      Engineer? You're an engineer? A "software" engineer?
       
      Right... excuse me, I hear the sanitation engineers coming and have to get the trash out.

    7. Re:Software Engineering in a Nutshell by dudpixel · · Score: 1

      Argue with the title all you like, but its my job title - as in that's what is on my contract.

      Its just a title. I dont think I'm an engineer, but if people ask what I do for work, I tell them what my contract says.

      --
      This seemed like a reasonable sig at the time.
    8. Re:Software Engineering in a Nutshell by Yamioni · · Score: 1

      Seeing as step G is the most important, I suggest pairing the pamphlet with little bottles of vodka and bloody mary mix. It serves double duty for avoiding people talking about work, since they can just break the bottle and attack them with the make-shift knife!

      --
      Cool post bro, highfive \o
  39. Scratch by xzvf · · Score: 1

    Introduce them to Scratch. http://scratch.mit.edu/ It's an easy programming environment where they can actually create something. You can demo programs other kids have written and depending on the time you have, they could actually create programs themselves.

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

    1. Re:Be glad... by martin-boundary · · Score: 1

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

      Just tell'em each morning you change into a red costume covered in black and white computer circuitry designs, and then you spend the rest of the day herding blue players to the games area for the MCP...

    2. Re:Be glad... by Anonymous Coward · · Score: 0

      "... but it's older than the sum of the ages of both of your parents"

      FTFY.

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

    1. Re:10 PRINT "BASIC STILL RULES!" by Anonymous Coward · · Score: 0

      The BBC Micro in my school just happened one day to have this typed:-

      10 PRINT "CAROLINE IS A BITCH"
      20 GOTO 10
      RUN

      Nobody knew how to stop it for hours.

      I learnt also that "We know who did it, we'll be easier if you come forward and admit" is bullshit.

      In fairness... she was a bitch.

    2. Re:10 PRINT "BASIC STILL RULES!" by Anonymous Coward · · Score: 0

      Technological old timer here, I'm only writing this dumb story because the parent describes exactly what got me into programming around 1979 (fourth grade for me)...

      I was fortunate enough to be in a school where our "accelerated learning" (ESCA?) classroom got a single computer - a TRS-80 Color Computer (the original dark gray kind with chicklet keys). It used a tape recorder to load software and I really don't think we had any for it. What we did have was a big "Learn Basic!" book (I say big because it was printed in a landscape format, which at the time was odd to me). The book had comic type characters, like a stick figure with a computer head that walked the reader through super simple stuff. It was geared towards kids.

      It didn't take me long with the book to write -exactly- what the parent suggested except, given the times, my first line was 10 PRINT "JEFF". When I ran it and saw JEFF up and down the entire screen I knew, at that moment, what I wanted to do the rest of my life. Seriously, I can reflect on that moment and it was pivotal - that's all it took. I don't know if today's kids - surrounded with smart phones, xboxes, the internet, etc. - would find a sucha rudimentary demonstration as powerful as I did since part of the allure at the time was that I could do something with a machine that nobody else could (I quickly outpaced my teacher's knowledge and ability); that just may not be a hook in today's world.

      In retrospect, I'm amazed there was a book targeted at - essentially - "coding for kids", but it's exactly what hooked me. I owe that author a debt of gratitude.

    3. Re:10 PRINT "BASIC STILL RULES!" by Saxophonist · · Score: 1

      I'd think it would be a little bit of a stretch from there to Eamon, but I get the point. Eamon is still around, by the way. Pretty fun stuff at the time.

    4. Re:10 PRINT "BASIC STILL RULES!" by Anonymous Coward · · Score: 0

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

      This is it. No matter what approach you take, the very best that you can hope for is that an endorphin rush will ensue in the brain of a kid when they realize that they can give commands to a machine and the machine will follow them without question. That's one way that lifetime programmers are born. It happened to me 32 years ago on a Lear Seigler ADM3-A terminal connected to an Alpha Micro AM-100.

      You will know you have turned them to the code side when they say "Haha... um.. how do you make it stop?"

      10 LET X = 0
      20 PRINT "I RULE!"
      30 LET X = X + 1
      40 IF X < 10 THEN GOTO 20

    5. Re:10 PRINT "BASIC STILL RULES!" by Anonymous Coward · · Score: 0

      10 PRINT "YOU SUCK!"
      20 GOTO 10

      This really works.

      I showed by 7 yr old son (in ruby):

      > 10.times {puts "pee"}

      # He replied, can you do it 100 times!?!

      He then wanted it printed 1,000,000 times and wondered if we could make it print out "poop" instead.

      He now thinks programming is cool.

  42. Start with the Fundamentals by Anonymous Coward · · Score: 0

    Have some run around in circles a specified number of times, some trade places depending on how many circles the other kids have run around them, and some run in circles passing papers to eachother until they're too dizzy (while !dizzy). If you do it right they'll be too tired to ask any questions that make you try to cover up the complex underside of the latest free apyware platform they're all playing these days.

  43. start with C++0x by Anonymous Coward · · Score: 0

    After the obligatory tutorial on emacs, you could move on to some of the differences between C++0x and vanilla C++, like variadic templates and strongly typed enums. That should cover most of your available time.

  44. In the deep end by multiben · · Score: 1

    Give them a copy of the C++ standard. Tell them if they don't understand it within one week Santa Claus will poison their pets.

  45. Don't by Psychotria · · Score: 1

    Really. You don't explain to 2nd graders what it's like to be a farmer, a preacher, an engineer, a politician, an author, a doctor, an ecologist, a chemist, a clerk, a physicist, a professor, a teacher, a police officer, a cabinet maker, a candlestick maker, a fireman, an astronaut, a pilot, a nurse, a proofreader, an electrician, a builder, a seamstress, an artist, a race driver, a GIS specialist, a mountain climber, a kebab maker, a bearucrat, a paramedic, a storekeeper, a herdsman, a psychologist, a film director, a lawyer, an artist, a husband, or a wife, a giver, or a carer, a baker, or a master brewer. You just don't "explain" these things to a 2nd grade student. There is no point, because they have not yet developed the understanding, passion, drive, abstract thought, whatever; what I am trying to say is that there is no way to "explain" because they don't have the background. You're over-thinking things I think -- just go in and say why you like your work. That's about as much as they could understand I reckon. You surely can't expect them to be enthralled by the source code of even a simple game.
     

    1. Re:Don't by Psychotria · · Score: 1

      Adding to my above comment, do you think they (the kids) would be excited if a baker came into the class and taught them how to bake a basic loaf of bread? Whack some flour in here, add a bit of yeast, a pinch of salt, pound it, turn it, let it rise, pound it, let it rise, bake (sorry if that's not the correct procedure, I am not a baker). Their eyes would glaze over until they ate the finished product. Even then they wouldn't have learned anything (well, the majority would not have). Except that fresh bread tastes nice.

    2. Re:Don't by jackbird · · Score: 1

      What are you talking about? My 4-year old and his friends go apeshit over baking. Every preschool in America has baking/cooking in the curriculum, because the kids love it and then everyone gets a snack. It frames planning -> effort -> reward in a way a toddler can immediately get it.

    3. Re:Don't by jds91md · · Score: 1

      I don't think that's true. 2nd graders, even kindergarteners are fascinated with people's jobs. Yes, they don't have enough abstract thinking to get the deep details of what each person does. But they do easily comprehend what a farmer does, what a baker does, and especially what some of the basic jobs like firefighter does. --JS

    4. Re:Don't by Anonymous Coward · · Score: 0

      Dude, I read 300+ "books" before 1st grade and a couple of real ones and wanted to learn multiplication. People like you create the idiocracy we live in today by dumbing down curriculums to the lowest common denominator. What we need to do is expose kids to the maximum amount of material they can absorb in an area that interests them while applying no pressure to get it perfect. The teacher's job should be to make knowledge and the learning process as engaging as possible.

      Never assume someone can't understand things at a young age. It completely depends on the individual.

    5. Re:Don't by angel'o'sphere · · Score: 1

      First I thought you wanted to make fun about your parent, then I realized you have no parent.

      I hope you have no kids. I really hope that.

      This by far the silliest post I have seen on slashdot for quite a while.

      A second grade kid is 6 or 7 years old!!! WTF what else do you "explain" or "not explain" to him? My father married again, my half brothers are 5 and 7. Both in school Heck they learn english in the first grade now.

      Where does this stupid idea come from that kids don't want to learn anything dont have the background or can not grasp this or that? Do you really think mankind would have evolved if the kids of our ancestors would not have been able to grasp everything by simply doing it?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    6. Re:Don't by Anonymous Coward · · Score: 0

      Actually, they would be excited if a baker shows them how to make bread, and even more excited if they participate. And i have seen it (not bread, but pizza and cupcakes).

  46. Just think back... by Anachragnome · · Score: 1

    Just think back to when you were a kid. What got YOU interested?

    For my cousin and I, it was this badboy.

    http://en.wikipedia.org/wiki/Big_Trak

    Man, the fun we had with that thing. The absolute top was getting the thing to fire a spring-action Crossman BB pistol (taped to the top of the unit) by using the dump function of the optional dump-trailer and a piece of string to pull the trigger when programmed.

    If that doesn't get kids excited about programming, I don't know what will.

    Or you can just fall back on the "In the Old Days..." spiel and start with "Back when I was a kid, we had old ladies weaving code..."

    http://en.wikipedia.org/wiki/LOL_memory

    1. Re:Just think back... by Anonymous Coward · · Score: 0

      I just had to be shown that it was possible. Learned just enough basic to write a choose your own adventure thing. Sure it sucked, but I was 7!

  47. You don't. by Anonymous Coward · · Score: 0

    Show them hello world and tell them that you use programs to solve problems.

  48. LINK TO COURSE by Anonymous Coward · · Score: 0

    Here's a guy who's invented a course that doesn't even require computers.

    http://www.youtube.com/googletechtalks#p/search/0/Tcwx-I6Arwk

    Learning to code has become both more important and more complicated
    in the last decade. We need to make it attractive and easy again.

  49. Once you explain it to them by NotSoHeavyD3 · · Score: 1

    Could you come by and explain it to some software engineers? I think quite a few of them could do with learning about it too.

    --
    Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
  50. How about not bothering? by aristotle-dude · · Score: 1

    Why don't you just let kids be kids?

    A big part of the reason why America is falling behind other parts of the world is because they have not learned the concept of "work smarter not harder". You can only get a certain amount of productivity out of a worker where keeping them chained to their desk for more than 7.5 hours a day for 5 days a week.

    The same problem exists with schools in America, children are forced to go to school far too early when they would rather be learning social skills and playing with their friends. A lot of european countries start schooling at a much later age but those students end up not only catching up within a year but exceed their North American counter parts the year after. Not only are children in school too early but now some parents are enrolling their children in summer school as well even when they did not need it.

    --
    Jesus was a compassionate social conservative who called individuals to sin no more.
    1. Re:How about not bothering? by Anonymous Coward · · Score: 0

      slack schooling only works when schooling works

      the USA is embarrassing in education. hell even 13 years ago I did not do a damn thing for the last 6 years and still got good enough grades to float though the first couple semesters in "college" where they now grade you based on where you click in a per pixel perfect 8x8 circle, no matter if it was the correct big ass windows box or not.

      yup thats learnin, who the fuck cares what it means, just click dead center of the O in OK and we will beat those red slants in a day

    2. Re:How about not bothering? by Anonymous Coward · · Score: 0

      Dude, stuff it with your rants about the educational system. He's just going in and talking to kids for a few minutes, not asking how to change the entire fucking thing. If anything what he's doing gives the kids a break from their normal routine. That's good enough for them.

    3. Re:How about not bothering? by aristotle-dude · · Score: 1

      slack schooling only works when schooling works

      the USA is embarrassing in education. hell even 13 years ago I did not do a damn thing for the last 6 years and still got good enough grades to float though the first couple semesters in "college" where they now grade you based on where you click in a per pixel perfect 8x8 circle, no matter if it was the correct big ass windows box or not.

      yup thats learnin, who the fuck cares what it means, just click dead center of the O in OK and we will beat those red slants in a day

      You just are not getting it. Maybe you should travel to europe and take a look at how things really are run there. Europe does not have slack schooling. They start later but once it starts, there is no kindergarten or grade one type stuff. The students have had their fill of being "kids" goofing off and exploring their world and are reading to put their nose to the grindstone. With the North American system, children are stuck in a school room being spoon fed information when they would rather still be at home playing with kids in the neighbourhood so you end up with kids that are not paying attention or day dreaming in class.

      Parents in North America just like to use public schools as a babysitting service rather than caring about actual tangible results.

      --
      Jesus was a compassionate social conservative who called individuals to sin no more.
    4. Re:How about not bothering? by aristotle-dude · · Score: 1

      Dude, stuff it with your rants about the educational system. He's just going in and talking to kids for a few minutes, not asking how to change the entire fucking thing. If anything what he's doing gives the kids a break from their normal routine. That's good enough for them.

      Dude, why the hell would you bother responding if you are just going to ignore everything I wrote? Are you saying that the US/Canadian education system is not broken? Are you telling me that I am full of shit? Backup your crazy statements with some facts pal of GTFO.

      --
      Jesus was a compassionate social conservative who called individuals to sin no more.
  51. Speshul Skillz by Anonymous Coward · · Score: 0

    Seriously, why would kids want to hear about how sit in my cube all day reading dry technical references, find obscure bugs, succeed at being an utter bore at social functions, and generally waste my life? If you really want to entertain and inform, write it up as a horror story. Perhaps someone already has and this is the reason the really smart kids avoid math and science careers. After all, why work hard when you can be a totally successful wall street or executive quackhole and make more in one year than most people save over a lifetime?

  52. 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!
    1. Re:Heh, you remind me that joke... by Luckyo · · Score: 1

      I would think that prostitutes have it easy. "I bring pleasure to these nice men I bring home, and they pay me for it".

      You certainly can't say the same as software developer.

    2. Re:Heh, you remind me that joke... by vidnet · · Score: 1

      I'm a software consultant. The difference is that I come to them.

    3. Re:Heh, you remind me that joke... by Corbets · · Score: 1

      I'm a software consultant. The difference is that I come to them.

      As opposed to most Slashdotters* who suffer race conditions and therefore likely come on them. *Sorry, I haven't done an obligatory Slashdotter reference in the while, and I apologize for the child-unfriendly humor, but my karma's probably too good anyway...

    4. Re:Heh, you remind me that joke... by Luckyo · · Score: 1

      "I come to them and bring them pain".

      FTFY. Then again, some specialized prostitutes do the same, and change a hell lot more then you ever could!

  53. 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. . . .
    2. Re:Here's my way of explaining "programming" by Inda · · Score: 1

      The classic "making a cup of tea" is used everywhere from teaching adults with learning difficulties to teaching project managers how to plan projects.

      There are many, many steps. Loops can be used alongside the decision-steps. It's all there.

      --
      This post contains benzene, nitrosamines, formaldehyde and hydrogen cyanide.
    3. Re:Here's my way of explaining "programming" by Anonymous Coward · · Score: 0

      But for kids, that's extremely boring. You want to keep them engaged. I like the "I am a robot." Idea the most personally.

    4. Re:Here's my way of explaining "programming" by Anonymous Coward · · Score: 0

      Sorry, but that is not programming.

      For every instruction he writes on the board, force him to drink a cup of coffee.

      When he is a gibbering mess and has finally written his instructions on the board after multiple re-writes and with it still looking like a mess, tell him that the requirement has changed and that he needs to start again. Of course the new version is due immediately.

      This is programing.

    5. Re:Here's my way of explaining "programming" by Anonymous Coward · · Score: 0

      Nice. I'm stealing this.

  54. Logo by Anonymous Coward · · Score: 0

    http://en.wikipedia.org/wiki/Logo_%28programming_language%29

    Its a language designed to educate kids.

  55. When I was in 4th grade.... by Anonymous Coward · · Score: 0

    When I was in 4th grade I was writing simple menus in qbasic so my classmates could open all the shareware games I was putting on the computers in the computer lab.

    There is quite a difference between a 2nd grader and a 4th grader, but computers were not nearly as ubiquitous then as they are now, so don't be surprised if some catch on faster than you think.

  56. No Do by Anonymous Coward · · Score: 0

    Most 7-8 year olds would be enthrolled if a baker mixed some dough in front of the with a brief summary of why he's adding each thing. For bonus points he could let them touch the dough set it aside to raise and letting them check on it and watch it grow. That's the kind of stuff 2nd graders run home to tell their parents.

  57. Simplify, simplify, simplify. by Anonymous Coward · · Score: 0

    Software development is how you make computers do fun things, things that maybe other people can't do. All the great things that you use a computer for, like games, playing music or surfing the web, needed somebody to write software to tell a computer how to do all that. You can write software too if you really want to, it's just like learning a new language.

    That's the basic speil I'd give them. Though to be brutally honest, if you're a software engineer and you don't know to express what you do in a positive, exciting way... then what the hell are you doing with your life?

  58. I remember by www.sorehands.com · · Score: 1

    I started in 1978, when I saw a film on computers. The I took a couple of courses at MIT (Fortran and LISP.)

    When I wanted a computer, my aunt told me that only rich people had computers at home for toys. Then she told me that, computers were just a passing fad.

  59. Keep It Simple! by cOldhandle · · Score: 1

    Remember they're still very young so just cut it down to the basics - maybe start by introducing some design patterns from GOF, explain the main software development methodologies and processes and their respective pros/cons, and maybe finish up with some quality management strategies such as Six Sigma and perhaps introduce some basic formal verification theory.

  60. Edit game config files by G3ckoG33k · · Score: 1

    Edit game config files, to begin with.

    Then find something that requires a loop, if they still have the interest in fiddling around.

  61. This is easy. by grasshoppa · · Score: 1

    You go up to the front of the class and say, "Abandon hope, all ye who enter this profession". If they want you to expound on it a bit, you add "Are you fucking crazy? Go play some foot ball, score with some cheer leaders, drink booze, smoke pot, do anything BUT become a software developer. Your peers are almost universally morons, and those are the ones in THIS country. It's entirely likely that by the time you graduate, you'll have to move to India or China to find work. Oh, and your managers will constantly challenge your faith in humanity."

    --
    Mod me down with all of your hatred and your journey towards the dark side will be complete!
  62. Bend the rules of a simple game by KevMar · · Score: 1

    Last week I felt like writing a little code with a simple game framework. The tutorial they had was a basic jet flying to the right shooting at and avoiding oncoming items. All the graphics and sounds were in the tutorial with copy and paste code so it was quick to throw together. My kids ages 3 and 6 were hanging out with me watching it come to life. I let them move the jet around when all I had was a moving jet. They saw it as we added targets, then bullets, then explosions, then sound.

    What they really loved was me bending the rules of the game. I changed the rate of targets from 1 to 10 to 100 and showed them how it changed the game. They got a real kick out of me changing the bullet logic. I made the jet fire stationary bullets and let the targets run in to them. I also made the bullets fly backwards. I would point out how silly it was and they would laugh. I basically explained that we were in control of how everything acted and we could make it as serious or as silly as we wanted.

    Make a simple game but comment out or turn off all the functionality. Then turn each piece on one at a time showing them the result. Have a few things that you can tweak that the kids can see make a difference in the game.

    --
    Im a gamer, not a grammer major. This post is full of spelling and grammer mistakes.
    1. Re:Bend the rules of a simple game by seifried · · Score: 1

      Could you maybe give the name of this or provide a link to it? Thanks.

  63. I Don't by Anonymous Coward · · Score: 0

    They will be confronted with the ugly sides of modern life early enough. Let them be kids as long as they can.

  64. Photo editing by NotPeteMcCabe · · Score: 1
    Bring your laptop and hook it to the classroom projector. Take a photo of the teacher and open it in two or more different photo editing programs. If you have a Mac, photoshop and Photo Booth will provide a very teachable contrast.

    Now demonstrate a variety of different effects you can apply to the photo, comparing and contrasting the UIs, discussing various design/programming decisions that go into developing this kind of program.

    Then take some pictures of the students and invite them to try the program, demonstrating the good and bad aspects of the UI for new users.

    This will give you an educational presentation that is engaging and interactive, on a subject that is relevant to the students.

    Don't forget to Email all the files to the teacher.

  65. isn't that cruel and inhumane? by Anonymous Coward · · Score: 0

    well children, software is like that homework assignment you had yesterday, except the teacher gave you the wrong assignment so you'll have to work late today and skip recess to finish your homework on time. and this is what your life will be like for the next 30 years. does anyone have any questions?

  66. love2d/XNA by Anonymous Coward · · Score: 0

    show them how to make a game in love2d or XNA or some other boilerplate-free game development tool

  67. Try this: by Tablizer · · Score: 1

    Say, "Computers are like dumb robots that need very exact and details instructions to do a task. They don't have common sense to figure things out on their own. They are kind of like young toddlers in that they don't know how to do very many things on their own. However, unlike toddlers they do listen if you talk to them just right."

    "You have to give them very careful instructions to tell them exactly how to do things and not skip any steps. Each step is split up into finer and finer steps until it's simple and thorough enough for a computer to understand. That's what a software developer's job is like".

    "If you tell a computer how to brush teeth, you can't just say 'move the brush back and forth.' You have to tell it where to put the brush with exact measurements, as if you were using a ruler; and tell it how it exactly how many times to repeat the movement of the brush from one side of the mouth to the other. You can't say 'kind of a lot', but give it a number such as 50 times."

    1. Re:Try this: by Anonymous Coward · · Score: 0

      Wow that makes it sound really exciting!

    2. Re:Try this: by Tablizer · · Score: 1

      My goal was to explain it, not hype it.

  68. OT: missing moderator points? by bradley13 · · Score: 0

    This is totally OT, but: I haven't had moderator points in *months*. It's not life-threatening or anything, but it is weird... Anyone else suffering the lack?

    --
    Enjoy life! This is not a dress rehearsal.
  69. programmable car by Mindflux0 · · Score: 1

    If you had one of those programmable toy car things that could work. Set up basic functions like "move forward one unit" "Turn left" and then make tasks or a maze for them and see if they can get the car through. The PB&J example earlier sounds similar and might be easier and more fun though.

  70. smallBasic by Anonymous Coward · · Score: 0

    Microsoft has released a free version of visual basic made foe young people to learn programming. They call it "smallBasic".
    http://smallbasic.com

  71. MW Black ops by xmorg · · Score: 1

    Hey kids do you want to make your own modern warfware game?!?!

  72. Software development may be compared to.. by Anonymous Coward · · Score: 0

    ...playing with Lego: You take a bag full of otherwise meaningless pieces (compare to any single Lego brick) and make something new and fun out of it (compare to the big working Lego truck).

    1. Re:Software development may be compared to.. by Osgeld · · Score: 1

      its more like getting a charity box of lincon logs, lego's, stickle bricks, and parts to an erector set and getting it all to work together on you 2011 pressure-washer to preform something useful on your "WTF are you thinking" platform

  73. how old is a second grader? by Adayse · · Score: 1

    We are talking about US children and not a road building machine? Tell those 7 and 8 year kids that programming is making those games they play on their xboxes and that it can take many lifetimes of programming to make a few minutes of fun something that many programmers don't have that much of. I have an 8 year old and I haven't tried to explain programming to him but I think that if I show him how to assign a keyboard macro in Starcraft he will get the idea.

  74. its Milk and Cookies... by Anonymous Coward · · Score: 0

    Funny. I gave a lecture about computers to a class room of Kinder gardeners. I gave the same lecture to a group of college students, albeit almost equally ignorant. I start with Milk and cookies. How do you make milk? You milk a cow, or you *buy* it. That is hardware. Cookies? You can buy it, make it from a cookie dough, or make it from scratch. How do you make cookies from scratch? The same as you program a computer, its a SET OF LOGICAL CHOICES. Then I tell them about logical choices. If and or but. not nor etc...etc... they have fun. I still dont understand WHY the college students have more fun than the kinder gardeners. The evaluating Dean said it was my comedic delivery... but I digress. You explain complex ideas in ways they can understand.

    I wish that someone would explain it to Microsoft in terms of security, and FEATURE BLOAT. They dont get it.

    Best of luck. ( really Milk and Cookies... it always works...)

  75. Turtle logo by Anonymous Coward · · Score: 0

    Check this http://logo.codeplex.com/, i used that on seventh grade but it was 80's back then. Perhaps lego mindstorm programs.

  76. Difficult by drolli · · Score: 1

    Software engineer is a quite abstract job to describe, as opposed to programmer.

    My best bet would be - depending on the time you have to spend and how far you want to get them involved: If you have a LEGO mindstorm or something, build a small car out of it and ask them to describe when it should stop, turn etc. to drive a given course and implement it.

  77. Turtle by Anonymous Coward · · Score: 0

    Turtle. As somebody already suggested, give the kids cards and ask them to get from one place to another. They need to understand that there is a very small number of simple commands (instructions) they can execute, let them see if they can do more than what's on the cards. In the beginning give them cards "Step forward", "Turn right", ask them to go some place where they need to make a left turn or turn around and step back. Let them do it, figure it out on their own, and compete. Add commands, obstacles, let them play.

    Ask them to keep the cards they use in a stack. After they succeed put the commands from the cards into a computer Turtle program and execute. Let them see that the computer turtle follows their program and does exactly what they did.

    Tell them they are computers. Let them sleep on that.

  78. LOGO for children by dUb · · Score: 1

    Over 20 years ago we were using LOGO programming language. It is visual where you see "turtle" who you command to move, turn left or right and so on.
    So that's visual and even children understand simple commands: go forward, turn left, pen down, go forward, turn left, go forward, pen up ...
    Also even more visual if you can have physical robot with a pen control. Children can see robot crawling on floor as you program. Control pen and even change color.
    Later they can learn loops and other more complex things. See Wiki: http://en.wikipedia.org/wiki/Logo_(programming_language)
    There are also links for teaching programming languages for children.

    1. Re:LOGO for children by Osgeld · · Score: 1

      + 1

      emulator and logo, your little turtle will be drawing stars and solving puzzles in no time

  79. There are no borders on the internet by KreAture · · Score: 0

    I wonder if Americans are surprised on a daily basis that there is life outside the US.
    There are no borders on the Internet, except the ones between gross, creepy and simply unnatural and they are fuzzy at best.

    1. Re:There are no borders on the internet by mldi · · Score: 1

      I wonder if Americans are surprised on a daily basis that there is life outside the US.

      I wonder if this false assumption about Americans will ever wear out.

      --
      If you aren't suspicious of your government's actions, you aren't doing your job as a responsible citizen.
    2. Re:There are no borders on the internet by Anonymous Coward · · Score: 0

      I would not doubt that many Americans are sometimes surprised that life exists outside the US. Those people live in their own little world and seldom think about the "rest of the world," despite the fact that most of their possessions are labeled "Made in China" or Japan or Canada or Mexico or Ireland or Scotland or Wales or England or Germany or Austria or Switzerland or Spain or Venezuela or India or Chile or Italy or a Russian country or a Scandinavian country, or some of their clothing lists Bangladesh, India, Mexico, etc., as its origin. A resident of any place I didn't include in that short list should not be offended (i.e. France/Morocco/Nepal/Brazil/Portugal/Egypt/Nigeria/South Africa/the Congos/Hungary/Tonga/Samoa/Iran/Persian countries/The Koreas/The Moon/Mars/Ganymede/Charon), since I would list you if I had time.

      Some of us, however, are keenly aware of the rest of the world, and not just because a list of top-level domains includes .ly or .ru or .ws, for example. Whoever you are and wherever you live, if it wasn't listed in the previous paragraph: you are implicitly included in the list, along with extraterrestrial places where life exists, since they also fit the criteria (life outside the USA). This message has become far too long, so I'm feeling cowardly.

    3. Re:There are no borders on the internet by Anonymous Coward · · Score: 0

      or Wales

      My inflatable Lovin' Lamb was made in Wales.

  80. One part is show simple algortihms by terminal.dk · · Score: 1

    Bubblesort is a good way to show it to children.
    You can show it on the blackboard. Then assign each child a number, shuffle them, and then let them move around, and do the comparison.

    If many children, you can make smaller groups, and finish with a merge sort (lowest number of the 3-4 rows steps forward).

    Another simple one is making a maze. Then ask them how to get thru, given that you have breadcrumbs at your disposal. The algorithm might be turn right at every opportunity. Backtrack if cul-de-sac, and turn left, then stick to turn right. You need to make some special case, like a loop in the labyrinth (So you will get back to your breadcrumbs). Development is figuring out how to describe it in a way a computer will understand. It does only what it is told.

    These are two examples of different difficulties. But gives a view into development. And the maze is a bit game like.

  81. Teach them as if it were what it is by zoomshorts · · Score: 0

    A recipe. Algorithms are recipes to perform some function.
    The peanut butter and jelly sandwich example would work.
    It can break the ice as to how to think. Remember to touch on definitions and types.
    def fridge_door
    def bread_wheat
    def bread_white etc.
    There are many variables in making
    a PBJ sandwich. Perhaps making a bread sandwich would be easier. But the recipe concept is a good basis for starting such thinking skills.

    1. Re:Teach them as if it were what it is by Anonymous Coward · · Score: 0

      Just explain that we're the guys who have to fulfill the empty promises of the guy in marketing. We're the sweat, blood and tears that buys him his next BMW.

  82. Analogy to books? by swehack · · Score: 1

    I don't have children and I'm not a teacher but instinctively I would attempt an analogy with books. Hoping they have at least read fictional books. I would start by avoiding all computer terms and simply explain the process of writing a book. How pieces of the book are usually written separately and then assembled and re-arranged until it becomes the awesome story you immerse yourself in.

    Once they understand this concept switching the analogy to computer programming would be simple in my mind, but I don't have the mind of a 2nd grader. I think it's important to avoid the magic of computers, because they are truly magic to most of us, while books are tangiable and everyone can start writing but not everyone can make a good book. Much like programming.

  83. Teach them basic logic by Anonymous Coward · · Score: 0

    Teach them basic logic, true, false, and, or, not, implication, quantifiers.
    Do this with simple concrete examples, whatever 2nd graders are interested in.

  84. What did I do when I was that age....? by uweg · · Score: 1

    Let them type in 20 pages of BASIC programs just to be able to shoot white pixels on a Black and White 127x48 display. (Ah I loved my TRS-80 model I)....

  85. recipe = algorithm by Anonymous Coward · · Score: 0

    Also have heard about explanation as "Recipe how to boil an egg" comparison to algorith:D

  86. First phrase by kikito · · Score: 1

    The first phrase of the course should be this:

    "Dear class,

    All the code that you write in the next 15 years will be shit."

    That, bizarrely, should motivate some to become programmers. It'll also help others choose different paths more quickly.

    And they will love you for being the teacher that said "shit".

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

  88. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  89. Making a sandwich by Half-pint+HAL · · Score: 1

    Good God, man, that's genius!

    I was going to suggest drawing-by-instructions (sort of like a live LOGO) -- it's good fun, but it's a bit abstract. The sandwich is perfect. OP: do this. Do it.

    HAL.

    --
    Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    1. Re:Making a sandwich by Half-pint+HAL · · Score: 1

      If it wasn't for the minor issue of sharp implements in school, you could demonstrate code libraries by moving from a traditional loaf to a bagged sliced loaf....

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
  90. Machines made out of words by Anonymous Coward · · Score: 0

    A long time ago, humans had to do everything the hard way - by hand.
    If they wanted a hole to put things in, they had to dig the hole with their hands.
    If they wanted to collect berries from the bushes, they had to pick them by hand.

    Eventually humans figured out that you could use other stuff - rocks, leaves, sticks, wood - to make things easier. They built axes from the rocks, bows and arrows from the sticks, and baskets from the grass and leaves. These were the first tools.

    Humans worked very hard for thousands of years to make their tools better. They made their axes sharper, their bows stronger, and their baskets tougher. Eventually they realized that you could attach some tools to other tools and make even better tools. They built carts, catapult, millstones, and many many other tools.

    Over hundreds of years, humans got better and better at making tools. Eventually, their tools were so good that the tools could do all the work by themselves, and humans only had to watch over them and fix them when they broke. These tools that could do many things on their own were the first machines.

    Over another hundred years, humans built many very complex machines. These machines were made of many parts, each part a tool which did a very special job. Eventually someone wondered, "What if I built a smart machine, a machine with every sort of tool I might need to do my work that I could tell what to do and it would do it for me?"

    The first smart machines were incredibly complicated, but they could do amazing things if you knew the right words to say to them. The words the machines used didn't look anything like our words though - here's a word that means "make a piece of cloth with stripes" (jacquard loom). Here's a word that means "multiply five times eight" (levers on a mechanical calculator).

    Humans built more smart machines and came up with more kinds of words, and more ways of talking to the machines. These smart machines were very powerful, and some of them even helped humans build even better, even smarter machines.

    Eventually the machines knew so many words that humans decided to call all the words "machine language", and they called instructions written in machine language "programs". Machines that understood programs could do almost anything, as long as the human communicating with them was able to write the programs correctly.

    Not so long ago, the machines became so complicated and had so many parts that no single human could understand everything about how they worked anymore. This wasn't a problem though, as the machine languages had also gotten better so that it was easier to talk to a machine and just tell it what to do. They realized that a program is a tool that their machines use, in the same way the humans had used tools long ago. In the same way, the programs that humans wrote became more and more complicated just as their machines had become more and more complicated long ago.

    Eventually humans realized that the programs the machines understood were also machines, in a way - machines made out of words instead of metal and electricity. Humans decided to call machines made out of metal and wire and electricity "hardware", and machines made out of words "software".

  91. Magic by beowulfcluster · · Score: 1

    Just tell them it's magic, and show a video of Hugh Jackman creating a virus while sipping wine.

    1. Re:Magic by ciderbrew · · Score: 1

      Creating or spreading a virus? Herpes is a badge of honour when Hugh Jackman is giving it out!

  92. 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 Opportunist · · Score: 1

      I've seen second graders. They don't like carrots, use fries and burgers.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    2. Re:Mine craft by larppaxyz · · Score: 1

      Yes, it was common back in 80's to do some basic basic. Maybe HTML and JS could replace that now.

    3. Re:Mine craft by digitig · · Score: 1

      Logo was designed with pretty much this age group in mind, wasn't it?

      --
      Quidnam Latine loqui modo coepi?
    4. Re:Mine craft by TheRaven64 · · Score: 1

      Yup, Logo was the second language that I learned when I was 7. The really great thing about it was that it came with an environment that could drive a turtle. Seeing stuff on the screen was okay, but seeing the computer control things in the real world was a whole new level of exciting to a small child (well, to me, at least).

      --
      I am TheRaven on Soylent News
    5. Re:Mine craft by Anonymous Coward · · Score: 0

      Yup, Logo was the second language that I learned when I was 7.

      You would have been much better off learning Spanish or Chinese, as they are still used in the real world.

    6. 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
    7. Re:Mine craft by tixxit · · Score: 1

      This may sound silly and is more a project than a talk, but perhaps you could make software development kind of fun. If it was a small class, you could split them up into a groups and give each group a bunch of lego with different colour blocks, wheel types, etc. Then, tell them they have to build a car of a certain size or something, but that there are some rules:

      • They are put into groups of 4.
      • Each group of 4 is split into 2 pairs of builders.
      • One pair is assigned the front half of the car, the other pair the back half.
      • They can only build as a pair, but not as a full group.
      • They can talk/collaborate/plan/design as a group, but not build as a group.
      • They can go back and forth between building as a pair and collaborating as a group as often as they want.
      • They can only bring their current iteration of their half of the car to the group meetings, but not other blocks.

      It'd be interesting to see if they take an iterative or waterfall approach to building the car, and which method works out better for them, whether time wise or quality wise.

    8. Re:Mine craft by narcc · · Score: 1

      Yes, it was common back in 80's to do some basic basic. Maybe HTML and JS could replace that now.

      Sadly, it can not. Neither for children or adults. The amount you need to learn before you can do something interesting is just too much.

      I have had much more success starting students off in small basic before moving on to HTML and JS. It's windows only, but I've yet to find anything half as good for beginners.

      I'd prefer an interactive mode to start beginners off, though the best environment right now seems to be Python. I'd rather not cripple their minds with that abomination. It's sure to cause more harm than good.

    9. Re:Mine craft by rufty_tufty · · Score: 1

      Boring seems to equal they want to see instant results - that sounds like most of the population with their social gaming - part of the thing that drives most gaming is making sure that action = result. Think of your favourite activities and usually that's because they all have instant gratification in some form.

      I think for second graders the challenge will be coming up with a simple problem they can understand and relate to. how to program a door lock perhaps as a very simple start, how the software in their mp3 player might work would be a great example:
      sketch out how you would code parts of the gui "well when you press this button it runs this code here."
      Then say how that would achieve things "What this code says is get the file and then play it"
      Stress most of the time you don't need to worry about how those things work.
      Then break down that level of complexity "While I'm not going to talk about how we decode a file what happens when we ask to read a file, well we ask this bit of software to get us the file it looks it up in a table and then knows how to find it and starts to send it to us a bit at a time"
      or something better phrased.

      again it might go over the head of most of them, but if it makes them realise that it's not magic done by PHDs but by real people who just concentrated on a problem who knows what you might start.

      --
      "The weirdest thing about a mind, is that every answer that you find, is the basis of a brand new cliche" -
  93. Write a BASIC program by martin-boundary · · Score: 1
    Write a simple BASIC program that does something fun in 10 lines. Start with

    10 PRINT "HELLO WORLD"

    and keep changing / adding to the listing until it's about 10 lines long and your presentation time is up. You can illustrate the full SDLC this way. I'd make sure to use GW-BASIC in fullscreen mode, and finish the presentation by running a PACMAN clone (*) that the kids can play with.

    (*) written in BASIC in case the kids want to see the code.

  94. I do this for a living with Kodu by Anonymous Coward · · Score: 0

    You've described my job, actually, getting more kids turned on to technology, especially girls.

    I lead the team that produces Kodu, a free PC-based software tool from Microsoft Research that lets kids build their own 3D video games. I've successfully taught hundreds of children some as young as 5 to take their first steps into software development. Kodu uses a visual language to teach the fundamentals of computational thinking, but isn't intended to model any particular language (because, as we all know, there are a variety of languages suited to a variety of uses.)

    You can check it out at http://fuse.microsoft.com/kodu. We've placed text based curricula as well as video tutorials there; if you would like more in-depth assistance, I can provide you with additional information. I will be out of the office until 9/12, but if you are interested, please feel free to contact me at bradleyg@microsoft.com

    Regards,
    Brad Gibson
    Senior Program Manager
    Kodu Game Lab
    Microsoft Research FUSE Labs

  95. RTFM! by Visserau · · Score: 1

    This is just a prefect opportunity to expand on a basic example that seems to be in about every textbook ever: the polymorphism demonstration with an Animal parent class and the makeNoise() function.

    Build a simple app that has a list of animals. Selecting an animal displays a picture and plays the sound. After showing them a very quick VB style "drag and drop" form creation you can demonstrate how the basic idea of classes works, and how basic design principles make coding easier, simpler and more maintainable. Obviously not stated in those terms, but with a practical demonstration of these concepts the kids with the right interest and mindsets will catch on.

    I imagine the demonstration of an animal making the wrong noise for the picture being shown should be a pretty clear demonstration of a problem for anything, and at worse case should get some laughs even from those who aren't following.

    I don't think its a topic that most are going to grab hold of, but I do know if I saw something like this in grade 2 I would have been intrigued.

  96. Show them Storytelling Alice by WetCat · · Score: 1

    www.alice.org
    It's a 3d world, which is programmed using visual programming language. For kids.
    A free one, also have source code.
    License is apache 1.0

  97. Google it by Herocom · · Score: 1

    What ever you do don't expect all of them to get it or care. but if you can engage one or two of them then you've done something good. They are young people, not aliens. Just like adults some get it and some don't....just read all the comments. Scratch, LEGO WeDo are good starting points. MIT Media lab has good stuff.

  98. RoboRally by dltaylor · · Score: 1

    I know the web site says "12+", but it IS easy enough for any third grader smarter than a house plant.

    If you scrap the timer and let them "pair program", if necessary, they'll get it.

  99. Robots and BNF by Anonymous Coward · · Score: 0

    I was about seven when I got interested in this stuff originally; using inter-library loans to read whatever I could about all sorts of exciting languages (snobol, apl, etc) and having epiphany after epiphany (of _course_ you make up a symbol set to express your programs in!) as I consumed this stuff avidly.

    I think two fun things that captured my imagination as a kid of that age were (a) driving robots; and (b) constructive grammars. If you can hook up a BNF interpreter to a speech synthesiser then you might have another entertaining thing for them to think about. I've no idea if kids learn the difference between a noun and a verb these days but having a machine talk nonsense is still utterly magical.

    (Incidentally I was also outside running about, climbing trees and learning to sail at much the same time.)

  100. LOGO! by Anonymous Coward · · Score: 0

    Natural answer is the LOGO programming language.
    Especially easy to draw nice and complex pictures on the screen by a few easily memorable commands.
    See on wikipedia

  101. Basics first by Anonymous Coward · · Score: 0

    Start with Turtle logo to explain the ground structures like variables, loops, etc.: http://logo.codeplex.com/
    If you got the cash, Lego Mindstorms has a similar approach, but is more approachable through their graphical programming and being able to build and touch the robots.

  102. Ask them who is interested first by roman_mir · · Score: 0

    Really, ask them who is interested first, before giving them your presentation, whatever it is, because those who are interested will bear through it, whatever it is. Those who are not - don't make them suffer and don't suffer them. Nothing useful will come out of this if you try to make a bunch of kids sit through this, where majority of them are bored to hell and don't listen to you and then they don't let those few who are interested to listen to you either.

    As to how you do it - I am looking at the highly marked comments here: games and all that. Maybe you should talk about video games and then connect that to how things are done IRL, how there is a connection between things that are modeled in video games and reality.

    Why not talk about a flight simulator game and then talk about a real airplane and talk about the human in the cockpit and how the inputs from the machines can be the same, whether the flight is actually real or is modeled on a computer? Get them interested, dazed and confused about reality - what's real, what's not? Bring Matrix into it (the movie), ask them how do they know things are "real" or modeled?

    Then talk about how our senses perceive information whether it's "real" or not and that we can fake things with computers to look like they are real (photoshop?)

    Talk about capturing real live data with computer sensors and storing it so that it can be played back later to make it seem like the events are taking place now.

    That's what I would try probably.

    Many people will say: simulate the inner workings of the CPU, the RAM, etc... OK, that's somewhat interesting maybe, but isn't it more interesting to understand WHY we use computers and WHY programs are useful, not necessarily HOW specific architectures are implemented, after all, Turing machine is just tape and some read/write heads and electrical motor, not a bunch of electrons flowing around in circuits. The implementation details are not really that important at this stage, the important thing is to understand WHY any of it matters at all.

  103. Agument mapping. by Anonymous Coward · · Score: 0

    What about teaching them about argument mapping.
    http://en.wikipedia.org/wiki/Argument_map

  104. A costume might help by Lawand · · Score: 1

    To the OP: if you're gonna go with this idea, it might also help get the kids attention if you wore a costume that makes you look like a computer. I'm thinking a box that looks like a CRT monitor on your head and maybe a shirt with a keyboard drawn on it. You got the idea. BTW, good luck on your noble quest!

    --
    Your Ad here
    1. Re:A costume might help by swillden · · Score: 1

      I'm thinking a box that looks like a CRT monitor on your head and maybe a shirt with a keyboard drawn on it.

      Not sure the CRT look is ideal... many six and seven year-olds may never have seen a CRT. They're familiar with flat panel monitors and TVs.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    2. Re:A costume might help by Anonymous Coward · · Score: 0

      I have an excellent idea for a joystick.

      Signed, P. Bear.

  105. CS Unplugged by Anonymous Coward · · Score: 0

    Have a look at CS Unplugged http://csunplugged.org/ . Lots of classroom activities, mainly aimed at young children.

  106. Computer Science Unplugged by Anonymous Coward · · Score: 0

    Maybe you do not need to address actual software development.

    I took part in a workshop from the guys doing the Computer Science Unplugged programm:
    http://csunplugged.org/

    The idea is to give the kids a good feeling of what CS is or could be. And they have already tons of fun activities for exactly the age range you try to address.
    The topics range from binary numbers to sorting algorithms, error correction and so on. While this sounds like something that would be difficult to explain to kids, these activities actually make it fun. I plan to do something along these lines once my kids reach 2nd grade.

  107. programming to a second grader by Anonymous Coward · · Score: 0

    Have you ever wanted to make a web site? Watch this. Permissions error. Wait, a minute... hold on... restart the web server .. uh, that's not right. forbidden. Ah screw this. Have you ever wanted to open your own blog, kids?

  108. Kids are going to love whatever you do. by salesgeek · · Score: 1

    Don't worry about teaching them computer science, focus on sharing what you do. Bring in some pictures and video. Maybe make a little powerpoint with a wireframe mock up, an UML chart, ERD or flowchart, some code and a screenshot of the finished product and talk about how you take an idea, plan how to implement the idea (or solve the problem), and then create code. Kids will really be interested in what happens if you make a mistake and how you boss decides you are doing a good job (if you are the boss, then talk about finding good people, and what makes a person good or bad for the job). They'll also be interested in the place your work (big picture, the building, what it looks like) and the kinds of people you work with.

    Maybe go around the office and explain what people on your team do (analysts, testers, etc) and ask them simple questions like "why is your job important" so the kids get a sense that you are part of team, and that everyone has their part to do. Adults forget a lot of times that kids are just as smart as adults, they just don't have any experience... so they are VERY interested in what your life is like even if they aren't ready for CS120 yet.

    --
    -- $G
    1. Re:Kids are going to love whatever you do. by Anonymous Coward · · Score: 0

      I almost fell asleep reading your summary. Now imagine a classroom full of ADD-kids, and it's probably much worse. Remind me to never have -you- explain your job to kids...

    2. Re:Kids are going to love whatever you do. by Yamioni · · Score: 1

      Bring in some pictures and video.

      The OP is trying to inspire the children to go into software development, not dissuade them. Showing 7 and 8 years olds a video of me crying, drinking vodka, and playing Russian Roulette at my desk all day would be a terrible idea.

      --
      Cool post bro, highfive \o
  109. But you know what's the difference? by Moraelin · · Score: 1

    Yeah, but you know what's the difference?
    If the prostitute's boss or client is riding her ass, chances are he'll finish in a couple of minutes :p

    --
    A polar bear is a cartesian bear after a coordinate transform.
  110. With Bell-labs Cardiac by DrSkwid · · Score: 1
    --
    There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
  111. Avoid "programming" for second graders by Anonymous Coward · · Score: 0

    Don't bother with the instructions/rules/programming steps, etc. That won't work for that age. Trust me, I've tried it with two classes of fairly smart second graders. Here's a writeup I did after a talk I did last year:

    I recently had the opportunity to talk about programming as a career
    with my younger son’s second grade class. A little bit of a deep subject for that age,
    but I wanted to take advantage of the opportunity to get them
    to think "unplugged". (This summary was also posted to the Yahoo group
    cs-unplugged-sharing.)
    I did a similar talk with my older son’s class a few years ago, and
    during that presentation I told them about algorithms (instructions).
    I told them that programmers write instructions for a computer to
    follow, and that my job was to make these instructions as complete and
    error-free as possible. I showed them a simplified example of the
    instructions to sort a group of numbers. I had a foam board with
    numbers pinned to the side, and a large poster board with the sorting
    instructions. The instructions were something like:

    1) Find the smallest number on the left side of the board.
    2) Move it to the next available space on the right side of the board
    3) Go back to step 1

    They were written more clearly than that, but that was the basic
    idea. My son helped move the numbers from one side of the board to
    the other as we followed the instructions. That evening, he told me
    that his friends and he thought my presentation was boring. (Second
    graders are a little too honest.)

    This time around, I tried to make things a little more fun and talk at a level that
    was appropriate for the class.

    I brought in a box of toys and other items from around the house.
    These included an iPod touch, electronic keyboard, a magazine,
    Nintendo DS, a stuffed toy that talks when you squeeze it, a pen, a
    calculator, and a toy car.

    When I held up each item, I asked the students if the item had a
    computer in it . if they said yes, I asked them what the computer
    did. A few items, like the electronic keyboard, confused them - most
    thought it did not have a computer in it. They understood that the
    BlackBerry and iPod had a computer, and they were not sure about the
    stuffed toy that talked. The toy car didn’t have a computer in it,
    but we talked about a real car, which has numerous computers in it – I
    asked them what kind of computers were in a car, and they knew some of
    them -radio, GPS system, etc. I also said there were other computers
    as well that kept the car running, such as fuel injection control. I
    think it was important that I brought in things that did not have a
    computer in them to create a contrast.

    At that point I told them a little about input and output from a
    program. A program has three parts: input, instructions, and output.
    A program acts on the input by following some instructions, then
    outputs something to the user as a result. (This is a very simplified
    explanation, of course, but it works for this scenario.)

    We talked about a calculator – input is the numbers and the operator,
    and when the equal sign is pressed, instructions execute. The output
    (result) is shown on the screen. With this in mind, I brought out
    the other items from the box and we talked about the input to each of
    them, what instructions they might execute inside, and what the output
    is.

    We listed our inputs:
    Mouse click
    Keyboard typing
    Touch screen
    Voice
    A signal from a cell phone tower that tells the phone it’s receiving
    a call
    A motion that causes an accelerometer to act on the current display
    (such as turning an iPod touch on its side)
    A camera that tracks the eye motion of a physically handicapped
    user, and moves the mouse pointer in response.
    A c

  112. Try csunplugged.org by roca · · Score: 1

    csunplugged.org has many great activities to help teach computer science concepts to kids (without the distraction of using computers). I've done a couple at my kids' school and it went very well.

  113. Show them some videogames by Anonymous Coward · · Score: 0

    Tell them youve made those games. I think theyll appreciate that ;-)

  114. A dance by NEDHead · · Score: 1

    teach them a dance that represents the register states, with a few rules that show how to take an input, manipulate it, and get an output

  115. Beyond Lazy by Anonymous Coward · · Score: 0

    Did you really asked "Are there kid-tested prepackaged presentations freely available". How about you do an ounce of research before requesting help.

  116. 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 GeckoAddict · · Score: 1

      This is my favorite comment on slashdot in a long time... well done, sir... well done.

    2. Re:Yep, he asked about software development by jeffmeden · · Score: 1

      Golf clap for the epic story. However, in the time you spent on that couldn't you have thought up at least one *nice* analog for software development that kids will get, like how it is similar to putting building blocks together? It can't be impossible to reach kids with what being a programmer is like, remember you are probably going to be compared to a fire fighter who stands up in front of the class and has to admit he never saved anyone from a burning building, has only gotten to use the Jaws of Life once, and mostly fills his days with washing the truck and practicing carrying hoses up and down stairs.

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

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

    6. Re:Yep, he asked about software development by uninformedLuddite · · Score: 1

      you forgot the kids getting tased and handcuffed for drawing on the pavement

      --
      The new right fascists are bilingual. They speak English and Bullshit.
    7. Re:Yep, he asked about software development by Yamioni · · Score: 1

      Soul-sucking? That's why we have beer and alcohol! If you're in software development and you're not showing up to work hung over every morning you're doing it wrong. =)

      --
      Cool post bro, highfive \o
  117. 4 step process by O('_')O_Bush · · Score: 1

    1. Get involved with FIRST lego league at the school
    2. Bring in robot
    3. ???
    4. Profit

    --
    while(1) attack(People.Sandy);
  118. Check AgentSheets by angel'o'sphere · · Score: 1

    Here: http://www.agentsheets.com/index.html
    That is a site dedicated to programming for kids, little kids even.

    What is it?

    is a unique software authoring environment where users of all ages can build games, interactive demonstrations, modifiable simulations, and more! Discover a new relationship to technology as you quickly

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  119. Cyberchase by Anonymous Coward · · Score: 0

    My 7-year old loves Cyberchase. Their episode about programming (in that case, a robot) http://www.youtube.com/watch?v=sfCXHB0WkmQ should help you get the appropriate level of complexity. And yes, I have almost every episode memorized. Lucky me :)

  120. LOGO! by sootman · · Score: 1

    If you have a computer and projector, consider logo. You can start by making a square (forward 20, right turn 90, forward 20, right turn 90, etc.) and then you can show how loops save time with its REPEAT command. Then, by wrapping a few repeats, you can make a lot of shapes (like, fill up the screen with squares to make a grid) very quickly with just a few lines.

    One cool thing about logo is it goes slow so you get to actually watch the shape being drawn and you can really see what's happening--it's not just like "enter commands, hit return, and BANG there's a square."

    --
    Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
  121. Sorting Algorithms by Anonymous Coward · · Score: 0

    Have them line up randomly and sort them by height using a sorting algorithm or two.

  122. Robots by novacara · · Score: 1

    Can you do something with robots? If you can show kids how putting in this command makes the robot drive forward/turn/etc they will think that is pretty cool.

  123. Just be clear and use plain English by vga_init · · Score: 1

    Obviously 2nd graders are not going to understand technical terms they're not familiar with (or are familiar with but misunderstand their meaning), but I'm shocked to see how many people commenting on this question underestimate the intelligence of 2nd graders. When I was a child I had been using computers since before I was in kindergarten; back then there were still many people back then who didn't have computers at home. If they hadn't encountered computers at home, they were certainly exposed to them in school. Nowadays, computers are ubiquitous in homes, and that's not counting other electronics that generations of Americans have grown up with. Kids are familiar with computers because they're a fact of life.

    Personally I'd love to talk to kids about computers, because they'll be eager to learn and will have lots of questions because they are aware of the fact that computers are present in their lives and that they have gaps in their understanding. You just have to give them simple and clear explanations so that they can establish their general knowledge more, and don't delve into really specific technical issues or nuanced examples (I know we love to do that, but restrain yourself). Tell them a little bit about what computers do, why they're important, what programming has to do with computers, and why programming is important. I'm sure they'll eat it up as long as you don't bore them with overly lengthy explanations. It's just like talking to any adult who is not familiar with computers, except the children will comprehend more and learn faster than a computer-illiterate adult would (don't be surprised when the kids get what you're saying but their teacher doesn't). Kids are biologically equipped with learning super powers--use that to your advantage.

  124. another aproach by tboulay · · Score: 1

    Just pretend that you're giving a presentation to your parents on software development; only you won't have to 'dumb it down' so much for second graders.

  125. Start off with something OTHER than software by Anonymous Coward · · Score: 0

    Try starting off with something other than software. For example when talking about loops, start talking about how a waterwheel works, then work into loop. When talking about logic, start with the opening and closing of gates at a Zoo.

    When I'm conceptualizing and coding I still envision things like car engines or assembly lines.

  126. Start with UML by Anonymous Coward · · Score: 0

    Start with UML and explain the waterfall method vs. scrum. Tell them about the benefits of Rational Rose. Make them do exercises in unit testing, regression testing, and CVS.

  127. Punt by Anonymous Coward · · Score: 0

    I faced this exact challenge last year, and after racking my brain for a captivating way to describe software engineering, I punted and talked about computers themselves. The result was a visual, tactile experience that really engaged the kids. While it was not explicitly about software, I at least got the kids thinking about careers related to computers which I think is pretty good when you are dealing with 8 year olds. I ended up repeating my "show" to 4 other classes that day.

    I brought in an old desktop, and an old laptop, and three manilla envelopes.

    First we talked about the desktop computer and identified the obvious components (mouse, monitor, keyboard) Then I slide open the case and let them look at (and touch) the PS, memory, processor, disk. Then I opened a manilla envelop and pulled out schematic diagrams of circuit boards.

    Second, I did the same thing with the old laptop. Identified all the same bits, lifted off the keyboard and backplates to show the internal bits. Let them touch things. Opened my second envelop to show more schematic diagrams of circuit boards.

    Finally, held up my third manilla envelope. Asked for guesses about what was in it... Plans for a newer, better, smaller computer? I pulled out an Ipad. All the same bits still present - mouse, monitor, keyboard.

    It was a very successful day, and while I didn't create any programmers I know I sparked some interest in the field.

  128. trainwreck waiting to happen by Anonymous Coward · · Score: 0

    My boss and I did this last summer. It, in many ways was a train wreck. When we asked the second graders if they had any questions one asked "I like monster trucks". We got to an older group of students and one student told us "This is my shirt, my daddy got it for me just before he left me". We finally got to 6th graders which to some degree paid attention....Their question...."If someone paid you like a million dollars could you hack into a bank and take all their money?"

    Good luck

  129. Explain Programming or Software Development? by Anonymous Coward · · Score: 0

    As I see there three ways you can go with a talk like this. In all cases remember, you probably aren't out to teach them something they will remember and use, but to wet their appetite to go further. Whatever you do make it interactive and concrete.

    1. How to program, as most posts are assuming. It is a special way of thinking about problems and tasks. Some of the kids will find it cool. Some might get it. Many (as with many adults) might find it a bit overwhelming. Don't get me wrong, this not not a bad thing, you'll hook some and give others an appreciation and something to think about.

    2. How to develop an application. Answer the question "If I wanted to make my own angry birds what do I do?" What are all the pieces? How long will it take? etc.
    Don't underestimate 2nd graders creativity. You could give them an "idea to development to market map" as a handout. Some will go home and start their own projects.
    This is the way I would go probably.

    3. What it is like in your industry. What software do you build and why does it matter. Who do you interact with etc. Depending on the industry it could be interesting, but if it isn't about rockets I'm not sure ;)

  130. Make a PBJ Sandwich by Anonymous Coward · · Score: 0

    The way I taught my kids was to have them explain to me how to make a peanut butter and jelly sandwich.

    If they said "Take peanut butter and jelly and put it on the bread". I would counter how they got the bread if they didn't open the bag or even where they got the jelly.

    Slowly I was able to make them understand the instructions needed to make a PBJ.

    Open Cupboard
        Get Jelly
        Get Peanut Butter
    Open Drawer
        Get Knife
    Open Bag
        Get Bread
        Get Bread (we need 2)
    Open Jelly
        Spread Jelly on Bread 1
    Close Jelly
    Open Peanut Butter
    etc

    You can go as low as you want explaining that each lower level is a different layer of computer language Script -> C/C++ ->Assembler

  131. I dunno... by Moraelin · · Score: 1

    I dunno... I definitely didn't start in college with programming. In fact, I was already good in several programming languages, including Z80 assembly by the time the muppets in college even tried to teach us the first thing about computers.

    But on the whole I still say that I used to find it a lot more fun before it actually became a job. Sure, I could still do it for fun at home, and actually still do, but... somehow it's not the same thing any more. Too often after dealing with yet another moron whose clever optimization is to use Integer instead of int, because, I kid you not, "then the runtime only copies a pointer to it on the stack, not the whole int", or another moron customer who thinks 90% of the work is done after he saw a HTML mockup (after all, that is the hard part, right?), or some moron whose idea of managing or testing is to count pixels with a magnifying glass and woe if a label is rendered differently in his browser than in the Paintshop images in the requirements, or some moron whose idea of performance testing is to time the unit tests and call a meeting if this week it runs slower than the last week (e.g., because extra tests for fixed bugs got included), etc... too often I just want to forget that programming even exists.

    My personal advice to any kid who loves programming would be: find a different job to pay the bills, and keep doing programming just for your own fun. That way you'll both keep your fun hobby untainted by such crap, and probably have higher job satisfaction in that job that pays the bills too. And while it may seem like an eternity until you'll be a boring 40-year-old or even 30, trust me, it'll be sooner than you think that you find yourself on the shit end of a bigger age-ism stick than porn actresses do.

    --
    A polar bear is a cartesian bear after a coordinate transform.
    1. Re:I dunno... by Anonymous Coward · · Score: 0

      I think you just need to find a better place to work.. I love programming, and I love my programming job... it's not impossible.

  132. I've done this by Anonymous Coward · · Score: 0

    I've talked to a group of 1st graders -- but I covered more information about Flight Simulators (my industry) than programming.
    Bring a gift or toy of some sort (I brought small gliders that the teacher made the assemble at home).
      I brought our software (something like Google Earth) and we got to fly around the imagery nearby their school.
    (this was years ago, when that was novel)
    I handed out a marketing brochure which had pictures.
    Even with that, the discussion led down paths like, "why can't you bring drinks into the simulator?"
    Good luck!

  133. Logo by jdavidb · · Score: 1

    Demonstrate using the Logo turtle to draw graphics. Write simple programs. Maybe get the kids to pretend to be turtles and walk around the room following your instructions, or draw on the chalkboard following your instructions.

  134. Back in the day.. by Anonymous Coward · · Score: 0

    We let them play with LOGO on Apple II computers. Seemed pretty fun and educational to all involved.

    The trick is getting them to grok the abstracts, like "design, code, test, iterate, release, update, replace", etc.

  135. Simple Explanation by T.E.D. · · Score: 1

    Here's how I explain what I do to people who don't understand programming.

    I just say, "I tell computers what to do. They tell me to go screw myself..." (insert hand gesture here) "and do something else. Then I spend the rest of the day trying to figure out why."

    You might have to change the hand gesuture and verbage a bit for second graders, but I think it would still work.

  136. write a program that draws shapes on the screen by juanhf · · Score: 1

    i presented something like this before

    i had an old ti99 computer and asked the a/v department to bring me a t.v.

    i hooked it all up and ran a few programs for them that drew shapes on the screen

    might take a while if you want pretty colorful graphics but kids will understand the concept of:

    lots of gibberish (code) = fun stuff!

  137. Storytelling by Anonymous Coward · · Score: 0

    Programs are special stories for the computers that tell them how to do something.
    Kids understand stories.

  138. 2nd grader's experience with software development by majormer · · Score: 1

    As a 2nd grader in 1987, I had a class to learn the Logo programming language. This turtle graphics based language was simple enough to present quickly, and was designed to be engaging for youth. My first class involved a game with a circle randomly placed on the screen. There was a turtle also randomly placed on the screen. I had to guess at the angle I needed to turn my turtle (right 45 degrees) and then guess the distance in pixels. The turtle would then move to the location, and I would score if it landed in the circle. Simple game, but then we could look at the code and understand how it worked. That one class engaged me enough to turn me towards IT as a career later in life. It also inspired me to try an understand how things (like games) work.

  139. Not Software development but web services to eight by Anonymous Coward · · Score: 0

    Not exactly software development for second grader but webservices explanation for 8th grader is posted at http://architecture-soa-bpm-eai.blogspot.com/2011/06/webservices-for-eighth-grader.html.

    tj

  140. Check out visual programming Or processing by Anonymous Coward · · Score: 0

    openprocessing.org has a lot of cool projects you could show them. Although they aren't actual "software development", most exercises explain the rudiments of programming.

    Or even show some fun stuff with programming the Wiimote or xbox kinect.

  141. Peanut Butter and Jelly by Spazed · · Score: 1

    I have had a few past teachers ask me to come in and talk to their classes about computer science/programming. The key to it is to show them the flashier sides of programming. Don't get into information theory, inheritance, memory usage, blah blah blah. Show them some javascript that makes all the images on a web page fly around. Show them a game you wrote. For the older kids you can usually bust out a TI-86 and show them that with a little code you don't really have to think about the math(let them figure out that to code it they will have to learn the math anyway).

    For younger kids I recommend the Peanut Butter and Jelly Sandwich algorithm. Bring in a loaf of bread, a jar of peanut butter, a jar of jelly, and a knife. Set them out on a desk and tell the class that you are going to be a computer and they are going to program you. They need to program you to make a PB&J. Tell them that as a computer you can only do what you are told, you don't know ANYTHING about making sandwiches. They will generally start out with "Open the bread", to which you reply, "What/Where is this bread you speak of?" You can get as specific or as general as you like, generally you can leave out things like how to undo the twist-tie on the bag, but when they tell you to spread the peanut butter you can really mash it in there and tear up the bread. It takes 15-30 minutes depending on the class to get an edible sandwich, but the kids love it.

  142. I Introduced BASIC to Third Graders by JoeCommodore · · Score: 1

    back in the 80s after HS I T.A.ed in a computer class for the lower grades.

    The curriculum was basically explaining what programs do (role-play a robot making a peanut butter sandwich, have the kids tell the robot to do...). After theat we went into turning on the computer (Commodore 64) loading programs etc. then for the programming we did a type in, simple graphics demo, something they can type in the the length of a class period and be able to modify easily to produce new effects.

    I think this could be done with a simple python script, have it draw something pretty and let kids go crazy the adjusting the values the make the design.

    Don't expect them to retain any of that... unless they are really interested then they will be back asking questions and progressing on their own. Main point is to show the kids computers/programming ins't so unapproachable, so later computer experiences don't worry them as much.

    --
    "Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
  143. Programming for kids by DI4BL0S · · Score: 1

    Try this out: Tutle Programming Game its designed with jong age in mind

  144. Executing instructions by Anonymous Coward · · Score: 0

    Use the same explanation one of the guests on the radiolab AI episode used. He was talking about how he learned to program as a kid relating it to robotics. Something in the vein of your average person would think of telling something to pick a book off the table, if you're speaking to software you would first have to teach it what a table was, what a book was, how to grip something, ect. Each portion requiring individual instruction sets.

    It seemed a lot more insightful on the episode.. point being keep it extremely simple most high-schoolers don't understand computer science much less elementary school children.

  145. Oblig. xkcd by shikaisi · · Score: 1

    Oblig. xkcd http://xkcd.com/722/

    --
    No left turn unstoned.
  146. Same as ... by PPH · · Score: 2

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

    --
    Have gnu, will travel.
    1. Re:Same as ... by Anonymous Coward · · Score: 0

      ...and more complex concepts.

  147. Use the Lego Analogy... by TemporalBeing · · Score: 1

    Pretty much all of them should understand Legos, so use Legos (Kinex, Constructor Set, Lincoln Logs, etc.) to build something. As others have suggested, involve the children - decide what to build, how to build, etc. as a group.

    --
    Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
  148. limit the language by Anonymous Coward · · Score: 0

    I usually present algorithms to children by liking them to explaining a task to an alien. This alien can only understand a limited set of words like "goto, cabinet, turn, move..." and so on.

    I then challenge the children to instruct the alien to make a peanut butter sandwich.

    Extra points for the most limited language.

  149. There's a site for that by raphael75 · · Score: 0

    There's actually a website dedicated to this exact topic of teaching computer science to kids: http://csunplugged.org/videos

  150. Try Scalable Game Design with AgentSheets by the+agent+man · · Score: 1

    AFAIK this is the only approach that has a proven track record for motivating just about all kids in schools (elementary, middle, high) including girls (average ~50%) and providing early evidence of actually relevant skills that can transfer to other school topics such as science. It is used in entire school districts as part of the curriculum. Most importantly, it can be used to make games as well as simulations actually relevant to schools (STEM courses). Some movies showing kids making games and simulations:

    http://scalablegamedesign.cs.colorado.edu/gamewiki/index.php/Videos

    If you have one hour do this: hook up AgentSheets to a projector and start making a game (e.g., a frogger like one: http://scalablegamedesign.cs.colorado.edu/gamewiki/index.php/Frogger_Design)

    - good: you walk them through the design and implementation process and build part of the game. And, YES, this can be done in an hour and with elementary school kids.

    - great: have a kid come up and talk it through, with the help of the rest of the class, on how to make the game.

    Have a look at teacher created instructions: http://schools.bvsd.org/aspencreek2/computer/Frogger2/frogger_tutorial.swf

  151. Logo by gilesjuk · · Score: 1

    Logo was my first experience (alongside BASIC) of programming.

    It's quite a simple thing to pick up and it shows them how to make shapes.

    It was designed for education too:

    http://en.wikipedia.org/wiki/Logo_(programming_language)

  152. How my 2nd/3rd-grade teacher taught us LOGO by WilliamBaughman · · Score: 1

    http://en.wikipedia.org/wiki/Logo_(programming_language)

    I was in either second or third grade when our classroom teacher showed us how to control LOGO, a programmable turtle that could be used to draw shapes. She put me on a carpet in the center of the room, with a ball of string to unwind in a trail behind myself. She told the class that they would use me to create a shape on the carpet, by telling me where to go.

    She asked the class:

    1. what shape to make
    2. which way I should face to start making the shape (a square)
    3. how far forward I should walk to make the first side
    4. what I should do next
    5. etc.

    When the square was finished, she discussed how I had repeated some steps (turn 90 degrees, walk forward) and used that as an introduction to for loops. Next, she lead us to the conclusion that we could make a shape of N sides by having me turn 360 / N degrees. Last, she let the class figure out that they could have me approximate a circle with a high value of N.

    This whole exercise took maybe two hours. We spent the rest of the afternoon in a lab, programming with Logo, in pairs. Don’t feel bad if you can’t lead a bunch of kids through basic programming and geometry before lunch, this woman was a genius teacher. Her class size was maybe 30. Looking back it’s clear that she must have used some form of mind control to keep us in line.

    Obligatory XKCD: http://xkcd.com/722/ (Computer Problems)

  153. Scratch, also check out CT by krswan · · Score: 1

    I'm an elementary school teacher, and we have 2nd graders using Scratch at my school with great success. Having them create interactive multimedia may be a better way for you to start - create some characters, program them to do or say things in sequence and interact when they touch each other. Be sure to check out the in-program help section and print out the "Scratch Cards" as an easy way to get kids started. Also, check out http://scratched.media.mit.edu/ for lesson plans and ideas from teachers around the world.

    Another idea - I just downloaded and started reading some documents on "CT" - Computational Thinking from ISTE and CSTA ( http://www.iste.org/learn/computational-thinking.aspx - free registration required to download). Haven't read it all or used it with kids yet, but it looks interesting. There are suggested activities that don't involve computers, similar to a few mentioned in previous posts to get kids to think about processes, algorithms, etc... including stuff for younger kids.

  154. Puzzle by sorak · · Score: 1

    To me, software engineering is like solving a puzzle. You may want to create "puzzle pieces", or bring Lego blocks, and label each one with either a system or a function and explain that this, like math and engineering is really just an advanced form of what we do with puzzles or Lego blocks. Sometimes it means connecting pieces together, and sometimes it means creating new things from scratch.

  155. Well that is simple... by Archfeld · · Score: 1

    Explain it the same way you would to upper management, in small words and with color filled graphs and useless spreadsheets.

    --
    errr....umm...*whooosh* *whoosh* Is this thing on ?
  156. You don't by Anonymous Coward · · Score: 0

    I mean, give them a chance to be smart and chose something else.

  157. Too many posts... by jasno · · Score: 1

    to read through, so maybe someone mentioned this already, but I think it would be fun to teach them to count to 1023 on ten fingers using binary numerals.

    It's not directly related to computing, but it gets them thinking about symbols and numbers in a new way.

    Next, make sure they've done the 'wire, battery and lightbulb' experiment they used to have us do in the 4th grade. Show them how they can combine the lights with the counting system they learned to signal information to friends.

    Then maybe go into processing that information, or how arbitrary sequences of information can represent letters.

    --

    http://www.masturbateforpeace.com/
  158. consider bridge bidding by Anonymous Coward · · Score: 0

    The game of bridge involves an auction where the only information transferred is via simple statements and a rigorous protocol. It is especially daunting in a competition environment where sometimes there are little walls between players and the bidding process is done such that table-talk and visual cues are effectively impossible.

    I bet something similar would be interesting for students..

    The following might be interesting for middle-school:
    instructions come from a limited set of statements.
    each student has a inbox, outbox, and some working memory.
    some of the statements affect a global state such as the color of 'pixels' on a whiteboard, perhaps where the coloring is acheived with post-it notes.

    I imagine something simpler could be devised for grade 1

    Allowing arbitrary concurrency rather than just pipelines would be interesting -- teach locks etc.

  159. Try turtle graphics by Anonymous Coward · · Score: 0

    Try this: http://klogoturtle.sourceforge.net/

  160. Simple programming by Anonymous Coward · · Score: 0

    In one English class I had in high school the teacher had asked us to give extremely detailed instructions on how to get to a certain spot of the school. I didn't know it at the time but this is programming.(It was fun I described bisecting angles and all sorts of stuff to through the teacher for a loop.) To the degree that what the object being told to do understands, requires different levels of basic commands. In fact I had thought of the original task much more in detail after I started programming. Opening a door (seems simple enough) requires a bit more programming than I anticipated. Does the door have a handle? Is it a Sliding door? Does it open inward or outward? Does it have a lock? ... Each of the different doors requires a different instruction set to open said door. Just having the kids try to instruct you on how to do a simple task could get them interested in programming. Tell them what instructions you do understand and limit them to those commands in order to get you to do a specified task. Example blindfold yourself and have the kids instruct you (a second person for what kid gives the command alternating kids to give a single command) on doing a simple task like picking up an object that someone else places while you are blindfolded. They can give commands to you to navigate through the room. Similar to a computer receiving commands and acting up on them.

  161. CS Unplugged is fantastic. by Anonymous Coward · · Score: 0

    http://csunplugged.org/

  162. not sure if you can do a demo in a classroom... by Anonymous Coward · · Score: 0

    ...but my son was playing with lightbot (http://armorgames.com/play/2205/light-bot) when he was five and loved it. Explain that programming is giving instructions to the computer, then demo lightbot and ask the kids what instruction should go in next. If they have a projector and internet, you could do it.

  163. kodu game lab by painkiller14 · · Score: 1

    why don't you use tools to help them to understand the principal of programming? kodu game lab from microsoft is a good tool to start. it allows you to define programming procedure and logic in GUI so kids would be able to understand it better than if you tell them IF X THEN Y. good luck!

  164. Break down by softegg · · Score: 1

    The simplest definition I use is "Breaking problems into smaller problems until they disappear".

  165. Show them GUI design by minstrelmike · · Score: 1

    Do a basic form in HTML (maybe a sandwich ordering form) and have the kids make suggestions for improving the form.
    Make the change live and ask them if it made the form better or worse (save different versions).
    That's requirements gathering/testing/approval all at once.

  166. LOGO by kubernet3s · · Score: 1

    In 2nd grade, they introduced us to logo. I loved it. Do that.

  167. Alice exactly done for this by georgesdev · · Score: 1

    Show them Alice. You build a program by plugging bricks together, including math functions, tests, while, etc .. The result is a 3D animation than can be interactive if coded properly. A simple program can fit on one screen, so good for overhead presentation. If a young kid is not interested by Alice, you know he'll never be interested by programming! http://alice.org/

  168. Under-10s at Young Rewired State 2011 by wendyg · · Score: 1

    At this year's Young Rewired State - a week for kids under 18 to do cool stuff with code and then present the results - @pixelh8 on Twitter had a bunch of kids under 10 at the Ipswich center. They didn't appear at the eventual presentation, but he did and showed this video (YouTube) of them explaining what they'd learned and doing a little programming. He explained how he did it in his talk: 1) he made it fun for them; 2) he took the group outside and they had many play breaks; 3) he used a *lot* of metaphors to explain. I thought it was immeasurably cool that he was able to do this.

    wg

  169. unplugged CS activities for kids by Anonymous Coward · · Score: 0

    There is a great resource here http://csunplugged.org/ with a whole heap of exercises to explain computer science concepts in an 'unplugged' environment to kids.

  170. my dad's a programmer by Anonymous Coward · · Score: 0

    my kid was really excited when she got old enough to realize her dad did programs, until it was explained to her that this had nothing to do with TV.