Estonia To Teach Programming In Schools From Age 6
An anonymous reader writes "With the launch of the Raspberry Pi, computers are becoming affordable again for the younger generations. Now what we need is kids learning about computers in greater detail, including what the hardware is inside the box, and how to create rather than just use software. Estonia looks to be the pace-setter in this regard, and has just announced that it is introducing computer programming learning for all children attending school. By all, I mean from grades 1 through to 12, meaning children as young as 6 will be writing their own code and producing software. The program is called 'ProgeTiiger' and is being introduced by the Estonian Tiger Leap Foundation as a pilot scheme to some Estonian schools this year. Next year the program will expand, adding programming groups for older kids who want to carry on activities outside of the classroom. Eventually it looks as though ProgeTiiger will become just another standard part of the curriculum, just like math and language studies are."
They say if you put a kid in front of a Logo turtle, tell him to type RIGHT 90, FORWARD 100, LEFT 80 and within an hour he is programming and not realizing it.
I've known people who were not technical or noted for their intelligence in any way who managed to do quite well in LOGO. I don't know if Estonia will use Logo, but teaching programming from a young age is certainly viable.
I can't honestly say I've endorsed a whole heck of a lot of ideas from Estonia, but this is a great idea. I only wish I could travel back in time and encourage my teachers to teach me and my piers programming at age 6. Then I'd probably be able to figure out this compiler error I'm getting right now.
But seriously, I hope that the U.S. adopts a similar program ASAP.
I have for a long time thought that basic programming skills are a necessary part of basic literacy education. It is irresponsible *not* to give everyone the tools they need to leverage computing technology to the fullest extent. Just as widespread adoption of reading, writing and arithmetic skills have enabled vast progress, the use of computers as tools to solve customized tasks that require some programming is the next logical step. Just as you can't go about in your life only filling out form letters, similarly you can't do everything efficiently using canned software without writing a single line of code. For most folk it'll probably mean writing scripts in VBA or similar, but it's still a skill that can aid quite a bit. Going through any sort of natural science or engineering curriculum without using programming from day one is IMHO unthinkable in this day and age, yet it's quite common, especially among incoming students.
A successful API design takes a mixture of software design and pedagogy.
Computer programming is not such a fundamental area of study that it deserves to be elevated to the level of "math", "reading" and "writing". To a large extent this is a zero sum game. To teach programming in primary school necessarily crowds out something else. History? Foreign language? Music? Some subject other than "computer programming" is getting the shaft.
Not only there's no good reason not to, doing otherwise (not teaching) is IMHO a travesty.
To me, personally, not being able to program is akin to being illiterate. Paper, writing instruments and books and other printed matter are widespread, it'd make one look real bad not to be able to use them. Same goes for computers, and I don't qualify using prepackaged software without any ability to script anything being real use.
A successful API design takes a mixture of software design and pedagogy.
Why would one want all kids to know programming? We don't require all kids to know automotive design or repair, nor manufacturing techniques for flat panel displays, nor cellphone antenna design, etc.
Programming uses math? Well some arithmetic, surely, but usually not much else.
Perhaps some sort of a fun introductory course might be good as it might spark interest in programming for some students, though.
Nate
If you teach all the constructs of English grammar and effective Word Processor use, you get students who can correct the misuse of "they're", "there" and "their", express their ideas, and save a file. But it takes more than an understanding of grammar to produce novelists, journalists, poets, and technical writers. I hope that Estonia will not stop at teaching "programming" alone but that their curricula will encourage creativity.
I'm also looking into ways to teach my son to program at an early age. I wasn't planning on starting at 6, but now I wonder why not.
Maybe, just maybe because at age 6 the brain's ability to handle abstract concepts is not yet developed? Teaching programming to a handful of 6 year olds who show precocious ability is one thing, imposing the same on all kids this age is beyond stupid.
To me, personally, not being able to program is akin to being illiterate.
Because you measure intelligence according to specific knowledge and not according to capability. Worse, you measure intelligence according to specific knowledge you have. That is, you're a narcissist.
I can see the benefit of using computer programming as a method of teaching kids to approach problem solving and apply these skills in ways that are likely to seem relevant to their generation.
If they think they can raise a generation of super-nerds, good luck with that. Programming isn't hard if you are wired correctly. If you are better suited to other work, learning programming will only ever make you a mediocre programmer who could have been an elite something else (granted, those alternatives aren't always feasible).
Because I was writing code from magazines and computer manuals, I didn't know what I was doing, but I got a familiarization with symbols. I realized at an early age algebra was really important to programming, and I gave extra effort into these courses. What is even more important than coding though is math. There should be(if there isn't already), a ton of early age math applications for kids to learn how to count and do addition/subtractions. The one that came for the TI-99 I played repetitively until I mastered it, and it gave me a jump start in math.
God spoke to me
There's no basis for this statement, unfortunately.
Perhaps we should stop teaching basic math to 6 year olds as well? Math itself is pretty abstract, as it's all numbers and not anything physical. At least with programming they can see the results of their efforts play out before them.
With the launch of the Raspberry Pi, computers are becoming affordable again for the younger generations.
The world economy is really that bad. When I was 6, nobody had a personal computer. When I was 12, people had $2000 personal computers. When I was 14, my parents could finally afford one of those $2000 personal computers for me to write my school papers on. (Hello Word for DOS.) And today? We're grateful we can buy computers for $35, because otherwise we couldn't afford them.
As an aside, is anybody else amused that buying a keyboard new costs almost as much as buying the Pi itself?
The OLPC's, meant for schools, included Scratch (and turtleart and pypy, but for me the the star is that one), so in more countries could had been introducing programming to children for years. It could be a good tool to introduce small childrens to it, as is very visual, almost a toy, but you can dig a lot on it. Not sure in which language or environment will be done in Estonia, but that could be a good approach.
Illiteracy isn't a measure of intelligence. It is a measure of specific knowledge, as you say. There is even a commonly used term for people who are familiar with operating a computer: computer-literate. Did you forget to read the comment you replied to?
I don't think anyone expects computer literacy to include basic programming concepts (such as loops and conditionals), but it's not absurd to suggest it should.
I just started my daughter, age 5, on Scratch (http://scratch.mit.edu/). The problem is that she is limited as much by some design choices as by her age. For example, icons and widgets are fairly small to click on; some functions can be accessed by right mouse click (or long left click) context menus; there is no full screen mode, i.e. a child can accidentally switch out of the program; and the worst offense, it requires numerical input. This last one would be easy to fix by sliders: very simple for continuous variables, and the number of dots could be used for small integers (such as number of loop iterations). Otherwise she enjoys it a lot, but I need to unnecessarily attend to any time numeric fields are involved. Anyone know of an alternative that adheres closer to its charter?
Although I applaud the initiative of Estonia, I think that using the lego mindstorm would be a better first step to introducing your kids to programming. Here is why. (By the way, I am a grad student who is working with kids at a local middle school with the mindstorm)
1) Motivation: Many kids are naturally excited about seeing stuff move and do stuff, and therefore robotics is a very nice programming application for kids.
2) Logic: Mindstorm GUI has a nice interface that is easy for kids to use because the GUI uses visual logic blocks. It is pretty much like flow diagram that the kids can build to represent the logic. This flow diagram is of course is compiled into real code behind the scenes.
3) Problem solving skills: Kids can do really neat experiments with the mindstorm such line following and wall following. These experiments are fun and allow the kids to really fine-tune their problem solving skills.
To me, personally, not being able to program is akin to being illiterate. Paper, writing instruments and books and other printed matter are widespread, it'd make one look real bad not to be able to use them. Same goes for computers, and I don't qualify using prepackaged software without any ability to script anything being real use.
For most people, computers are still TVs with typewriters attached. Every so often someone figures out how to bolt another gadget on to them (camera, phone). People who don't know how to turn on a computer, navigate the filesystem, launch applications etc. could be considered illiterate. Beyond that, its like saying that anyone who doesn't know how to tune their car's engine is incapable of driving.
That said, programming is not particularly difficult if there is a reason to know how to do it. Knowing how to program is no more special than being literate.
Sorry, I don't buy the modern day hype about how kids need to learn programming and typing and hardware at the age of six. That shouldn't be what school is about. Focus on the basics. Otherwise, why not spend years of this precious educational time teaching them about how to build and maintain a car engine? And if that, why not a boat engine, too? And why not how to repair a washer and dryer? And a lawnmower? And how to sew? And woodworking? And how to perform surgery? And how to run the board at a radio station?
That isn't to say all of these things are not worth knowing, but lets steer away from the trendy bullshit that sounds good and focus on the fundamentals that help when you decide to pursue these more specific things on your own. This is another fantastic example of what's wrong with education in many places. Rather than focus on critical thinking and analytical skills, we focus on specifics that will ultimately only serve a handful of people and do nothing more than look nice on some brown-nosing administration executives resume when he trots out his pet project.
There's nothing stopping kids from learning and writing Objective C applications from within Raspberry Pi. GCC is capable of compiling them, and Linux is capable of running them. They can then use what they have learned at a later time in life, using Apple's proprietary libraries, to "make them money" as you wish.
I'm sure many schools will be thrilled to hand out Apple devices to six year olds, just as soon as Apple makes one that costs less than $30.
So you're proposing they teach six year olds to pick fruit?
Well, shit, let's teach them woodworking so they can see their results even faster.
Let's avoid turning everything into a vocational school so we can pump out bots.
Woodworking doesn't have nearly the impact on your daily life that computers do.
You act as if that's the sole purpose of teaching programming. Nice myopic thinking there.
Widen it - teach the kids to think. Now maybe programming is a part of that but if it's a wider scope ("Now class - let's all watch this shampoo advert and then talk about what it really said") it would be more acceptable and more useful.
Strange as it seems, not everyone wants to program. And a nation (correct me if wrong, Estonia) doesn't really want a nation of programmers. A nation does want a nation of thinkers though. (well, most of the time).
"The greatest lesson in life is to know that even fools are right sometimes" - Winston Churchill
I wonder is thinking behind this, in any way related to the 2007 attacks on Estonia's networks
I've got news for Mr. Santayana: we're doomed to repeat the past no matter what. That's what it is to be alive.
Yes, and this is a bad thing.
And they would be functionally computer illiterate. A bad thing when so much of our lives involves these devices.
Driving is separate from maintenance. Someone who can't drive can't pass the test to get their license. Someone incapable of maintaining their car spends lots of money at the mechanic or ends up destroying it far earlier than it would have otherwise failed.
Do you realize how important that makes programming? In the first world we have literacy rates well above 99% and for good reason. Anything less damages a nation as a whole and makes it unable to maintain a functional economy.
I wonder how they will provide adequate instruction for all students once they try to expand this pilot program. I assume a lot of the curriculum will be video based, but you still need competent teachers in the classroom to answer questions.
Driving is separate from maintenance. Someone who can't drive can't pass the test to get their license. Someone incapable of maintaining their car spends lots of money at the mechanic or ends up destroying it far earlier than it would have otherwise failed.
Tune, not maintain. There is a difference. Still, not knowing the difference does not preclude someone from driving their car in the factory configuration.
The point is that using a computer does not require the ability to program it. The only reason that computers are so ubiquitous these days is that programming skills are not required to use them.
It is more practical to concentrate certain skills among a few functionaries.
To want to "bring the manufacturing jobs back" is a lost cause. Programming is the new manufacturing and what Estonia is doing is brilliant. More and more everything in our daily lives is governed by software. Estonia is a small country and choosing this as their national specialty is going to prove monumental to their long-term success.
Teaching programming to a 6-year-old kid is a little bit too early
The art of programming is not about programming itself. It's much more than that.
The person who does the programming must first have a grasp of logic, and it's not an easy task for a 6-year-old kid to grasp the concept of NOT, OR, AND, XOR and all those shits yet
Especially for a kid who is still in a state of "blank sheet".
If you want to teach a 6-year-old programming, you just gotta hafta "pre-programmed" that kid beforehand
In my own experience, I started to teach my kids simple logic when they were age 3 - simple concept of logic, away from all the computer jargon, in every-day-life setting
By age of 4 to 5 my kids could easily grasp why this thing won't work this way, and have the ability to think of new ways to solve (simple) problems by themselves
Only by then I started them with the good-old LOGO language
Putting a kid at 6-year-old through the programming routine might sound nice, but I am afraid of the unintended consequences - that the kid might be psychologically scarred for life
My 2 cents
Muchas Gracias, Señor Edward Snowden !
What amount of money you spend on education??
According to this link, about $800 billion, which is by far more than any other country on the planet. Or $7700 per student. Which is over 30% more per student than the number two spot.
The education budget is cut every year,
That's bullshit perpetuated by which ever political party that is not in power at the time. The amount of planned increase to the education budget may get lowered, but it still gets increased. This is often times reported as a savings when it comes to other spending. The budget for project X was supposed to go up by $200 million, but we only increased it by $150 million. Look at how much we cut. The spending still increased, just not as much.
to make room for more war and keep the tax breaks for the rich.
Or hand outs to the poor. Blah, blah partisan bullshit.
And the higher education is just vastly overpriced.
I couldn't agree more.
Honestly, I wouldn't be surprised if the USA is waaay down on the list of how much education you actually get and on the price/performance ratio.
Indeed. Scroll down on that link I provided above.
Now I feel like I should say something good about US education, and how you can easily turn it around since you have the abilities... But I honestly can't think how... I just hope it gets better for you guys. I really do.
Agreed. It's pretty scary that our future leaders will be dumber than ever and still have command of one of the largest nuclear arsenals and well equipped militaries on the planet.
Where is the research that says children of six have the requisite cognitive capacity to program?
By only using the information processing equivalent of a car, which happens to be a program somebody else did for a computer, you lose the WHOLE DAMN POINT of having a computer in the first place, and are actually never using the computer. You just use the program. A fixed-function appliance again.
For most people, their PC/tablet/smartphone is an appliance. They exercise their power and freedom in other domains.
How good is his reading comprehension? can he understand the man pages? Does he understand arithmetic? How about in bases 2, 8 and 16? Symbolic logic? How is his SPELLING for God's sake?
Why shouldn't every barista at Starbucks know about bubble sorts, recursion and optimizing compilers?
Ken
Well above 99%? Are you sure?
Many inner-city school systems have fewer than 1/4th of incoming freshmen graduating here in the US.
The literacy rate is high, but 99% seems high to me.
I guess it depends in large part what we define 'literate' as...
Ken
Well, is that not programming too? Start with simple instructions, and then slowly move up.
My son? He can recognize most letters and numbers.
But the thing with kids is that they develop faster than you think. If I only consider what he's learning right now, I'll be behind by the time he's ready for the next thing.
Strange as it seems, not everyone wants to program
Since when are school courses determined by what kids "want" to do? That said, I also think school courses should also include logic, reason, critical thinking etc. for all students. The problem is that a nation of actual thinkers (as opposed to cogs who are productive in a limited specialization but otherwise pass their time with bread and circuses) would pose a danger to a government, which is why governments like to control schooling.
My other UID is three digits.
Programming uses math? Well some arithmetic, surely, but usually not much else.
huh? do you even realise what math becomes when it is combined with computers? cryptography (math) is the basis of information security, robotics, which is part math, science and engineering (the latter two are dependant on math) will largely automate the above processes you mentioned up there in time. computer games? just because math may be seen as mere arithmetic to some (no offense but if i modded you post you would not be getting a 4?) doesnt mean it should be regarded as some digital bean counter. teaching programming at an early age will force kids to be analytical in ways that is not practically possible with other technical subjects, and hence at least complementing ones analytical ability in other technical areas. if this gets implemented by enough education systems i think there will be be a massive benefit to innovation in years to come. think of it another way, if woodwork, metalwork and technical drawing (as well as other hands-on practical subjects) are taught in schools, why not programming? it wont mean that everyone will become a programmer, students could quicker grasp statistical programming languages like SAS and SPSS (along with countless others) which aid all types of science and engineering, not to mention business (the latter being a good or a bad thing, up to you) it will also get us to the technological singularity quicker...
Without some programming skills, you are just as uneducated as without some real math skills.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
I don't know where the heck do you live, but being capable of learning reading and writing skills doesn't make you able to, you know, read and write. The idea that I measure intelligence according to specific knowledge is a fantasy you made up on the spot.
A successful API design takes a mixture of software design and pedagogy.
I do expect computer literacy in fact to include basic programming concepts. Everything else can be acquired fairly easily, but there aren't all that many kids out there who, say, learn mathematics from scratch by themselves. There are some, just as there are some who can learn decent programming and then software engineering all buy themselves. Yet those are few and far between. Mere use of prepackaged software is like only being able to fill in the blanks in form letters.
A successful API design takes a mixture of software design and pedagogy.
OK, so you drew the line in the sand already and obviously decided that reading, writing and arithmetics are basic skill that everyone must learn, but suggesting anything more than that is narcissism on my end. That's where we disagree.
To me, computer literacy means being able to program the damn thing to do what you want it to do, not what someone who wrote a prepackaged piece of software thought you will want to do. One doesn't have to develop whole applications, scripting is a perfectly fine ability to have, and it is IMHO a dealbreaker. If you can't script Word or that finite element package that you have to use in class to do what you want it to, you will lose a lot of time if any sort of quantitative career is ahead of you. Just as one who is conventionally literate doesn't need to be able to write a book, I don't suggest application writing, or even dealing with bits and bytes. Being able to use, say, VBA and powershell at a basic level, having understanding of what APIs are available, that's what lets you use the computer to do your bidding, so to speak.
A successful API design takes a mixture of software design and pedagogy.
People need to in fact use computers not as typewriters, but as computers: general purpose programmable things where you can leverage a whole lot of software to do what you need done without manual, repetitive labor so often seen when people have no clue that their day-long task can be described to the machine in a page of VBA, powershell, applescript or whatever other scripting environment is present. I have leveraged fairly minor scripting in homework and assignments all the way through high school and college, for a multitude of purposes, and it saved me easily 10k hours of menial, mind-dumbing work over the years. And that's a conservative estimate. Just as being unable to read and write will waste you a lot of time and perhaps close quite a few doors, being unable to do minor programming/scripting will do the same, people just don't realize it.
PS. These days there's arguably no such thing as tuning a car's engine, not on stock cars anyway, so that's a bad analogy.
A successful API design takes a mixture of software design and pedagogy.
It's OK as a hobby, I'm not suggesting they need to know about it. What they should know is, say, how to use applescript (if they have a mac), or VBA/powershell on windows. No bubble sorts needed, and recursion isn't that big of a mental leap if you teach it early enough. The whole compiler thingy can be pretty much left out as far as I'm concerned.
A successful API design takes a mixture of software design and pedagogy.
I taught myself programming in BASIC when I was 8. For me, it was writing neat little games and such. Mostly input to variable, check variable, print something. Later I started dabbling in QBASIC's graphics functions. Sure, I haven't used BASIC in over a decade. However, what I didn't know was that I more-or-less taught myself the basics of logic, algebra, and even some simple geometry. When I got to pre-algebra and algebra in middle school, the biggest hurdle for most students was the idea that letters were numbers. Many kids just couldn't comprehend the idea of a variable much less how to manipulate them. There I was not understanding how anyone couldn't grasp that.
Teaching kids programming shouldn't be about vocational training. It should be an extension of the math program that can ease children into the mindset of dealing with abstract problem solving. Up until middle school (in my case anyway) everything was teaching basic operations (which was either rote memorization of tables or simple algorithms), mixed with some generic life skills like money, reading an analog clock, and units of volume, length, weight, etc. There was no abstract thinking involved or problem solving, just simple calculations. So when students are thrown into actually solving problems, most struggle to adapt to the mind set necessary to do that. Hell, I know many adults that fail at general problem solving. Something like programming can be a good (and fun) way to introduce children to this fundamental kind of problem solving.
Slow Down Cowboy! It's been 1 hour, 47 minutes since you last successfully posted a comment
But just think, if they drop out before the 5th grade they'll be able to get jobs programming turtles to draw pictures on the floor... What? That isn't a career?
You'd be surprised.
Believe it or not, this has been studied.
I can't seem to find the paper I wanted to reference, but here are a few others that might interest you:
The Effects of a LOGO Computer Programming Experience on Readiness for First Grade, Creativity, and Self Concept.
http://eric.ed.gov/ERICWebPortal/search/detailmini.jsp?_nfpb=true&_&ERICExtSearch_SearchValue_0=EJ320159&ERICExtSearch_SearchType_0=no&accno=EJ320159
http://psycnet.apa.org/journals/edu/76/6/1051/
http://www.tandfonline.com/doi/abs/10.1300/J025v04n02_07#preview
http://surface.syr.edu/eecs_etd/256/
Required reading for internet skeptics
teaching kids programming is going to make them pump out bots. literally!
https://www.gnu.org/philosophy/free-sw.html
"With the launch of the Raspberry Pi, computers are becoming affordable again for the younger generations."
"Affordable again" implies there was some golden age when computers were significantly cheaper than today, a premise easily disproven by a simple look at the economics of mass production. More programmable devices are being made today than at any time in the past. Almost every device more complex than a light bulb has some sort of microchip built into it.
Low-end Android phones are now cheaper but still more powerful than any PC or programmable calculator from the 70's and 80's, when the "personal" computer revolution took off and took root. Now, even a locked smart phone can be a programming device for the end user, so long as you can download an app that can provide a virtual machine for a simple scripting language. Just GOTO Google to find some examples of that RETRO interpreter for the smartphone of your choice.
The average monthly salary in Estonia is about 800 EU or $1000 USD. That's why the Raspberry Pi is relevant and Apple systems that be useful to do development are not to them. Would you give a 6 year old a computer that cost you a full month of income to buy? No one who's ever watched a 6 year old in action would.
The same economics are true in the majority of the world. Apple's products are relevant only to the best developed countries in the world. Estonia is some distance from being one of them. It's simple math. Try it some time; I think there's an app for it.
"type RIGHT 90, FORWARD 100, LEFT 80 and within an hour he is programming and not realizing it"
Yes, you are correct. But remember, as long there is no GOTO statement it is a kind of programming. Otherwise it will end up as an Italian cooking class.
I know exactly how fast they develop, but my sample size is only 3.
Hell yeah. I taught myself BASIC when I was about 8. Just from screwing around with making simple games I unknowingly learned basic algebra (variables, some order of operations stuff, exponents) translating word problems into code, algorithm design, boolean logic, and general problem solving. When I started playing with QBASIC's graphics library, I ended up learning some geometry since the only primitives were pixels, lines, and circles. I may not have used BASIC in over a decade, but I still use what it taught me.
Just some arithmetic, my ass!
Slow Down Cowboy! It's been 1 hour, 47 minutes since you last successfully posted a comment
Where is the research that says children of six have the requisite cognitive capacity to program?
In the minds of those who have common sense, and/or know anything about children.
Let's avoid turning everything into a vocational school so we can pump out bots.
A moronic statement, because programming is an extremely general purpose learning activity whose benefits extend far beyond just programming the damn computer. Try to have some imagination.
I think that's probably one of the reasons I took to math so well - almost every new concept I learned was applicable to something I had already done/tried to do at least once the "hard way", so future projects were perpetually getting more interesting as my foundations broadened. As a bonus I'm pretty sure being familiar with programming variables made the transition from arithmetic to algebra a fair bit easier. And a lot of the really "sticky" concepts like negative numbers, vectors, and basic trigonometry map so directly to computer graphics that their application was immediately obvious and I was able to get lots of "hands on" practice with them almost immediately.
In fact I'd be willing to bet that having an ongoing program curriculum that paralleled the mathematics curriculum would make it relatively easy to introduce at least basic algebra and trig to grade-school students - maybe not a lot of the more advanced techniques, but you could stretch the first semester of algebra and trig over a couple years, mixed in with the arithmetic they would otherwise be learning. And there's the added benefit that science (and for that matter arithmetic) courses could actually be taught using some mathematical language, which tends to simplify things dramatically. Even if students don't yet have the skill to derive formulas themselves, verifying them is probably within their grasp so they can prove to themselves that they do in fact mesh with the concepts that proceeded them.
--- Most topics have many sides worth arguing, allow me to take one opposite you.
he learns it as soon as he learns writing his name
There's your problem - you're still considering the US to be a first world nation, we've been backsliding for a while now, especially at the poorer end of the social spectrum.
--- Most topics have many sides worth arguing, allow me to take one opposite you.
Much better able to figure out who they are, where their talents lie, and exercise life choices in a more robust way.
My own High School, in the 80's and in a hick town of maybe a few thousand mind you, offered quite a lot. My own skill sets were:
music, drama, speech, debate, I directed several performances starting from sheet music and some willing participants
formal and creative writing
math through intro to calculus, which I bailed on, headed off into binary math, booleans, etc... when the teacher asked, "why? Nobody uses those numbers?"
Metal fabrication skills
Wood fabrication skills
Auto Repair, and I completely rebuild a nice car I got for a song too.
Introduction to radio and electronic media
Basic Electronics
Ceramics, Art
Social Studies, History, Economics
I taught LOGO my Senior year
BASIC, 6502 Assembly, PASCAL, Beginners C (Aztec, if I recall correctly)
Desktop Publishing
Basic Biology, Chemistry
Hobbies were HAM Radio, Computer programming, building cars, fabricating products to sell in local markets, and TV tune up and Repair for date money....
Not every kid soaked it up, and for them, they could drill down into some niche and excel. Others, like myself, just wanted to learn and build.
Coupla things that have resulted from that:
1. Fell on hard times growing up. Sometimes didn't eat. I could do lots of work as a High Schooler, and did. Turn right around and hunt for food, going from the shot, to meat on a plate. Old school, no joke.
2. I've never, ever paid for a locksmith. Won't either.
3. All I need is ANY car. Hard times happened again a few years ago. That old car with 300K+ miles on it got me through, runs great, cheap ass. I completely understand that thing. Again, cheap ass.
4. Took lots of jobs to attend college. Manufacturing ended up a focus, because I can make stuff, make a lot of stuff, make it right, make it on time, and make it cheap ass. People love cheap ass.
5. Can learn on my feet, and I know that's from the broad stimulation I got when it mattered.
And it goes on and on. Not everybody wants to make things, or even understand them. That's OK. But when hard times come calling, you all will be damn glad to know those of us who do, and school is about building great people. All kinds of great people. Starting out by underestimating them isn't how it's done.
Blogging because I can...
Teaching programming to a 6-year-old kid is a little bit too early
I taught myself to program at age 8. I would have loved to have a CS professor explain things to me. As it was I had to figure out PEEKs, POKEs, binary math and logic on my own and that took a lot of time and effort.
Putting a kid at 6-year-old through the programming routine might sound nice, but I am afraid of the unintended consequences - that the kid might be psychologically scarred for life
I should just stab you for saying that....
HA! I just wasted some of your bandwidth with a frivolous sig!
And I hear that the Chinese now teach programming in kindergarten.
Maybe we've got to bite the bullet and find a way to teach programming in the womb. It's the only way we can maintain our lead, right? And we can give the child-bearers a refresher course too while we're at it.
And Rasperry Pi might be more suited for tinkering than Apple products. For example, Rasperry Pi has GPIO pins and interfacing sensors etc will make the programming much more concrete and interesting.
I have quite expensive laptop, but I still can't wait that my Rasperry Pi arrives, because it is more suitable for tinkering than my expensive laptop. Because of Rasperry Pi, Arduinu etc I am feeling similar excitement I felt when I was learning how to program. If I just had more time...
Because you've got to work really hard at being this awful at education. But we're trying.
Teaching programming to a 6-year-old kid is a little bit too early
The art of programming is not about programming itself. It's much more than that.
The person who does the programming must first have a grasp of logic, and it's not an easy task for a 6-year-old kid to grasp the concept of NOT, OR, AND, XOR and all those shits yet
Kids as early as 3 when they are already forming complex sentences and ideas already master the concepts of AND, NOT and OR (exclusive OR). Logical disjunction is a bit harder to grasp as it does not happen in natural language as often as the other connectives.
Also, you seem to be thinking kids will be faced with full, all-balls programming assigments. Programming at that early age can be tought with a visual programming model, one that might not necessarily be turing-complete, but powerful and declarative enough to show a computational cause-and-effect kind of thing.
See little Tadeus, if you use this command (or visual gadget), you can draw a circle, and if you use it next to this command, you can make it green. See, if you put these options together you can select to create a circle or a rectangle, either green, yellow or red.
Something like that at an early age is just enough. It kindles the child's interest, and it shows that he/she can control this thing, this computer beyond the already pre-canned software recipes (games, browser, whatever) with the mouse and a keyboard. It shifts him/her from a consumer to a producer, however simple the content produced might be. They are kids after all.
You don't get kids to know that a * (b + c) = (a * b) + (a * c) = (b * a) + (c * a) = (b + c) * a = (c + b) * a on day one. You begin with one apple and one apple makes up two apples. Same with programming and any other topic for that matter.
Especially for a kid who is still in a state of "blank sheet".
Kids at the age of 6 are not in a state of "blank sheet".
If you want to teach a 6-year-old programming, you just gotta hafta "pre-programmed" that kid beforehand
In my own experience, I started to teach my kids simple logic when they were age 3 - simple concept of logic, away from all the computer jargon, in every-day-life setting
First of all, if they can learn simple concepts of logic by the age of three, then that comes into conflict with your early assertion that kids of 6 years of age have problems with AND, OR, XOR and NOT. Secondly, if they can have a grasp on simple logic, then they have a leg for programming (obviously programming at their level, just in the same way there is math at their level, and math at our level of comprehension.)
By age of 4 to 5 my kids could easily grasp why this thing won't work this way, and have the ability to think of new ways to solve (simple) problems by themselves
So by age 4 and 5 they already have skills parallel to some of the skills required in programming.
Only by then I started them with the good-old LOGO language
Putting a kid at 6-year-old through the programming routine might sound nice, but I am afraid of the unintended consequences - that the kid might be psychologically scarred for life
My 2 cents
Scarred for life? You gotta be kidding. You can argue that the delivery of a course and the nature of the teacher might scar a kid, but an actual subject. Kids are far more resilient and capable of learning than you give them credit for.
I read this too quick and imagines little people in robes and soft pointed hats learning programming to compete with Dilbert...
Really? In all my years of holding conversations with six-year olds on every topic imaginable, I've yet to leave the table thinking "wow, that kid really knows his shit."
Sounds more like a reflection of your intelligence, not the kid's.
Children are designed to learn. It comes naturally to them.
Thousands of MILLIONAIRES have been created thanks to the iPhone and OS X ecosystem
LOL. Name one, troll.
Tune used to be part of maintain back before ECUs existed. The timing would drift and the spark plugs and points would burn out and then you would 'tune' the engine. It was like changing the oil and filters.
You are using 'tune' in a slang sense to mean altering the factory settings to increase performance.
People who don't know ANY programming are lokely to spend a whole day going clicky clicky while I type:
For i in *.ext; do $i; done
And do something else in another window while it grinds away. I have easily saved more time by doing that than it took me to learn shell scripting.
I wouldn't say they should know the various sorting algorithms and their merits, but they might find it helpful some day if they know how to use the sort utility (or at least that it exists and how to call up a man page).
You may be selling 6 year olds short. They certainly don't have a fully developed abstract reasoning, but they generally can manage procedural programming, particularly if there is an interactive visual feedback. For example, turtle graphics (which easily generalizes to vector graphics).
The patterns of thought they learn by doing that will help them develop their abstract reasoning (a faculty that seems stunted in many adults) and will server them well in later life even if they never program a computer again.
Beyond that, perhaps the most valuable thing to learn at that point is that software isn't manna from heaven and it isn't magic. They don't have to wait for someone else to write it, they can do it themselves. Those machines that are all around them can be bent to their will. As grown up consumers, they'll know when they're being ripped off by a manufacturer that wants them to pay another $100 just to flip an enable but in the firmware.
At six years old, children are usually learning how to read and write, how to make sense of such abstract concepts as numbers, and learning the basics of arithmetics. I doubt they (at least, a good deal of them) are developed enough for the kind of abstraction needed to program.
I first learnt programming, though, around age eight. And even if I am often out of the average, in my school we had computer lessons starting at age 10 (that was back in 1986). For that class, we learnt to program in Logo. And yes, the teachers were amazed that I got bored with repetitions of sequences and found the REPEAT construct by *gasp* reading a book.
But anyway - Programming teaches a way to structure thought. Formal languages teach how to precisely convey nonambiguous information. Algorithm analisys is the logical next step. So, yes, teaching programming to kids is as important for me as teaching them mathematics, grammar, history, (an introduction to) philosophy, (general bases of) social and natural sciences.
And yes, this does not mean Estonian kids will all grow up to be excellent programmers - It only means they will get one more tool to use in their adult life. Maybe many of my fellow students finished highschool and never cared about algebra again. Maybe I'm not worth much in several topics. But the mere fact of being exposed to those topics, regularly and repeatedly, makes your worldview change.
What is it with this trend of "the younger they start the better"! In Sweden kids don't start learning how to read or write until they are 7 yrs old. Heck, he's 6 and it's basically still daycare! Im a brit but ive certainly come around to the idea that it's not that big a deal that they don't start school at 5 yrs old like in the UK. I see that even Swedes manage to get PhD's and that Sweden is generally well respected as far as international science goes. I suppose it didn't hurt them that they started later than other countries?
To finish, let me point you to a talk by my current hero: Ken Robinson, who raises some very significant points about our educational model:
http://www.ted.com/talks/ken_robinson_says_schools_kill_creativity.html
"Everyone knows that vi vi vi is the number of the beast" -- Richard Stallman