How Do You Explain Software Development To 2nd Graders? 430
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."
Easy! (Score:5, Interesting)
Re: (Score:3)
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 a
Scratch (Score:2)
Re: (Score:2)
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.
Re: (Score:2)
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/ [csunplugged.org].
Re:Easy! (Score:4, 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...
Re:Easy! (Score:5, Insightful)
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!!!
Re: (Score:3, Funny)
I hate it when I end up with bugs in my PB&J
Re: (Score:3)
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")
Making a sandwich (Score:2)
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.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
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,
Re: (Score:3, Funny)
Me, I'm not bitter or anything
Re: (Score:3)
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.)
Re:Easy! (Score:4, 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.
Logo language (turtle) (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]
Re: (Score:2)
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
Re: (Score:2)
How about a web based system? ClubCompy [clubcompy.com]'s Tasty language does exactly that.
(Disclaimer: I consult on ClubCompy.)
Re: (Score:2)
Logowriter FTW. And that turtle was so cute. Penup, pen down!
Re: (Score:2)
Check out the game RoboRally [wikipedia.org]. 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 gami
Re: (Score:2)
http://www.thinkgeek.com/geektoys/science/de2e/ [thinkgeek.com]
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,
Re: (Score:2)
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.
Re: (Score:2)
Giving them the power to insult their fellow classmates is always appreciated, and remembered.
Especially by John Baxter.
Re: (Score:2)
Yes! There was even a robot Turtle. A very simple language, Logo [wikipedia.org] and LogoWriter.
Perfect for 2nd graders.
Re: (Score:2)
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.
I'd Reckon (Score:2)
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 whi
Re: (Score:2)
Plus, for second graders, it adds much hilarity like walking in place with nose against the wall because nobody said stop.
Use abstract language (Score:5, 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
Re: (Score:2)
basic for kids. .bat files were easy to learn as a kid and then going forward from that.
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
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 wr
Re: (Score:2)
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?
Re: (Score:2)
Know your audience. (Score:2)
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 c
Peanut butter and jelly sandwich (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).
Re: (Score:2)
These exercises are really only fair if the permitted operations are defined as the first step.
(1) Definitions (2) Axioms/Hardware (3) Theorems/Programs
Re: (Score:2)
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 sil
Re: (Score:2)
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 e
Re: (Score:2)
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 pro
Re: (Score:2)
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.
Two words: Scratch and Game (Score:2)
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 kind
Focus on requirements and design (Score:2)
Scratch? (Score:4, Interesting)
A projector, and Scratch?
http://scratch.mit.edu/ [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).
More details please... (Score:2)
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 overs
Re: (Score:3)
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 softwa
Get them involved! (Score:4, Interesting)
http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/ [briggs.net.nz]
Robot or turtle (Score:2)
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 w
Lego Mindstroms (Score:2)
If nothing else it might encour
too young? (Score:2)
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
Logo! (Score:2)
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."
Re: (Score:2)
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 get
Re: (Score:2)
Also I just want to say it's rather awesome seeing a 1980's photocopier entirely reduced to its constituent parts.
When software goes bad :-) (Score:2)
Software Engineering in a Nutshell (Score:3, Funny)
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.
Re:Software Engineering in a Nutshell (Score:5, 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.
Be glad... (Score:3)
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...
10 PRINT "BASIC STILL RULES!" (Score:3)
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...]
Don't (Score:2)
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
Re: (Score:2)
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 brea
Re: (Score:2)
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.
Just think back... (Score:2)
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 [wikipedia.org]
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
Once you explain it to them (Score:2)
How about not bothering? (Score:2)
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 t
Here's my way of explaining "programming" (Score:3)
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
Re: (Score:3)
Edit game config files (Score:2)
Edit game config files, to begin with.
Then find something that requires a loop, if they still have the interest in fiddling around.
This is easy. (Score:2)
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 con
Bend the rules of a simple game (Score:2)
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 real
Re: (Score:2)
Try this: (Score:2)
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
Difficult (Score:2)
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.
First phrase (Score:2)
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".
Stick with what works (Score:3)
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.
Magic (Score:2)
Re: (Score:2)
Write a BASIC program (Score:2)
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.
Show them Storytelling Alice (Score:2)
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
RoboRally (Score:2)
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.
Same as ... (Score:3)
The Penny Arcade way... (Score:3)
http://penny-arcade.com/comic/2002/05/17 [penny-arcade.com]
Re: (Score:3, Funny)
Re: (Score:2)
But won't the Birds get Angry about being shot out of a catapult towards pigs?
Re: (Score:2)
children, on the other hand, will pay attention to something interesting and fun, and respond to positive role model.
Heh, you remind me that joke... (Score:5, Funny)
Re: (Score:2)
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.
I remember (Score:2)
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.
Re: (Score:2)
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.
Re: (Score:3)
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 challengin
Re: (Score:2)
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...?
Re: (Score:2)
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 shou
Mine craft (Score:3)
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.
Yep, he asked about software development (Score:5, 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
Re: (Score:3)
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.
Re: (Score:3)
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.
Re: (Score:3)
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 f
Re: (Score:3)
Re: (Score:3)
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 !
Re: (Score:3)
Re: (Score:2)
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 ;-)
Re:A few kids might be able to get it (Score:4, 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...?