How Early Should Kids Learn To Code?
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."
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.
Kids should start learn to code as soon as possible because computer are an important part of their lifes and through this process they learn many additional things like math, (english if they aren't native), logic, etc.
An interessting project is code.org
Instead of playing Mozart to them, play recordings of coding techniques to them while they are in the womb.
Might as well get them started as early as they like.
But don't forget that teaching is actually a difficult thing to do well.
If not sooner.
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.
When I got to university, I discovered how much of the theoretical side I was missing. The main problem with teaching programming at an early age is that it really needs to be accompanied by teaching logic and then game and graph theory. I've seen classes that do this well for under-10s, but they're very rare.
[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.
[2] Back then, you really needed makefiles because there was no equivalent to a modern compiler driver. Compilation, assembly, and linking were all separate, manual, steps.
I am TheRaven on Soylent News
Age -3.
The mother needs to talk to all of her eggs about programming years before they're fertilized.
I would have thought that being able to learn a second language is useful skill in being able to learn a programming language. At least it helped me...
Agreed... and on a broader scale, if you teach kids *how* to think, instead of *what* to think, you will find that, especially in today's world of information at the fingertip, they will go off and learn more on their own than they ever will in a classroom with 30 other kids.
One can learn a programming language in a few weeks with moderate effort. Foreign languages can take years unless you're dropped in the middle of the country with no one speaking your language. In which case, it'll still take six to twelve months.
I learned to program at a very young age, writing basic at 7 or 8 years old.
... I also don't know any foreign languages (I somehow got out of that requirement in HS), and I don't play any instruments.
All it taught me was to hate classical music, which took a while to get over. I've a feeling that the same might happen with programming. IMO: make logic a mandatory course in elementary school and then offer real CS courses in high school. None of this business with "and here's how you use excel, now go play on Facebook little Johnny"
We shouldn't "Teach kids how to code". We should understand that a programming language is a language, and that the value is not in the language, but in the concepts that underly it. My kids "got" scratch at 7 and 5. They still don't know how to "program", and that's not something I'm concerned about or interested in teaching them. They do, however, have concepts of loops and inputs, outputs, storage and algorithms. That will help them substantially more than being able to scratch together a program.
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.
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.
Tossing programming courses in the curriculum is a wise idea, but now one has to balance the value add across the entire group if you're going to remove things like foreign language skills or music, both of which I see offering a considerable challenge to the value argument.
I highly doubt the person wanting to visit a foreign country will be praising the fact they have excellent programming skills at age 17, and yet find they cannot communicate.
Ask any programmer. 99% of them cannot live without music. It can help feed the creative mind that job demands. Learning about various kinds of music and their benefits (such as classical music impact on brain wave activity) rather than growing up shoehorned into the top pop/YouTube culture can be key to unlocking the potential of the creative mind.
We had a computer class once a week when I was in Kindergarten (1984-1985 to put it in perspective). We would type out small, prewritten LOGO programs and afterwards would discuss what they did and how our programs went wrong. We even had this little tank like robot in which you would input LOGO commands and it would move like the turtle would on the screen. It was what got me interested in everything programming and computers
"When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
As soon as they're interested in it. Simple as that.
Huh? That doesn't fit into your curriculum? Then I think it's time you ponder whether your curriculum has a problem or whether you want to continue making it the kids' problem.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
I don't understand the notion that kids HAVE to learn how to program. Is it somehow imperative compared to any other talent or skill? Why do they HAVE to learn, and why does it have to be when they are still kids? Like... eh?
Right. Because as every parent will tell you, all you have to do is explain the logic to a preschooler and bam! You have instant recognition and the child will follow you request.
Um. We need Economists, Scientists, Marketers, School Guards.... aka all sorts of professions. Only a small subset of professions need coders (I am one of them). People who become coders easily learn it from a toddler on their OWN like the professor in the article and me, (and many others). Its not a key skill for everyone to have, its a skill you are born with. And many coders "so-called" cannot code. Coding is not something we need to teach everyone as a basic skill, its like... lets tech everyone to be an oil well driller from a young age because everyone needs to drill oil wells! We need maybe 200 people on the planet to drill oil wells at most. For coders maybe we need 10 million or so at most (maybe 10,000 would be enough) to cover all the worlds needs, but you get my point here. On the other hand we need probably on the order of 500 million teachers to cover all the teaching. The art of coding had changed so much in the last 20 years. If we teach them what is popular today, it may be archaic in 20 years by time they start coding. I started on Apple II's BASIC, moved to Commodores BASIC, then to TI Logo, C, Pacal, Machine Code, LabVIEW, JavaScript and so on and so forth. Now I am "publicly" in Python and Java, and each realm though building on the last is completely different from the one before. What would we teach? Bits? Object Oriented? DBs? HTML? 2-D Graphics? 3-D Graphics? Integration? There is no "key" concept here. What everyone needs is reading, social skills, morals, history, politics, and so forth; not coding.
As soon as they ask that they want to learn how to do it is when you should start engaging them not only in coding but other computer science topics as well. Before my kids (3 out of 4) learned the basics of programming, they also had a fundamental understanding of electronics not because I pushed it on them but because they saw me working and started asking questions. Coding isn't for everybody and despite efforts to the contrary, it's more creative than people would think at first. That's the fatal assumption, if you have a foundation with Math and good logic skills that doesn't equate to being good or even liking coding as a profession. Now, if you ask my three kids (who are now 18+) what they want to do in terms of careers, one is in a CS program the others are not taking that track.
Harrison's Postulate - "For every action there is an equal and opposite criticism"
I do a robotics unit in my grade 4 class with Lego Mindstorm kits. They learn some basic programming concepts like loops and if-then statements. They love it, and in my experience age 9 is about the right developmental stage to start this. However, logical and critical reasoning skills can be taught at a much earlier age. Every child is different, of course, and some will be able to run with those concepts earlier, but that has been my observation.
In the land of the blind, the one eyed man still has no depth perception.
Perhaps I should add programming a calculator to display 80085 to my CV (that's a resume for those across the pond)
Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.
Programming may have come at the cost of... music?! Oh, my, now we're really going down the wrong road! We must not let useless hobbies like programming get in the way of much more important and useful things like music!
You can even go further, who needs math or writing skills if it comes at the expense of singing and dancing? Get rid of it!
Seriously. Why on earth would every kid need to learn how to code. If you're gonna force someone to learn how to code, then you will just drive them away from it or make them hate it. If you, or the US in general, so terribly want to grow programmers then start with math. If they like it, they will probably pick up programming themselves at some point.
If the corporate culture has its way, all of those jobs will be outsourced by the time today's toddlers get to the job market.
This recent notion that for some reason all children should learn coding is utterly ridiculous. They shouldn't, any more than we should try to make them all into concert pianists. What we should be doing is learning to identify the ones that have shown interest and ability at an early age by themselves, and then streaming and incentivising them throughout their education, end encouraging the Googles and so on to take a mentoring interest in them at 10 or 12 years old. The other kids should of course be computer literate, know how to install software, fix basic issues and so on but this 'everyone must be a coder' thing is horseshite.
Someone here needs to learn to break his thoughts up into something called "paragraphs."
It makes it so much easier to read.
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.
I'd say as soon as "x" (the variables) is introduced in mathematics it makes total sense to teach programming. I would support teaching programming even before that, but if I have to give some definite answer this can be argued for those not knowing anything.
K-12 should never teach programming.
Confer my dawg. I had him for slightly over 2 years now, got him when he was 1 1/2 years old. Although he is a crossover between two races renowned for their brains ( a dachshund and a german shepherd ), he STILL does not know the difference between an interface and an abstract class. Fibonacci series: same things. Beyond F(2), he is lamentably lost. Pretty much the only thing he can do, is reading Aristotle and Thomas of Aquinas, these dorks. I should have started earlier.... ?
Religous speak to God. Insane are spoken to by God. When all shut up, one can finally hear Shostakovich in peace
In my education, there was a big dead zone called junior high where the state curriculum taught very little new material -- just algebra and a little civics -- and spent most of the time rehashing what had been taught in elementary school. The prevailing wisdom that "raging hormones" made the junior-high kids unreceptive to new learning. Seriously, this is what principals and superintendents said. It's the most insulting thing to the pupils I can imagine.
Junior high was when some of my friends started taking drugs. I was reading a book a day just to kill the boredom, and I'm convinced I would have been better off skipping class and reading two books a day.
So you could give the kids something useful to learn during those two years, instead of spending taxpayer money to basically babysit them.
[Sir Garlon] is the marvellest knight that is now living, for he destroyeth many good knights, for he goeth invisible.
If there's anything that'll kill any interest in a subject its having to adhere to a Government approved curriculum. They're kids, let them play in the sun/puddles and fall out of trees for a few years before allowing them to sit in front of a computer all day.
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.
I'm not a software developer or anything of that sort. Maybe school children can have some sort of programming lessons as part of maths, just organised in a different way than it was back in my younger days.
My school maths curriculum included logic operations when I was in 10th grade (16-17 years old)
Converting numbers from base 10 to base 2, base 8, base whatever when I was in 5th grade (10-11 years old)
Is that the basis for "coding", or do people mean clicking on UI elements and assigning them existing functions?
As you all know, well educated children are less likely to respect authority. Total obedience is the real goal. It's best to preach compliance through rote learning. It reduces the dangers of independent, critical thinking.
“He’s not deformed, he’s just drunk!”
you lost me at: and so forth
And btw. your numbers are way off, 500 million teachers for 6 billion people means every 6th person is a teacher, or every 4th adult is a teacher.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
That's how it works with my 2 and a half year old, he follows basic logical arguments very well. Show him several objects and ask him which one is best for a basic task he understands and he will pick the most reasonable one. Kids don't default to wild inattentive hoodlums, it's learned behavior like anything else.
Um. We need Economists, Scientists, Marketers, School Guards.... aka all sorts of professions.
Yes we do.
Only a small subset of professions need coders (I am one of them).
That too is correct.
Its not a key skill for everyone to have,
What everyone needs is reading, social skills, morals, history, politics, and so forth; not coding.
And maths. And science. And geography. And a foreign language. So, why not code?
Coding is as much a part of the modern world as any of those things. Most people won't need most of them on a day-to-day basis and in fact most people will survive not having any knowledge of them at all.
That doesn't mean they shouldn't be taught.
Knowing about the world it what education is about. Why single out coding for special treatement?
SJW n. One who posts facts.
Kids should, can and will learn to code when they are ready to do so.
Readiness will have little or nothing to do with chronological age.
Stupid people think humans are all identical meat robots, but in reality we all mature on our own curves.
Social skills? Fuck you. I've got your social right here!
I'm going to go trash you on Facebook and then maybe open a twitter account focused solely on your suffering on other social networks.
>Kids don't default to wild inattentive hoodlums, it's learned behavior like anything else.
You obviously have only one child.
I learned BASIC on a TRS-80 Model 1 when I was 4 years old in 1979.
http://en.wikipedia.org/wiki/Singapore_math
See how that goes and think about using Logo, Basic or Pascal when the time is right and if interested.
Domestic spying is now "Benign Information Gathering"
He should have studied more literature insted of coding. Just proves his point.
Our local school had several used computers donated to it (TRS-80's and the like). That summer they decided to have computer courses open to anyone who wanted to learn. I was going into kindergarden at the time and my parents signed me up for the course. I learned how to boot DOS, run a few commands and create a program in BASIC. I really enjoyed making the rocket scroll across the screen and I remember how proud I was when I changed the rocket to add my name onto it. Probably why I'm still programming these 30 years later.
That being said, I'm not sure there is much benefit in teaching children to code. Teach them how to use a computer well. If they are curious, teach them to make it crash constantly (aKa programming).
There in no religion higher than truth.
Early is bad if it means you are forcing all kids to try to learn programming skills.. If they have a choice to take it as an elective though that'd be good to start in middle school.. let 6th graders that want to learn about it get started by the time they are out of highschool they'll be badass coding machines.
When I was 6 (in 1981) my Grade 2 class learned LOGO (at least the turtle graphics part). Of course I had been programming on my TS1000 for a year at that point, and so was mostly helping the other children. But still, pretty much everyone in the class "got it".
Why they stopped (and they did stop, after all) teaching programming to kids that age, I don't know. It was a stupid move. Really stupid.
>Kids don't default to wild inattentive hoodlums, it's learned behavior like anything else.
You obviously have only one child.
That's attention-seeking. Kids are good at learning to do more extreme things in order to actually get someone to pay attention to their needs and desires as opposed to someone else's.
"Little does he know, but there is no 'I' in 'Idiot'!"
I think around grade 4 is where kids should get tested for if they should be taught programming or foreign language. A programming language should be taught of as a real language just like french, german or russian. If some kids can easily grasp foreign languages ( polyglots ) and some kids can pick up computer programming easily, then why teach them the same. I think we're entering a time when we need to start tailoring the education system into groups. Kids who can learn languages easily should take languages, where as kids that want to program and play with computers should be given computers. Forcing a kids to learn something like french when they will never understand it or teaching them C when they will never understand it is pointless, I think in grade 4 it's time to start figuring out what kind of stream kids should be in, computing, music, english, languages and etc.... Specializing the elementary school system could lead to much smarter kids.
There is a group based in the UK called code club (https://www.codeclub.org.uk/) that recognized this problem and so created a set of courses to teach 9 to 11 year old kids how to program in scratch (later courses cover python and css). Computer programmers can then volunteer to go and teach it in primary schools in an after school club - with all the resources they need all ready for them.
I have been doing it for the past six months, having never taught kids before, and I really enjoy it, and found it very easy as the kids love it.
The courses are also available on github and in different languages, so anyone around the world can start one up.
Programming will be picked up long the way. Many trades nowadays seems to involve some programming in some sort of language - Excel Macros; ask an accountant. But is that really important for a child's future?
What's is going to help the kid in his future academic career is reading, math, writing, music and ball sports.
Yes, sports. Sports are a great way for a kid to learn social skills. And playing ball at an early age will help the kid develop "ball sense" which will help him with any sport he chooses later on. That's something that a developing brain is most apt to learn and something that people who don't have the experience as a chile never seem to pick up. It seems to be a skill that gets hardwired in at a very early age and once that window is closed, one can never get that sense. I know , I've tried. My coaches are always asking me if I played ball sports as a child because I don't have that "ball sense". and no matter how many hours playing, I just can't get it. (I spent many hours as a child in front of the Apple ][ programming BASIC)
And music. Don't force the kid, but music.
I don't get this fetish for getting children to learn to program. In the grand scheme of things, it's a skill that's not that important as a child.
Looking back at my life (I'm mid forties), the programming as a child actually harmed me. I missed out on a lot of childhood things and it did me very little good as an adult - especially now when my job of off-shored and getting another programming job is proving to be extremely difficult.
And another thing too, all the big shots - the ones who get the six figure bonuses when they cut costs by doing things like sending jobs overseas - were all ball players in college. They are the ones with all the personal connections - they get canned, their ball playing buddies gets them another cake job.
My friends are machines and other socially inept techies.
It's important to get their minds going on this stuff young. But not so young that they let the computer do all the work and miss the opportunity to actually learn things themselves. A group of my friends and myself taught ourselves and each other BASIC back when I was in 7th grade (well, 8th grade for most of them, as they were older than me by a year). If we'd had access to something like Python, we almost definitely would have automated our math homework out of existence, especially when the teachers' only threats about "showing our work" was that if we got the answer wrong, they could give us partial credit.
In SOVIET RUSSIA... erm...NSA AMERICA, the Internet logs onto YOU!
Perhaps I should add programming a calculator to display 80085 to my CV (that's a resume for those across the pond)
Even before the internet, people used computers to share pornography
view.Spot("run!")
well, ok. Once we got access to graphing calculators, we did that anyway. And we still did it to an extent with BASIC.
In SOVIET RUSSIA... erm...NSA AMERICA, the Internet logs onto YOU!
How Early Should Kids Learn To Code?
As early as they are capable of devising logical constructs (probably by the 2nd grade) IF AND ONLY IF they provide an aptitude and desire for it.
Ideally: How to decompose a complex problem into simpler problems which you can more easily solve.
Note that this is a skill which you not only can use with programming. At the same time, programming at the end is nothing but such a decomposition, where the easiest solvable problems are those your language/library already contains a solution for. Everything else is details.
Check out https://joinprojectspark.com/ This and LittleBigPlanet are phenomenal examples of coding disguised as play. I've watched 3, 4 and 5 year olds readily mastering the design tools. PhilD
I started programming when I was about 4 or 5 on the brand new Sinclair ZX81, moved on to the Commodore 64 doing BASIC and then 6502 assembler, then Amiga 68000 assembler and a bit of C and eventually moving on to Java and C# on PCs.
The key thing, however, is that I never did a single programming course in my life. It was all self-taught and done in my spare time because I enjoyed it. I still program as a career all these years later.
The moral of the story is, you don't need to be taught to code - if you enjoy it, you'll do it anyway.
First programing in itself is not difficult to learn. Evidenced by the massive number of self taught programmers myself included. Second given how rapid technology is accelerating programming as a useful skill could very well be obsolete is 15-20 years. Finally critical thinking, curiosity and a willingness to take risks are timeless. Teach your children well (give them values). They will be better off.
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.
bickerdyke
I started learning HyperCard coding in 1st grade. I think the platform has a lot to do with an early learning application.
Actually code also benefits from good formatting.
I started my programming "career" with LOGO back in third grade. I almost immediately fell in love with programming. When they stopped teaching it at higher levels, I taught myself - first TI-BASIC, then C++, then anything I could get my hands on. Eventually I got into a high school that taught programming, where I re-learned Java and C++.
But I learned all that because I wanted to. You force every kid to follow the path I did, you'll get a bunch of kids who never want to program again, and probably aren't all that good at it anyways.
Give kids a basic "here's what programming is" class early on, maybe around grade 5-6. If they're interested, keep them in; otherwise, let them find something else to learn.
Actually, that would be a good time for a lot of things that most people don't need, but people in certain careers would need. I suspect doctors would benefit from starting medical training earlier, probably same for engineers and other professions. It wouldn't have to lock you in to one career path, it would just be jump-starting the one you think you want.
How Early Should Kids Learn To Code?
After they learn Karate.
When I was in 4th grade, we had those Atari workstations where we'd pop in a cartridge and do typing tutors. We also learned Logo, which at the time, I didn't equate with programming. In 6th grade, I had a class where we'd write BASIC on PCjrs and that's where I became totally enamored with the fact that I could have the computer do what I wanted. Even though the extent of the class was just drawing graphics to the screen, we learned a little about `for` loops and I was able to do some basic colour-cycling animations. Years later, I moved on to QBasic, then x-basic (which became REALBasic), then C, perl, and other more modern languages.
I wish there was something as simple as BASIC, but as accessible as HTML/Javascript for today's generation. I think C would make a better first language, but being able to build things with graphics is far more engaging than just commandline apps that need to be compiled. Something with low-levelish access (like BASIC's peek and poke, etc) and access to files, but also able to be publicly displayed would be a huge win.
...spike
Ewwwwww, coconut...
I've already got my daughter pooping in binary.
The time to teach them about programming is when they ask how the magic screens work. From there they'll have an interest, or they won't..
..don't panic
I learned coding at the ripe old age of 5. When other's were playing with the turtle paint program, I was teaching myself to write some simple code on the Apple IIe. In retrospect, I'm grateful that my teachers let me play around with the computer and didn't try to keep me on task with Turtle Paint. By 7, I was teaching adults how to do basic coding at the public library's programing courses. When the teacher got stumped, she'd call me over to help figure it out.
It's never too early to start kids on programming.
AJ Henderson
Just stop all this nonsense, if a kid wants to learn to code in elementary/middle school, just let him/her do it in their spare time as a hobby, just like we did decades ago. It's more important for them to learn the stuff we did at school when we were children, as today they seem to try to cram everything into school, even though children learn also much more outside of school now through means of internet and the millions of broadcast media.. it's not necessary to teach them coding at school, why not otherwise teach them to build a house too, or build a nuclear reactor...
I learned to write in basic when I was 6, even though I could hardly spell at the time, coding and typing came together,
most words were very short and easy but I still remember, 30 years later, memorizing REPEAT. I consider this a good experience.
I also had the chance to teach a class of 5 year olds to do "Lego-logo", this was a once week afternoon activity for 20 weeks.
They would build from mechanical lego. and would then program it on the computer by arranging large colorful blocks in order, the building blocks were inspired very loosly by Logo commands.
All kids had fun and were introduced to computers&robotics as something fun,cool and accessible.
A few of the kids were able to build original programs by the end of the course.
These were not gifted kids and they didn't get much personnel attention. A parent teaching his child can probably accomplish a lot.
I think 8 am is about the right time to start.
rewriting history since 2109
Programming does NOT belong in middle nor elementary school. Here in the USA the schools have been doing a marginal job of TEACHING fundamentals and should focus on this in the early years. Middle school - teach computer USE 99% of users know about 0.5% of what they need to know. This is what gave birth to the phrase "Error in user headspace". USE of software will allow the students to create better work for submission in later years and enable them to take advantage of the 'helpful' nature of the software. High school, for those who gravitate to it, THEN you can teach some programming.
There ARE exceptions, I know a lady who was coding from the age of 8, but this by no means is the 'typical student', prodigy is NOT the norm. The teaching needs to address a progression of skills starting with fundamentals.
Right. Because as every parent will tell you, all you have to do is explain the logic to a preschooler and bam! You have instant recognition and the child will follow you request.
As the parent of a 4 yr old, you just need to know how to do it in a way that 'tricks' them into learning. Preschoolers have tons of urges to do things, they just don't know how yet. That's why they seem holy terrors trying to get your attention. They know there are lots of things to do, but they are currently limited in their ability to actually do those things.
So if a 4 yr old wants to watch 'Jake and the Neverland Pirates', I don't put it on for them. I sit down with them and ask them what we need to do. I get them to tell me that we need to turn on the television. Ok, then what? "Now we get the 'bemote'." Where is it? "I don't know." Where did you last use it? "On the beanbag chair." OK, should I look for it in the couch? "No, it's over here near the beanbag." Ok, now what do you do with the remote? "I press OK on the red box (netflix icon on Roku)" OK, what now? "I pick 'Jake' and press ok."
Yeah, that sounds pretty mundane, but even something as simple as putting on a children's show can be used as a process for walking through a problem in a step-by-step manner, and steps like asking where they might have last used the missing remote, and then suggesting we look in the 'wrong' location to get them to understand the deductive process and elimination of impossible options.
That's how you you start it.
Then, when you trust them more, get them to help you in the kitchen. Cooking is the ultimate in 'introductory programming'.
Out of modpoints but really liked a post? 1BDkF6TtmmeZ3yqXbz9yhdYVqRYnwFoXDj
I would not be opposed to seeing schools offer it as a choice between the two. I was forced to take music courses for quite a while into my school years, in spite of being completely tone deaf. Trying to get me to perform even the simplest of music with any accuracy was hopeless. I would have happily taken coding instead, an indeed I was writing programs in BASIC during my typing courses at the same school when I was bored from that curriculum.
Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
As others have pointed out, code is just a specific implementation.
Any sufficiently complex logic becomes programming. (As I tried to tell a former marketing manager, who now spends 80+% of his time "programming" instead of marketing, in his "don't need programmers anymore" system.)
I could envision all sorts of early educational implementations ... "if Princess X comes into the room, do A; if Princess Y comes into the room, do B."
There's a project on Kickstarter aimed for ages 3+that ends in a few hours:
http://www.kickstarter.com/projects/danshapiro/robot-turtles-the-board-game-for-little-programmer?ref=live
(Robot Turtles: The Board Game for Little Programmers)
Build it, and they will come^Hplain.
But what can kids program on? While computers are becoming ubiquitous, they're also more locked down than ever, and focussed on consumption. My kids' computers are Kindle Fire HDs. While it's Android in there somewhere, I'm not sure how to get to something they can "program" while still being in their little neighborhood sandbox. I have yet to find an app for that (first and third grade), and they're not touching my laptop until they get a bit older. I grew up with unfettered use of my family's computer and learned a lot of stuff by playing with it; currently I find that while we have many computers, they're in constant use or inappropriate for playing.
We have LESS availability of general purpose computers than we did a few decades ago.
In my experience, learning programming at an early age would have been far more useful than learning a 2nd language for 5 years. I have very little opportunity to speak in another language so I most have forgotten what I learned. Luckily my 1st language is English, which is used just about everywhere. On the EXTREMELY rare occasion that I go to a foreign country, most of the country's citizens know a 2nd language and usually that 2nd language is English.
So learning programming would have been much more useful and more practical in my particular case. I hope today's students are given a choice to learn whatever language they want: Spanish or French -- or -- C++ or JavaScript.
Kids don't default to wild inattentive hoodlums
No. They are 'wild ATTENTIVE hoodlums'.
Out of modpoints but really liked a post? 1BDkF6TtmmeZ3yqXbz9yhdYVqRYnwFoXDj
...but I'd say 10 sounds like a good age. Children are logical enough by this point usually - and can ask the right kinds of questions and follow the programming structure, especially in more simple languages like Python. At very least they're comprehensive of if statements and would probably have a fun time with loops!
We were taught basic when I was in first grade around 1983. I couldn't have coded much of anything then (without a lot more personal teaching) but I started learning the basic concepts of loops and variables then.
Forget teaching children programming. It's not important. Teach them what they're interested in. And teach them math. With a solid foundation in math they can learn programming or any other form of science they want to learn.
There is a site that I showed to my 8-10 year old kids last year to introduce them to JavaScript.
They were able to go through both the Code Monster and Code Maven programs successfully and they had fun.
No foreign language, no music? I think not. Shorten the time spent on things from each core subject that really should be spent in more advanced courses (for example: math, factoring larger polynomials and division of polynomials; English, diagramming more complex sentences and guessing what dead authors were really thinking; biology, memorizing the stages of cell division; etc). Teach the most basic logic/programming constructs in elementary school, then change the frequently required "computer technology" or whatever it's called class to spend at least half of it learning basic (definitely not BASIC) programming.
Young, developing minds have difficulty separating reality from fantasy. In many ways society encourages this, whether with Santa Claus or "happily ever after". This disconnect is used to comfort and motivate the developing child. The cost comes later in life, when many still have trouble discerning between attractive falsehoods, ("global warming has no anthropogenic causes"), and hard, cold fact.
Many here have proposed teaching logic before coding, and that is reasonable, but as a first step, perception must be groomed to discern between that which we want to believe and that which actually is. Without that, logic has no basis in fact and is as useless as a no-op code.
I have two daughters, neither one turned out like that.
Kids should really be taught both. TFA states that IF a school has to choose, the case can be made for programming over foreign languages. But IMHO that is by no means the ideal.
I grew up in a dual-medium environment: Some of my earliest memories are of playing with English kids and learning their language (I'm Afrikaans). I was also taught to program quite early, basically as I started to learn how to read (6 or 7 years old). I've managed to do both quite successfully. As one can hopefully confirm by reading this post or the fact that I'm a software developer. Often when I'm programming I can "switch languages" in my head: I can think in a foreign language while writing code in a programming language. I've also played multiple instruments throughout my adolescent and adult life.
Thus I see no reason for this to be an either-or situation. As TFA states: At that age the brain is like a sponge.
> no, yes, maybe (tagging beta)
Parents should start teaching their kids to code right after teaching them calculus.
Or am I just deluded and in need of more koolaid?
At conception...oops wrong forum. ;-P
Teaching some sort of Informatics in Slovakia starts at the age of 6 with algorithmization - using robots, native language, games.
There is also research of teaching that in kindergarten - using BeeBot and games.
Learning to code doesn't mean it has to be some programming language, it can start with learning to divide the task into small ones, planning, strategically thinking. But it need to be done with appropriate technologies to children's age.
My school didn't try to make me a concert pianist, but it did make me play a variety of instruments and teach me the basics of rhythm, tone and various other music-related stuff I've long-since forgotten because I don't use it every day.
Likewise my school had a class in LOGO when I was about 6 or 7. Not with the goal of turning everyone into software engineers or computer scientists (although it worked for me), but just in the interests of a well-rounded education that let all of the kids know there was something there to learn.
/sarcasm What!? Next you'll be telling me people carved naked statues having sex on the temples for decoration ... :)
Then, when you trust them more, get them to help you in the kitchen. Cooking is the ultimate in 'introductory programming'.
Unfortunately, here in the US, parents are so scared of their children getting hurt that they won't let them into the kitchen.
Yes, knives are sharp, stoves are hot, and glass shatters. Getting hurt is part of learning. Nature has selected for kids inquisitive enough to learn, yet careful enough not to take themselves out of the gene pool.
As for the original question, when to teach programming? I would say the right answer is never. Provide kids with the means to learn it themselves. Every single good programmer I've met has been autodidact, and superior to any teacher they later might have had.
Kids are inquisitive by nature. Encourage that, and give them things to explore instead of pacifying them with passive entertainment.
Around 3rd or 4th grade. Basic mathematical concepts could be bolstered by learning to program. Use a simple language like Python to start. Then expose em' to C++, Java etc.
Logo wasn't hard in grade seven. I, and just about any other kid, could have probably written stuff in it even earlier but that's the first time I got to touch a computer keyboard.
The ridiculous thing is that as computers have become more easily available the quality of teaching kids about them has declined.
1) Coders reach the age of obsolescence before they have saved enough money to retire.
2) Coders do not receive pensions.
3) Coders are under perpetual pressure to sacrifice their personal lives to code more, causing major life balance and health problems.
Coding should be seen as a stepping-stone to management, in which case learning to code can be put off until college or later. It is true that you will never be a truly great coder this way, but you are better off NOT being a truly great coder, and shifting careers after a few years.
These problems can be fixed, of course, by the reintroduction of pensions, elimination of age-ism, and/or a sufficient raising of salaries. However, the general industry trend seems to be in the exact opposite direction on all fronts.
Yes, there are always exceptions to this. The problem is that they are exceptions.
Speaking as a senior level Java developer with a degree in Computer Science from an accredited university, I've learned relatively little about programming from school. The majority of my knowledge has come from actually programming and figuring out things along the way, and a big reason for that is Google.
You couldn't do this in our parent's generation, but now, so long as you can read and have access to the internet, you can literally build a website in a weekend without having any prior knowledge to programming.
Music and foreign language skills, on the other hand, are much more effectively learned in person.
Kids also get smarter each generation. I was around 12 when I started writing my first BASIC programs, using a book I found in the library. Meanwhile, my 11 year old cousin just finished building an entire city in Minecraft. I'm sure he'd find my early programs laughably easy by comparison.
... projects like this one on kickstarter I think are wonderful!
http://www.kickstarter.com/projects/danshapiro/robot-turtles-the-board-game-for-little-programmer
Simple tabletop board game... requires parent interaction... for the 5 year old, it's just a game of bossing their parent around... but they're learning the fundamentals, learning to rotate objects in space in their mind, learning to string together operations, branch, deal with edge cases...
I think it's fantastic (and it closes in 7 hours).
- Peter
I just like to clarify that the trade off between programming and natural languages (or music) suggested by the title of the WIRED article does NOT reflect the goals of the Scalable Game Design curriculum discussed in the article. In fact, we have many language arts and foreign language teachers participate in the Scalable Game Design project. They find that the idea of game design is a great way to 1) motivate language arts (e.g., the notion of nouns, verbs etc. as design tools for object-oriented programming) and to 2) employ the idea of game design as a cultural bridge used in foreign language learning.
Here is link to some videos showing teachers and students including a video on how to use game design in Spanish classes: http://scalablegamedesign.cs.colorado.edu/wiki/Videos
Full disclosure: I am directing the Scalable Game Design project
Of course in the womb. Let us stop the pseudoscience shenanigans with classical music, Mozart, etc. and type away on a keyboard while it rests atop the bulging belly.
It's a step.
I think when the players begin to understand the uneven playing field provided by the uneven obstacles they will lose interest extremely quickly (when one of them throws the board across the room.)
I'm also failing to see how this improves over chequers (which was to be fair a young childrens' game 30 years ago.) Chequers teaches children to think ahead, to make sequential moves, to work toward a goal, etc, with a relatively free field of movement.
It is a non-essential skill. Some may want to as soon as they can read. Some may never want to.
I think what's necessary isn't the same level of proficiency that you'd get with a degree, but a basic understanding that ends up somewhere along the lines of the middle of the AP Comp Sci curriculum I went through about 7 years ago - a solid foundation if you would pursue it further.
When people think of "everyone needs to know how to code so we should teach it in school", I think they go way too far in their expectations of what the kids would be learning. It's so ubiquitous that everyone should have a nice foundation in it, the minimum required to understand what the people around you are doing, but not every kid should be shoulder deep in it.
Children can learn programming from a very early age. Kindergarten is a good place to start, because by that time interested parents (not teachers) have likely introduced the child to the only two real prerequisites:
The remaining skills necessary to become interested in, and capable of, writing code can be picked up concurrent to coding itself:
Now that we've dispensed with the technical items, we need to address something amiss in this discussion--and where TFA gets it wrong. Teaching your kids to program is NOT a matter of pushing your school to displace an art, music, or language class. If you are truly interested in getting your kids to code, this is a topic best taught by YOU. My daughter is currently 3 years old, and while she's fascinated by computers, we've got to tackle the prerequisites listed above first. (I'm guessing we'll start actual coding around the time she turns 5.) I'm eagerly chomping at the bit for the opportunity!
Since there seems to be a dearth of actual parents in this discussion, let me point out one more thing. School is fine for teaching fundamentals (which you can dispatch to large groups of kids simultaneously) and some other topics (where parents may not have sufficient familiarity). When you are both a parent and a geek, though, you can't WAIT to share the really awesome tidbits of knowledge with your kid--and even if it is something their school covers, you're going to be so excited that you'll show it to them first, just to make sure they know how amazing the world really is. That's why we listen to Symphony of Science in the car, and why lately we've been spending our spare time building spinning machines. When we finally sit down and write our first BASIC program together (screw you, Dijkstra--you were an amazing scientist, but a horrible educator), it's going to be for the same reason: I want to share it with her!
We need stop trying to teach children as if they all have exactly the same abilities and needs. Every child is different and every child will be ready in her own time. This goes for everything else we teach them too.
Back in '82-'83, I was in 3rd grade (US). We were taught a little programming, I think it was BASIC. Nothing spectacular, but it was enough to make us feel like we could do something AND give us a foundation for learning it hardcore in the future. So it makes sense to me, that kids could be taught the basics when they're 8 years old, and then progressively teach them a bit more as they progress through their school years.
Well, not everyone needs to be able to code bubblesort or beyond, right.
I think it is fairly well established that no one should be coding bubblesort...
It helps young children to type in code even if they don't know what is happening even when they don't know to read and write.. This gives them an appreciation for a computer. It is most important to teach kids how to use a computer once they can understand loops and if/then(around 8-12), but early exposure to a computer will help them appreciate it more.
God spoke to me
Unfortunately, here in the US, parents are so scared of their children getting hurt that they won't let them into the kitchen.
Hooey. Speak for yourself. My 5 year old loves to be a sous chef for us.
As for the original question, when to teach programming? I would say the right answer is never. Provide kids with the means to learn it themselves.
You mean like teaching them the basics. I get what you are saying about how much more effective it is for them to learn it on their own but they need a foundation and that has to be taught, be it in Scratch or Cherp or whatever if they are super young. They can't just sit down and know how to do it.
It's 8008135.
In 1983, my mother bought me a Commodore 64. I was 5 years old.
My introduction to programming was typing in BASIC 2.0 programs found in Commodore 64 User's Manual.
Today, I am a Software Engineer by profession.
My opinion: Kids should learn to code as soon as they can read.
Never it turns them into geeks and hence social pariahs what are you some kind of paedo. Its CHILD ABUSE , wont someone think of the children,
I just turned 39. When I was in elementary school in the 1980's, going to the computer lab to learn about computers entailed learning the following:
* Basics of the computer system
-- Input
-- Output
-- Storage
-- Bits and bytes
* Booting the computer
* Programming in the BASIC programming language
-- Operations (mostly arithmetic)
-- Printing output to the screen/printer
-- Conditionals
-- Loops
-- Subroutines
-- and... the dreaded GOTO
As a result, I knew how to "program" before I even started junior high. I didn't take any other program-related courses until high school (BASIC and then Pascal), but I continued studying on my own at home. Contrast that with today: My children will have a lot of computer courses teaching them how to use the computer for research, office automation, etc.; but they mostly likely will not be exposed to computer programming until high school.
-- Stu
/. ID under 2,000. I feel old now.
Spoken as someone who clearly has no children.....
In my completely unbiased and valid opinion as a programming enthusiast and wizard-level virgin, I say we should start exposing children to programming as soon as possible. Whisper opcodes into their wombs, put C cheat sheets in their beds, give them blocks printed with operators and basic functions to play with, and when they reach five they have to start reading SICP.
We don't teach kids to do surgery, either.
The main problem we have in coding today is not that too few people can code. It's that way, way too few people can code well, because it's all this hobbyist oh-look-I-once-wrote-a-simple-script-in-VB-now-let-me-rewrite-your-enterprise-systems bullshit.
I would rather have 10 professional coders than 100 amateur coders.
So why do we want to teach kids how to program? How many of them will need it and how many of them will gain some other benefit from it? There's a couple things that school does even though few people then go into a job in that field - music, for example. But that is part of culture and many people believe that a basic understanding of music greatly improves your life and enjoyment of things.
So, instead of asking details like "at what age", you should first answer basics like what for and why.
I don't think we should put programming into school for everyone. I think it should be available optionally for those who want to look into it and find out if it's something they enjoy, but not more.
Assorted stuff I do sometimes: Lemuria.org
Foreign languages are far more important than learning to code. Anyone will benefit by learning a foreign language so that they can read foreign books, watch foreign films and visit foreign countries. Learning a foreign language gives you access to information, and experiences that other people do not have. It opens your mind and gives you a more balanced perspective on the world.
Learning to code is useless for anyone whose career does not take them in the direction of some sort of science or engineering.
Interestingly enough, learning a foreign language improves the brain in such a way that you find it easier to become a better programmer and use higher order languages like Scala, Clojure and Go.
My kid just turned 4 and he's always interested in science stuff... Really, he always likes when I tell him about how stuff actually works (earlier today I explained to my best knowledge what light is and how i works), vs. how most people tell kids about how stuff work.
Yesterday he was watching me coding and I ended up explaining him what each line of the code does... He has never been a good listener of fictional stories and has a very short attention span on "kids stuff", but it's funny how he can listen to me telling him about scientific stuff and explaining code (althou he can not read yet, but can write simple words).
We should teach them if they like it... I taught myself and am teaching myself to code because i like it, i'm not very good at it yet but i'm learning to be better, and most people who really like something have the care and motivation to better themselves and do well at that thing.
For most people, things that are forcibly taught are taken no further than the explicit level of proficiency required to pass whatever test awaits them at the end of the teaching period. And after that, many details and insights of what was taught fades away.
However If it is voluntarily, then not only will the teaching be more effective, but it will form a basis for the person to likely excel by themselves far beyond the proficiency attained by the explicit teachings.
Of course this can apply to anything, but just as much to code. If and when i have a child and i find that coding sparks their curiosity then i will most certainly help them learn about it, but i would never force them to learn it, because once they are not interested it becomes pointless, and energy would be better spent on helping them to learn about whatever else interests them other than chocolate bunny rabbits and video games. It's not even really important if they end up using it, i just think that nurturing curiosity and self learning is very valuable because that's where someone will always learn and enjoy the most, it's a delicate balance trying to teach someone but not kill their curiosity at the same time. The question of an appropriate age is something better answered by someone who has a good understanding of the development of the brain.
This is exactly what I did in my kids 1st grade class, the whole class had a hoot trying to program their Teacher how to write on the digital whiteboard.
I always thought of Creationism as the Raving Right's version of the Loony Left's Anthropogenic Global Warming-brightmal
Seriously, quit trying to force your kids into a career they might not like and teach them to be physical.
Besides, learning to write code isn't that hard. If they grow up being sociable and confident in public. That will get them further.
I'll add to that. I have two sons. Neither are like that either. So, it isn't a boy vs. girl thing.
I agree. That is why 2 weeks after my son's second birthday, I formatted his hard drive, gave him a DVD with Linux on it and told him that if he wanted to play his games again, he would just have to reinstall the OS himself. No, kidding. I really did that.
Nah, teach them Magic: the Gathering. Time-tested fun game and unlike Robot Turtles, it *is* Turing complete!
For anybody who missed it; this is extremely tongue-in-cheek; while MtG can in fact be made Turing complete, it requires an extremely complicated initial state involving a lot of cards and rule edge-cases that many players will never see.
Of course, now that I think about it, the suggestion has some merit after all. M:tG is not a good game for teaching programming, but it *does* have logic elements - coming up with things like infinite mana combos and such is fun even when they're utterly impractical - and it is, in fact, fun. The same third-grade teacher who gave us logic grid puzzles as assignments (I'm sure there's a better name for them, but I haven't seen one in years) also taught any kid who was interested to play M:tG (with Beta cards, no less... I wonder if she still has those?)
There's no place I could be, since I've found Serenity...
Presumably this practice was abandoned because it caused neck ache?
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
.
Given that most people in this country can't divide 100 by 8 in their heads, I mock the thought that anybody would take this story seriously.
At what age should kids be taught to read patent-claim language?
At what age should kids be taught to replace head gaskets?
At what age should kids be taught how to cull facts from political rhetoric, rather than just repeat what they hear on the radio?
I think it would be worth a cheer to see pre-teens get excited about writing little BASIC programs on their iPads, but in the real world, school teachers I know would be happy enough to be able to teach the majority of their grade-schoolers how to balance a checkbook, or how to understand a short piece of classical music.
Programming is faulted by a inconsistent, incomplete analysis of the problem domain, and this happens in large part by a lack of understanding for the language being used to "talk-about" things that compose that domain. Mathematicians do not care about what "X" refers to until they apply their conclusions to real things. Then it matters whether "X" refers to locomotives or cans of soup. What needs to be taught to young children is how we get from locomotives to an "X" that always means "locomotives" and not "eggs", "cans of soup"or some other; AND as well, if someone does mean "X" = "locomotives", "X" cannot be arbitrarily changed to mean eggs or cans of soup. What is missing cannot even be taught because it doesn't exist; that is a discipline for the science of designing computer systems like all others in the arts, sciences and trades. Imagine two doctors who have never met from different parts of the world entering an autopsy room. There would be no question that the body resting on the autopsy table was the same one each had learned about in medical school. Put two business people or business analysts in the same room and it would be a scene mindful of debates in our current Congress over what the body should look like.
In Australia it's 5318008.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
I agree. The effect is less though if the lyrics are undemanding or if I'm very familiar with them. I guess that implies I'm not really listening to them.
Now where's my Force Majeur by Tangerine Dream got to ...
Confucius say, "Find worm in apple - bad. Find half a worm - worse."