How Early Should Kids Learn To Code? 299
the agent man writes "Wired Magazine is exploring how early kids should learn to code. One of the challenges is to find the proper time in schools to teach programming. Are teachers at elementary and middle school levels really able to teach this subject? The article suggests that even very young kids can learn to program and lists a couple of early experiments as well as more established ideas including the Scalable Game Design curriculum. However, the article also suggests that programming may have to come at the cost of Foreign language learning and music."
logic (Score:4, Insightful)
learning logic skills should be well in advance of coding. i do think our society waits too late on that.
that alone could improve lots of things out side of computer programming as well.
teach reasoning, curiosity, specificity in preshoo (Score:5, Insightful)
Preschoolers can start learning 90% of programming - thinking clearly, being specific about what you mean, looking at HOW things work. I was actually coding BASIC around third grade I guess, but code is a small part of programming.
Pre-setting a macro in a toy truck is programming, and develops the skills - breaking down a desired outcome into specific steps, trying it and then making refinements, etc.
ASAP (Score:5, Insightful)
Programming on itself isn't so useful, but learning to divide and organize a complex idea into it's base elements is one of the biggest flaws of the existing curricula. Almost no effort is done in that direction before kids reach college ages and not even for all kinds of degrees, at that point.
When they want to. And ONLY when they want to. (Score:4, Insightful)
Jesus Christ. It's disgusting to see all of these comments saying "early", or "by the time they're 4", or something along those lines. Jesus Fucking Christ!
Kids should learn to code IF AND ONLY IF THEY WANT TO, AND ONLY WHEN THEY WANT TO .
Forcing it on them surely won't help. It'll just alienate them from it.
If a kid wants to learn to code, and expresses this interest, then provide him or her all of the support that's possible. Otherwise, bugger off and leave the kid alone. Just how nerdy kids don't like to be subjected to football and other sports against their will, athletic kids very likely don't want to be subjected to computer programming against their will.
"At the const of" language skills? (Score:5, Insightful)
That's absurd. Learning time-sensitive ordered tasks, such as in music or dance, or alternative ways to express similar ideas, such as language skills, are invaluable to skilled programmers. The ideas of checklists, logical operations, and revising a program on the basis of alternate events, learning about backup and what you can lose without it, are all useful.
I'd be more concerned about what happens with _bad_ programming lessons, being taught to manipulate only GUI based patterns in a teacher expected way or be marked down for not doing it the way an uninformed, underpaid coding monkey wrote to mark the checksheet off their daily tasks and pays no attention to encouraging the children to learn how things work. I'm concerned tht the children will be taught only how to fill out a checklist blindly. I've worked with programmers taught that way, and they can become an active obstacle to good computing, good science, or even good politics.
I'm afraid that a lot of the pre-teen children I've been meeting in public school would be better off, though, with real recess or a daily siesta rather than yet another mandatory lesson that requires sitting in a computer classroom. They're exhausted, and getting their bodies moving is being neglected in conflicting academic policies and goals.
Robot Turtles (Score:4, Insightful)
Robot Turtles is a board game for kids ages 3-8. It takes seconds to learn, minutes to play, and will keep them learning for hours. Kids won't know it but while they're playing, they're learning the fundamentals of programming.
Re:When they want to. And ONLY when they want to. (Score:2, Insightful)
No, just plain wrong.
The idea that kids should only learn about or do things that they explicitly present an interest in is simply retarded. Kids should be exposed to all kinds of different things, because if you don't expose them to all the things they'll have no clue which of them they are interested in, or find fun.
Sure, there comes a point where if your kid is going "daddy daddy, I want to go windsurfing" you shouldn't tell them "no, we're going to program for the next 3 weeks", but that doesn't mean that you shouldn't introduce your child to {programming, windsurfing, .....}
Re:My Experience (Score:4, Insightful)
> [1] The Dijkstra comment that teaching BASIC should be a criminal offence doesn't really apply to BBC BASIC, which had full support for structured programming, an integrated assembler, and direct access to memory-mapped hardware.
BBC BASIC was good, but even Microsoft BASIC was better than nothing. Saying you shouldn't teach kids how to cook unless you're teaching them fine cuisine is stupid.
Re:Rubbish.. we need children to learn social skil (Score:4, Insightful)
Well, not everyone needs to be able to code bubblesort or beyond, right.
But slomst every profession would profit from a simple understanding of batch or macro programming. Nothing too complicated. function calls, true/false, if/then. put even return values, vars and loops into an advanced version.
That's the basics really anyone can profit from. From the secretary automating word with a small macro (as simple as inserting a timstamp on pressing a function key) to users of ifttt.com or setting up Llama/Tasker on their phones. And it's the foundation for learning some real coding later. And some basic logical skills and ability to break down requirements into smaller steps can't hurt either.
Re:logic (Score:4, Insightful)
So bring back philosophy classes. There was a time when philosophy was a core part of education, when students were taught to think, not merely regurgitate.
Aside from that, I think you're over-emphasizing the complexity of basic boolean logic that is required by the average programmer. At the level we're talking about, basic parenthesized AND and OR constructs are more than adequate; there is no need to introduce elementary school kids to concepts like NOR or XOR.
The languages used need to change pretty dramatically, too. Pascal-style compilers that produce some kind of code after error correction insertions would be far more helpful for kids to learn than barf-on-missing-semicolon compilers like Java. An awful lot of "errors" in code are caused by syntactic sugar, not actual errors in the logic being described.
Letting such code run with any resulting errors could be as educational for the kids as seeing the results of properly structured code run.
That's if the concept of a text language needs to be maintained at all. I've worked with a 4GL that used pictures and flow chart diagrams to "code". It was doable, but a pain in the butt for someone like me who prefers to type instead of mouse. But for kids used to tablets and phones, it might actually be an easier and quicker coding environment than a traditional keyboard. Using that language gave me a kickstart on thinking about how to do such an interface better. I don't think I want to tackle the job, but over the past couple or three years I've come to realize that text based programming is an arcane art that might well someday be dead except for a few historians still slugging away at COBOL.