Slashdot Mirror


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."

34 of 307 comments (clear)

  1. Great Idea! by Coolhand2120 · · Score: 4, Funny

    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.

    1. Re:Great Idea! by Anonymous Coward · · Score: 2, Funny

      I'd stick a serrated knife in my own rectum before I let my child learn to program instead of playing with other kids or learning sports.

    2. Re:Great Idea! by Anonymous Coward · · Score: 2, Insightful

      I'd stick a serrated knife in my own rectum before I let my child learn to program instead of playing with other kids or learning sports.

      Why do you imagine the two are mutually exclusive? I, in fact, started programming at the age of six. My "best friend" at the time would come over and we would program together on my C64. He now works for Google; I'm working on a PhD in Aerospace Engineering. I had other friends who weren't into programming so much, but would still get together for games.

      Have you seen kids today? Computers and cell phones are a background part of their lives - like dish washers and microwaves, and I think that is a very good thing. Would you say, "I'd stick a serrated knife in my own rectum before I let my child learn how to use a microwave", would you? There are programs and games out there that are both social and educational. (In fact, participating in open source software can even be both social and educational, although that wouldn't apply to most six-year-olds.) While I don't think they should entirely replace other forms of social interaction or educational instruction, I do think that deliberately withholding that from children will put them at a serious disadvantage. (You should, of course, teach your children how to be safe in an online setting, just as you should teach your child how to be safe "IRL" at a park, etc.)

    3. Re:Great Idea! by bmxeroh · · Score: 2

      Found your compiler error....

      --
      Central Ohio Home Theater Installation - The Theater People
    4. Re:Great Idea! by russotto · · Score: 2

      I sometimes wish compilers had a "just trust me on this" mode.

      You've never heard of -fno-errors? Best paired with -Wnone.

  2. boo by buddyglass · · Score: 4, Insightful

    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.

    1. Re:boo by fiannaFailMan · · Score: 4, Insightful

      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.

      Hopefully it's religion.

      --
      Drill baby drill - on Mars
    2. Re:boo by nebulus4 · · Score: 3, Insightful

      I'm going to disagree. Programming will teach kids the logic and logical thinking. Thus, I'm pretty sure they will excel in other subjects, especially math.

      --
      "It would be wrong to refuse to face the fact that everything is fundamentally sick and sad."
    3. Re:boo by shitzu · · Score: 4, Insightful

      Programming actually teaches more than just programming computers. It teaches you to build structure into your thoughts. I personally think learning foreign language or music or other subjects will in fact benefit from programming basics.

      BTW i am Estonian, but did not have such luck - ran into programming in late teens.

    4. Re:boo by narcc · · Score: 2

      The problem, of course, is that despite all the elementary teaches who put "develop critical thinking skills" in every other lesson plan, no one has a good way to teach or otherwise develop those skills in their students. Go ahead. Hunt down a primary or secondary teacher and ask them if their lessons help students develop critical thinking skills. The reflexive answer should be "yes". Then ask them how and watch the color drain from their face. (The point? Students aren't developing critical thinking skills because teacher's don't have the tools at their disposal to foster the development of those skills in their students.)

      Computer programming, however, requires students be able to think critically. You can't really teach it, but programming is a great way to force the development of those skills in students.

      The skills that they learn in their programming class will be automatically applicable to every other subject, such is the nature of critical thinking.

      This is why teaching computer programming is important. It wouldn't matter if they never touched a computer again.

    5. Re:boo by c0lo · · Score: 2

      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 actually do some programming, one'll already need some "math", "reading" and "writing". And, IMHO, having coded a working program is a good incentive for kids, as it reinforce their sense of "control over something" - to put it briefly: in regards with derived satisfaction, "make install" seems some levels up over "make believe".

      Besides, the writing in the Estonian language is mostly phonetic (every grapheme corresponds to one and only one phoneme). As a result, learning to read/write is highly simplified over some other languages. Thus kids are done with reading/writing by grade two in elementary schools, with no effort invested up to the middle school in spelling (yes, that's right, spelling bees are rare to nonexistent in countries whose national language follows more phonemic spelling rules).

      While I'm not Estonian, my maternal language is also phonemic: I started to learn reading/writing at age of 6 and my first book I ever read all by myself was a translation of "The Hobbit" at age of 7 (granted, took me two whole months; but, since then, I was not dependent on anyone else to read books - other than, perhaps, to get a book from a shelf too high for me).

      --
      Questions raise, answers kill. Raise questions to stay alive.
    6. Re:boo by Velex · · Score: 2

      Ah, good. I was looking for a comment like this. The thing is that I started writing my own programs before I knew algebra. I was comfortable with the idea of a variable around the time I was memorizing my times tables. I think my early experiences with computer programming helped imensely in forming the kind of abstract thinking that was crucial for learning higher maths. What would have been really cool is if when I was 7 there had been somebody to explain to me what those strange functions that return odd decimals like sin, cos, and tan were, and what on earth "radians" were.

      (Being 7 at the time, puzzling over the strange decimals without a clear answer and lacking the intuition to see if a pattern emerged in the output values of sin(x) as I gradually increased x, heading out to check out the fort and all the cool stuff that B- [a boy-type] and R- [a girl-type] had found often took a more firm grasp on my attention. And, being a boy in a religious family that would later careen into fundamentalism headfirst as the Jew plot to take over the government with the Y2K bug became ever more scriptually obvious, a boy who was scared to death of this god, a being who could hear my every thought and was just waiting to burn me alive for thinking something bad, burned and killed and erased from existence like those boys in ancient Egypt whose parents hadn't the foresight to acquire lamb's blood and paint it above their doors, I knew better than to ask my daddy what a sin function was for, and were cos and tan also works of the devil? Alas, the questions of a 7 year old mind, and the sad, sad realization a little over a score years later that for some people, the answer is "Yes, it's named sin, so cos and tan must be sins as well, and since you asked, you must be in league with the devil.")

      I guess what I'm saying is that I think that learning computer programming before algebra made the whole exercise of learning algebra and even to some extent calculus and trig a kind of "oh, I should have thought of that" no-brainer. I remember that once they gave me this completely obtuse order-of-operations test and they were astounded that, having never been exposed to "transition math" (or pre-algebra), that I was able to properly evalue a Rube Goldberg mess of parentheses and multiplications-following-additions. They bumped me two years ahead in math because of that test (to be fair, they'd already identified me as an accelerated maths student in Elementary). That was all thanks to the experience of telling a computer, using parentheses and being able to take for granted that when I wrote Let X := X + DX * SPEEDMUL what I meant was first, multiply DX by SPEEDMUL, then add X and store the result in X, exactly how to arrive at the number I wished to calculate (and how to get the spaceship's laser beam to deduct life from the final boss as a quaint side-effect).

      --
      Join the Slashcott! Stay away entirely Feb 10 thru Feb 17! Close all tabs to prevent autorefresh!
    7. Re:boo by xaxa · · Score: 2

      I had to write essays like "Compare and contrast the attitudes to life after death between Christianity, Buddhism and Islam". "Explain the different attitudes to euthanasia for Muslims, Sikhs, Christians and atheists".

      (So I can see why the US wouldn't want children to actually think about religion.)

  3. Re:Finally a country that gets it! by tibit · · Score: 2

    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.
  4. Why? by RNLockwood · · Score: 3, Insightful

    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
    1. Re:Why? by Microlith · · Score: 2

      We don't require all kids to know automotive design or repair

      In a society as dependent on cars as the US is, that's actually a huge negative. It makes it easy for people to be taken advantage of, and makes repairs that would probably cost a handful of parts and an hour or two of labor a rather expensive ordeal.

      nor manufacturing techniques for flat panel displays, nor cellphone antenna design

      Ridiculously obscure.

      Computers, however, cannot be avoided. They dominate modern life and the only way to escape them is to exit civilization altogether. Computer programming, along with basic finance (and the math necessary) should be baseline subjects rather than optional excursions. It's about breaking open the black box and laying its contents bare, brushing aside mystery and confusion and replacing it with knowledge.

      This is, of course, contrary to the modern push to put user-immutable black-boxes in everyone's hands.

    2. Re:Why? by marcansoft · · Score: 4, Insightful

      We don't require all kids to know automotive design or repair, nor manufacturing techniques for flat panel displays, nor cellphone antenna design, etc.

      That's the root of the issue: that programming is seen in the same light as design and manufacturing, in other words, something that only professionals with years of training should do.

      It's not. Most computer users could benefit from having some (very basic) programming knowledge. For example, my dad does software translation, and he doesn't really know much about "proper programming" (I did try, unsuccessfully, to get him to learn Python), but over the years he's worked with a number of scripting languages to automate parts of his job. These days, he tends to use AutoHotkey scripts, but a number of years ago he also used Windows analogs of shell scripting and sed to automate a number of tasks, including munging (ASCII-based) document formats in various ways. He understands the basics (variables, while loops, etc.) and can use them with a simple language to make his life (much) easier.

      What could Joe Average Computer User do if he knew a bit about programming? For example, he could write a userscript to fix up a gripe in website that he visits frequently. Or write a batch file or shell script to automate a daily task. Or add some more complex logic to a spreadsheet. Or write a tool to organize his music collection in exactly the way that he wants it. Or write out a long mathematical calculation into a script so that he doesn't have to type it into a calculator over and over.

      Keep in mind that the steepest part of the learning curve for an average person is figuring out the initial concepts (and the younger you start, the more likely it is that you'll "get it"). Once you know the basic constructs of computer languages, you can quickly pick up on any special-purpose language. Anyone who knows, say, Javascript (or any half-decent BASIC dialect for that matter) should be able to breeze through the Python tutorial.

      Now, say, teaching Software Engineering to everyone would be a silly idea. Most people couldn't care less about MVC, or proper object-oriented design.

  5. Fine if used appropriately by PeanutButterBreath · · Score: 2

    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).

  6. Re:Finally a country that gets it! by Microlith · · Score: 4, Insightful

    Maybe, just maybe because at age 6 the brain's ability to handle abstract concepts is not yet developed?

    There's no basis for this statement, unfortunately.

    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.

    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.

  7. XO by gmuslera · · Score: 2

    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.

  8. Re:Why not? Alan Kay might ask by Anonymous Coward · · Score: 2, Insightful

    Real programming begins when the turtle impacts the wall and you have to figure out how to handle it properly.

    That's right!! If you can't code it out in hand assembled binary, it's not Real and has no real world use! And Punch Cards all the One True Interface, it's the only way to get close enough to the metal!! And everyone who ever started programming based basics is an idiot! That includes you, because I was born knowing how to program! I have a direct neural binary interface, it's an adaptation.

  9. Re:Why not? Alan Kay might ask by fsck1nhippies · · Score: 2, Interesting

    While I agree with the idea you present, I have to say that there is nothing wrong with teaching someone to address a problem step by step. The need to learn how to handle the turtle, before they can understand how to handle exceptions.

    Really what they need is work with something like LOGO through 4th grade, basic through 6th, Pascal to 8th, and c++ until they graduate. It should be mandatory for all. Worst case scenario is you have a guy in his garage building a machine that builds a rake to give to the machine he programmed to clean up leaves. It could be worse.

    No matter what, LOGO sucks but it is better than having every high school student wishing he wrote Angry Birds (Wheres the TM), while flipping burgers. It cant hurt!

  10. Re:Sign of the times... by Microlith · · Score: 2

    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.

    Your logic doesn't work. The reality is that the cost of computing, as a whole, has dropped to the point that a fully capable system can be had for $35, give or take a keyboard/mouse/monitor. At $35 you can give each child their own unit that they can plug in and do whatever they want, rather than a handful of extremely expensive systems shared across the entire school population.

    is anybody else amused that buying a keyboard new costs almost as much as buying the Pi itself?

    Not terribly. There's a profit margin on that keyboard that the Pi doesn't have.

  11. Re:Finally a country that gets it! by Microlith · · Score: 3, Insightful

    For most people, computers are still TVs with typewriters attached.

    Yes, and this is a bad thing.

    People who don't know how to turn on a computer, navigate the filesystem, launch applications etc. could be considered illiterate.

    And they would be functionally computer illiterate. A bad thing when so much of our lives involves these devices.

    Beyond that, its like saying that anyone who doesn't know how to tune their car's engine is incapable of driving.

    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.

    Knowing how to program is no more special than being literate.

    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.

  12. Programming is the new manufacturing... by jdbuz · · Score: 4, Insightful

    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.

  13. Re:Age 6 is a little bit too early, methinks by SourceFrog · · Score: 2

    I am afraid of the unintended consequences - that the kid might be psychologically scarred for life

    You really think a child might be 'scarred for life' from being introduced to programming at age 6? Really? That has to be one of the stupidest things I've ever read in my life.

    --
    My other UID is three digits.
  14. Re:Finally a country that gets it! by captjc · · Score: 2

    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
  15. Re:Age 6 is a little bit too early, methinks by RightwingNutjob · · Score: 3, Insightful

    In this day and age, rudimentary programming ability is as vital a skill as basic arithmetic. Even if you want to work a spreadsheet program, you need to do something pretty close to "programming". Just like not every 6 year old is a future Fields Medalist--or even a professional mathematician, engineer, or scientist--but still needs to be taught arithmetic in order to function, so too he should be taught programming, even though 99% of 6 year olds will not become professional programmers.

  16. Re:Age 6 is a little bit too early, methinks by VortexCortex · · Score: 2

    Teaching programming to a 6-year-old kid is a little bit too early

    You're wrong, everyone develops at different rates. You have ancient repressive ideas of learning. I began learning .BAT (batch) commands to launch my video games more quickly -- some had to have EMM386 loaded, so I made a script to rewrite AUTOEXEC.BAT and reboot (if needed), then launch the game I wanted to play. I was only 6 years old, and had learned boolean logic and program flow. At the age of 8 I taught myself BASIC. I would have LOVED to have a teacher to ask questions. Fortunately BBSs and Libraries existed outside of school, where my real (applied) learning began.

    Thanks to my ability to implement ANYTHING from long division to Trig, or even complex numbers, or socio-economic simulations I was always ahead of my class. Once you've written the code to perform basic mathematics using binary coded decimal strings (so I could "show my work" as the teacher demanded), I understood the process more intimately than the teacher herself. Indeed, by merely being exposed to numbers in different bases I could more deeply understand and explain the properties of multiples, squares, roots, etc as they related to the digits themselves than any of my teachers ever could.

    I would hear some kids say, "Fuck this, When am I ever going to use this in the real world?!" -- I was able to use my knowledge as soon as I learned it; Thanks to having the ability to program I wanted to learn more, do more. Learning shit is boring if you can't use it immediately. Everyone would benefit from having the capability to script basic tasks and actually use the computers (instead of merely use programs written for them).

    Even just teaching kids about binary would help. Why is the Ten's place the Ten's place? For the same Reason that the Two's place is the Two's place in binary -- That's how many numeric representations are there are in that base. When I learned to count I asked my teacher why Ten's place and Hundred's place had multipliers of ten and one hundred, and she could not answer except, "That's just the way it is." -- I was ready to understand numeric bases at the age of four.

    The English language is very complex, yet children learn it years before they enter school. Six is too early?! -- You, sir, are a fool.

  17. Re:Age 6 is a little bit too early, methinks by ShoulderOfOrion · · Score: 4, Funny

    They would be if Perl was their first language...

  18. Re:Age 6 is a little bit too early, methinks by Sqr(twg) · · Score: 4, Insightful

    The idea that children can be "scarred for life" by learning skills that "they are not ready for yet" seems pretty common in U.S. culture. (Much less so in Europe, and even less in eastern Europe, so I'm not surprised they are doing this first in Estonia.)

    The hypothesis is that if you'd teach a child something "too early" then he'd not be very good at it, and therefore feel that he "failed". This would damage his self esteem and "scar him for life".

    That hypothesis has been disproven in two ways. First, children don't feel that they "failed" if they don't master a skill immediately. They enjoy the process of learning and getting better, even if it takes a long time. And they compare themselves to what they could do the day before, not to what adults can do. (They also compare themeselves to other kids the same age, and in that respect, learning a skill early is good for self-esteem.)

    Second, it is acaually bad for a child when parents try to build his self esteem by only giving him tasks that he can master immediately. The good kind of self esteem comes from knowing that some things take years to master, but you can get there if you work hard.

  19. Oh noes! Estonian child prodigies! by golodh · · Score: 2
    No Panic! No Panic! The Estonians are gaining on us! They're teaching programming at the age of 6.

    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.

  20. Re:Why not? Alan Kay might ask by Simon+Brooke · · Score: 2

    Please re-read my post. I said that I support the use of LOGO up to 6th grade. I think that the mental process required to step through a specific procedure is met well by the application. I think it sucks because personally I would have preferred pascal quite a bit earlier. LOGO forces a step by step approach to everything without a consideration for code reuse. I do think that there needs to be an early exposure to thinking that way.

    You've actually never used Logo, have you? Logo is Lisp with syntactic sugar. It is a full-featured functional programming language, and to say it doesn't encourage code reuse is just mistaken. When I wrote adventure games in Logo - decades ago - the same Eliza-like natural language parser was used by non-player characters to interpret one anothers' speech actions as was used to interpret command-line input from the user.

    --
    I'm old enough to remember when discussions on Slashdot were well informed.
  21. Re:Age 6 is a little bit too early, methinks by xaxa · · Score: 2

    I first did some programming at about 6 years old.

    My school (in the UK) had a "floor turtle", a simple robot on wheels that could run a LOGO program (Forward 20, Left 45, Forward 10, etc). We programmed it to run over the lines of the netball court. We didn't use any sensors or anything (I assume it had some) -- I expect older kids did that, but by the time I was older the teacher who knew how to use the software had left. Or maybe the curriculum had changed into "use the word processor", which is what most use of the computer was from when I was about 8 until 18.