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."
My Experience (Score:4, Interesting)
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.
As early as they can read (Score:5, Interesting)
That's fairly easy (Score:5, Interesting)
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.
Re:logic (Score:5, Interesting)
One problem with math education is that it simply isn't the same thing as logic or computer linguistics. Even Discrete Mathematics uses a whole different set of terms, jargon and solves only a subset of the sorts of logical conditions one can expect to program in a computer. But then that's been a problem for mathematics since its inception--its application to real world issues and uses...
And very few schools actually teach programming, even at the High School level, let alone at lower level education. One reason is that a programmer generally gets paid better than a public school teacher, and so if you know how to program you've probably got a better paying job not at school. Further there's the question of what is a decent education in programming--and do you focus on programming at all with the limited time and access to computers--or teach them basic computer skills and be happy with it.
In a public school you can probably expect the computer science teacher to double as a coach, with his first love being coaching. My High School experience was a bunch of us "smart kids" (most of them were kids who had dads with computers and that had taught them a few things) figuring it out, while the teacher floundered to explain sorting algorithms and what recursion was. (He had no clue, though I didn't realize this until I got to College and what had taken months to study and explain was all explained in perfect clarity by a grad student in about an hour lecture...)
That's obvious (Score:5, Interesting)
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.
Reading, writing math, music and ball sports. (Score:5, Interesting)
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.
Re: logic (Score:5, Interesting)
Re:teach reasoning, curiosity, specificity in pres (Score:5, Interesting)
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'.
Re:Reading, writing math, music and ball sports. (Score:5, Interesting)
Coding will not help that. It's a big problem everywhere - and has been for years.
My Feynman recalls his experience teaching science in Brazil [v.cx]. They score very high on tests, but they suffer from the exact same problem - they can answer a very specific question, but when put in a similar situation, fail to realize it.
The fundamental problem is not coding. It's the way we teach - in this case, it's a form of rote memorization rather than application. Memorization is easy - ask any student who studies for a test and can spew back facts, figures and formulas without skipping a beat.
The thing is, it's application of the concepts, or realization when situations are very similar.
It's not limited to science - we often say "history repeats itself" because it's true - but it makes you wonder why we don't see it coming given that similar situations crop up again and again and again. (Heck, the Founding Fathers, in the Declaration of Independence made important observations - remember the part about "light and transient causes"?).
The thing education lacks is the ability to teach synthesis, because it's very hard, and it's something that's difficult to apply to an entire classroom because everyone is different. (Synthesis is where you take what you know and apply it by synthesizing a solution - basically by seeing generalizations). Sometimes it's called critical thinking though that term is usually only in reference to texts.
Re:logic (Score:4, Interesting)
And math education in the US and around the world is abysmal.
Have you taken school math "around the world"? As someone who graduated from HS in post-Soviet Russia I can testify that US high school graduates are at the level of 6-graders in Russia. And Physics is not even a requirement in US! I would easily place US at the bottom 30% of the world at school science preparation.