Slashdot Mirror


Localized (Visual) Programming Language For Kids?

First time accepted submitter jimshatt writes "I want my kids to play around with programming languages. To teach them basic concepts like loops and subroutines and the likes. My 8-year-old daughter in particular. I've tried Scratch and some other visual languages, but I think she might be turned off by the English language. Having to learn English as well as a programming language at the same time might be just a little too much. I'd really like to have a programming language that is easy to learn, and localized or localizable. Preferably cross-platform, or browser-based, so she can show her work at school (Windows) as well as work on in at home (Debian Linux). By the way, she speaks Dutch and Danish, so preferably one of those languages (but if it's localizable I can translate it myself). Any suggestions?"

185 comments

  1. Scratch by dabadab · · Score: 4, Informative

    Scratch is localizable, it's actually running in Hungarian on my Debian desktop. Looking at /usr/share/scratch/locale, it's already translated to over 40 languages.

    --
    Real life is overrated.
    1. Re: Scratch by Anonymous Coward · · Score: 3, Informative

      Available Scratch languages

      Help translate Scratch into other languages.

    2. Re:Scratch by laejoh · · Score: 1

      So instead of "Hello World" it outputs "A légpárnás hajóm tele van angolnákkal"?

    3. Re:Scratch by dabadab · · Score: 1

      Exactly :)

      --
      Real life is overrated.
    4. Re:Scratch by GravityStar · · Score: 1

      This. Scratch is already localized in Dutch and Danish. Even the Scratch website is localized in Dutch.

    5. Re:Scratch by jimshatt · · Score: 2

      OP here. I'm sorry, I didn't know that. Just me being shortsighted, I guess. Thanks.

    6. Re:Scratch by Anonymous Coward · · Score: 0

      Scratch is the best option, especially if you can localize it.

      I used Scratch to teach basic programming concepts just the other day.

    7. Re:Scratch by yukk · · Score: 1

      Someone sent me this link today. It looks to be a bit of an advertisement, but it might be handy
      http://venturebeat.com/2013/04/12/why-your-8-year-old-should-be-coding/
      I don't know if it's been localised anywhere but may appeal. The link is a question but the article is about an online product.

      --
      The trouble with the rat race is that even if you win, you're still a rat." Lily Tomlin
  2. logo by Anonymous Coward · · Score: 0

    use logo, it's Dutch

    1. Re:Logo by Anonymous Coward · · Score: 1

      When I was 8 we used a localized version of Logo at school, and indeed it was interesting at that time. Today's standards might be higher, though.

    2. Re:Logo by Anonymous Coward · · Score: 0

      As far as I know most dialects of Logo are localized or localizable, both keywords and variables. But I don't know its domain (a drawing turtle) is interesting to your daughter.

      I can second this. I learned logo as a child and fell in love with programming, more than two dacades ago.

    3. Re:Logo by Shlomi+Fish · · Score: 1

      Logo is a horrible language to start with because it doesn't trust you with responsibility. You are stuck in a la-la-land where the only thing you can do is draw pretty pictures. Beginning programmers, and even children, want to be trusted with responsibility, and feel like they are in control of their environment. So I suggest avoiding pedagogical languages and instead opt for practical languages.

      --
      We have two eyes and ten fingers so we will type five times as much as we read. http://www.shlomifish.org/
    4. Re:Logo by mrthoughtful · · Score: 5, Informative

      "The only thing you can do is draw pretty pictures" That is just not true.

      Although it's initial purpose was to create a math land where kids could play with words and sentences, Logo was most often taught via turtle graphics - which provided a set of visual cues to understand the nature of the underlying structures of languages such as the stack and program counters and also helped to develop debugging skills. Likewise the fact that recursion is Logo's preferred processing paradigm is, IMO, quite remarkable.
      Logo's initial weaknesses were to do with an absence of concurrency and limited IO. Modern variants such as StarLogo and NetLogo address many of those issues and are used to examine emergent systems and AI.

      Scratch runs on Squeak, a variant of Smalltalk, which was inspired by Logo, which itself is a dialect of Lisp.

      --
      This comment was written with the intention to opt out of advertising.
    5. Re:Logo by TrekkieGod · · Score: 2

      Logo is a horrible language to start with because it doesn't trust you with responsibility. You are stuck in a la-la-land where the only thing you can do is draw pretty pictures. Beginning programmers, and even children, want to be trusted with responsibility, and feel like they are in control of their environment. So I suggest avoiding pedagogical languages and instead opt for practical languages.

      When I took a graduate-level multi-agent systems course at my university, the language we used to implement algorithms we were finding in current research paper on the topic was netlogo. You can do a lot more than draw pretty pictures, and the language is used fairly heavily in certain research fields.

      --

      Warning: Opinions known to be heavily biased.

    6. Re:Logo by narcc · · Score: 1

      Logo is a horrible language to start with because it doesn't trust you with responsibility. You are stuck in a la-la-land where the only thing you can do is draw pretty pictures.

      Absolute nonsense. There's a lot more to logo than that! Perhaps you should learn something about a language before you make outrageously incompetent pronouncements like this in the future?

      I'll warn other users away from the pedagogically unsound article on your website as well.

    7. Re:Logo by Anonymous Coward · · Score: 0

      Sure, it's only for drawing pretty pictures.
      So... why do so many LOGO dialects have commands called CAR and CDR?
      The mysterious knights of the lambda calculus are not even TRYING to disguise their evil ulterior motives!

  3. The only way to do it by V!NCENT · · Score: 3, Interesting

    Kay worked at just that, at Xerox PARC. It was not visual, but let's be honest here; Xerox fscking PARC.

    You should check this out:
    http://squeak.org/About/

    No... It is better.

    --
    Here be signatures
    1. Re:The only way to do it by Melkman · · Score: 4, Informative

      And there is a visual programming environment for squeak especially geared towards kids with localization in many languages. It's called Etoys (http://www.squeakland.org/). You can also link it to an Arduino or Mindstorm for real world interaction with Physical Etoys (http://tecnodacta.com.ar/gira/projects/physical-etoys/). It's what my kids use ;-).

  4. Re:Stop by DarkDust · · Score: 4, Insightful

    This is encouraging, not forcing. So I'm all for it. If a friend of my father hadn't introduced me to programming at age of 7, I would have missed something that soon turned into a passion and is now my day job. That was the most important event in my life, second only to my birth. You have to give kids the chance to try something to see whether they like it, like chemistry or electronic kits. If they like it, great! If not, so what.

  5. Logo by isj · · Score: 4, Interesting

    As far as I know most dialects of Logo are localized or localizable, both keywords and variables. But I don't know its domain (a drawing turtle) is interesting to your daughter.

  6. Scratch is still your best bet. by Spottywot · · Score: 3, Insightful

    Either translate it yourself from the source code, it's not a huge language, or just accept the fact that she will have to learn English along the way. She will be learning a new language anyway, so what does it matter what language she uses to label new concepts. Loop, string etc...can't be a huge problem for her as she is bilingual anyway.

    --
    In a cybernetic fit of rage she pissed off to another age...
  7. Lego Midstorm by ThreeKelvin · · Score: 4, Funny

    I don't know if it's localized, but Lego Mindstorm should do the trick. Rather expensive solution though.

    1. Re:Lego Midstorm by cosm · · Score: 3, Funny

      I don't know if it's localized, but Lego Mindstorm should do the trick. Rather expensive solution though.

      Why is this modded funny?

      --
      'We are trying to prove ourselves wrong as quickly as possible, because only in that way can we find progress.' RPF
    2. Re:Lego Midstorm by Anonymous Coward · · Score: 0

      Maybe it should read "Lego Mindstorm should do the brick."

    3. Re:Lego Midstorm by gl4ss · · Score: 2

      because they think it's a toy? well it is a toy but you can do some cool tricks with it like http://www.youtube.com/watch?v=oF0pMILT7_Y

      it's expensive though and I don't think that it solves the language "problem".. I don't think it's a problem though, learning computers and learning english is something that just goes hand in hand.

      --
      world was created 5 seconds before this post as it is.
  8. Just "Learn English" by Anonymous Coward · · Score: 1, Insightful

    .. no programming language requires you to "learn English", they require you to know a handful of keywords.

    Also, at 8 years old, they should already know English or start learning it anyways, it's a language pretty much everyone on the planet will need and the earlier you start learning it the easier it will be for you to learn it properly.

    1. Re:Just "Learn English" by jez9999 · · Score: 1

      Yeah, I would expect kids who speak Dutch and Danish (particularly Danish) to speak English relatively well as a second language. Strange that it would "put her off".

    2. Re:Just "Learn English" by DarkDust · · Score: 2

      Give that kid a break, she already speaks two languages and you want her to force to learn a third already? How many do you speak?

    3. Re:Just "Learn English" by Anonymous Coward · · Score: 2, Insightful

      Prob is, Dutch and Danish are cute "local" languages. She's gonna have to learn English, so better do it now while she's a kid and can handle it.

    4. Re:Just "Learn English" by peragrin · · Score: 1

      English, Bad English , Canadian and American English.

      --
      i thought once I was found, but it was only a dream.
    5. Re:Just "Learn English" by KGIII · · Score: 1

      Bad English! *wags finger* No participle for you!

      *sighs*

      I'm not even sorry for that.

      --
      "So long and thanks for all the fish."
    6. Re:Just "Learn English" by gbjbaanb · · Score: 3, Interesting

      I'd rather learn a new language at 8 than at 48... just saying, its probably a very good thing to teach her English right now than have her struggle to learn it later (apparently kids are much more adaptable to language, starting off with nothing and having to learn 1 it kind of makes sense somehow)

      All my Danish friends say that they all speak English anyway, 5 million Danes on the planet and no-one else speaks Danish makes it almost mandatory for them to speak something else, and Danish is a close common ancestor of English anyway (ie I really don't speak Danish, but I can understand the meaning of danish text) having its roots in the settlement era of the dark ages when you guys came over in the longships.

    7. Re:Just "Learn English" by Anonymous Coward · · Score: 0

      What's up with these jerks? Every few months some idiot asks questions about "teaching" Coumpure to kids in single digit age, these idiots must have single digit IQ. Let the kids be kids for heavens sake, why desn't someone think of children?

    8. Re:Just "Learn English" by Anonymous Coward · · Score: 0

      Indians and Chinese for the racist win!

    9. Re:Just "Learn English" by ChrisMaple · · Score: 1

      For example, C has a moderate list of keywords, but if you want to use the language without substantial grief, you need to use a dozen standard libraries, each with a good number of English-like functions. Knowing English makes many programming languages easier.

      --
      Contribute to civilization: ari.aynrand.org/donate
    10. Re:Just "Learn English" by jimshatt · · Score: 1

      You do have a good point about learning new languages when you're young. I'm not sure she's ready for the 2nd language in 2 years (Danish being the 1st). When she's having fun learning to program, I can always try switching the locale to english (to up the ante, so to speak :) ).

      Having just learned Danish myself, when I suddenly need to switch to English, a sort of Dutch-Danish version of English comes out of my mouth. And you can just see people thinking "what century did he just arrive from (riding his magic time-dragon)".

    11. Re:Just "Learn English" by Anonymous Coward · · Score: 0

      She will learn English. Let's put (her) off programming until she's done that, right?

      By the way, Dutch or Danish is a lot less cute when you realize how much money we make.

  9. You are wrong in that it matters by Anonymous Coward · · Score: 4, Insightful

    I learned programming long before knowing english. It doesn't make any difference, keywords are just symbols you have to understand what they do. The fact that 'for' stands for an english word doesn't mean a non-programmer can look at the source code and see what 'for' does or the implications it has.

    1. Re:You are wrong in that it matters by WillKemp · · Score: 1

      The fact that 'for' stands for an english word doesn't mean a non-programmer can look at the source code and see what 'for' does or the implications it has.

      A Dutch speaker shouldn't have too much trouble with the word "for" - it's spelled a little differently, but pronounced almost exactly the same as its Dutch equivalent "voor".

    2. Re:You are wrong in that it matters by Anonymous Coward · · Score: 0

      and what about, say, do...while?

  10. Re:Why are you asking in English? by DarkDust · · Score: 1

    You do realize that a lot of non-native english speaker read Slashdot?

  11. Priorities by Anonymous Coward · · Score: 0

    Why not use the time to learn English first. It will be more useful to her than programming.

    1. Re:Priorities by DarkDust · · Score: 2

      Why not use the time to learn English first. It will be more useful to her than programming.

      Learning a whole language first isn't much fun. Also, lots of people I know (me included) learned programming first, then (through programming) english. I started with GW-BASIC at age of 7 and almost everything was in english: the programs I had, even the manuals. I picked up basic english from this (after some trial and error you understand what certain words or phrases mean; I was pretty surprised when I learned at school that these words are pronounced totally differently than I imagined ;-)

      I even knew a pretty good programmer who still does not speak english. He couldn't ask for directions if he'd get lost. Yet he manages to do hold up as a professional. Couldn't believe it at first, but it shows that knowing english does help when developing but it's not strictly necessary. The good thing about programming is that the syntax rules are so much more strict and easier to understand than natural language.

  12. BASIC by Meneth · · Score: 1

    I started with GWBASIC on DOS 3 at about that age. A couple of books with example programs in my native tongue and I was set.

    1. Re:BASIC by kthreadd · · Score: 1

      Similar experience here but I started out with a cheat sheet that someone gave me, that got me going for a while. I remember the joy of getting a copy of QBasic, and not have to prefix every line with a line number.

    2. Re:BASIC by DarkDust · · Score: 1

      That's exactly how I started as well. The manuals I had were in english (plus DOS; that's how I picked up basic english) but we had books in our library that were in German. So not knowing english doesn't stop you, but I guess it would've been easier/nicer if I would've been able to start in my native tongue.

    3. Re:BASIC by nschubach · · Score: 1

      I remember that joy... then the next was QuickBASIC being able to compile to an EXE... it was a huge step to be able to run things without the QBASIC interface. At least for a young kid.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
  13. kturtle by Anonymous Coward · · Score: 0

    http://edu.kde.org/kturtle/

  14. Do it the right way by Anonymous Coward · · Score: 0

    C.

    Or even Java.

    1. Re:Do it the right way by DarkDust · · Score: 1

      As a first language? That's like giving a kid a Hayabusa instead of a bike with learning wheels.

  15. Khan academy's platform by cool_akshay · · Score: 3, Informative

    Khan Academy's programming tutorials use some kind of visual programming platform. I think its worth checking out. It starts of with programming the movement of the ball. The language is English. But as it is intended to teach programming with fun, this might be the one. I had tried it with my 12 year old bother and it worked. Here is the link : https://www.khanacademy.org/cs/paddle-ball/830543654

  16. GvR is a great place to start by ernest.cunningham · · Score: 2

    GvR is a great platform to learn programming. It teaches loops and conditionals and problem solving. It is written in Python so will work cross platform. The only negative is that I think it is not localised.

    http://gvr.sourceforge.net/index.php

    1. Re:GvR is a great place to start by ledow · · Score: 1

      Great suggestion for a localised programming language there, then.

    2. Re:GvR is a great place to start by ernest.cunningham · · Score: 1

      He said "Or one that I can localise myself" It is written in Python, he could easily localise it himself...

  17. To switch languages in Scratch... by girlinatrainingbra · · Score: 4, Informative

    It's very easy to switch the locale in Scratch even while running scratch. Click on the left-most icon (a wire-frame globe icon) at the top-left, and that will allow you to select the language to use.
    :>)
    Danish a.k.a. Dansk, is already a supported language in Scratch, as are 49 other languages as shown at http://info.scratch.mit.edu/Languages

    1. Re:To switch languages in Scratch... by Anonymous Coward · · Score: 0

      He'd need Dutch (Nederlands) or Spanish (Espanol), both supported.

    2. Re:To switch languages in Scratch... by turkeyfeathers · · Score: 1

      Danish people tend to speak Danish (Danske), not Spanish (Espanol).

    3. Re:To switch languages in Scratch... by MightyYar · · Score: 2

      Then what the heck are all those field hands speaking??? No wonder they look at me funny. Well, that and my face.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
  18. Lego Mindstorm by pieleric · · Score: 5, Interesting

    Lego Mindstorm might be a nice approach. It's available both in Dutch and Danish, and uses a graphical language with a great graphical interface dedicated to kids. I use it to teach (Dutch) programing and robotics to kids and it's amazing easy for them to make and modify the software.

    The main drawbacks is that, although the software is free, you need to get a 200€ lego robot to make it useful. It also has only a Windows (and probably Mac) version. IMHO, the robot has the advantage to bring additional interest to the kids. It makes programming much less abstract.

    To try the software before buying, look for the lego mindstorm nxt 2 iso on the lego website (it's a bit hidden).

    1. Re:Lego Mindstorm by ThreeKelvin · · Score: 1

      Oh, I didn't know it was available in Danish.

      I've used the NeXT (or nExt, NexT, or whatever their crazy capitalization is) for an introduction to control theory for engineering students at the university. It's a great way to quickly hobble together a prototype in Lego and some prototype software and watch it in action, and thereby get them motivated to learn a bit of theory.

    2. Re:Lego Mindstorm by Anonymous Coward · · Score: 0

      It also has only a Windows (and probably Mac) version.

      Looks like lots of people have got it working with Linux in various ways, some pretty straightforward.

    3. Re:Lego Mindstorm by bobs_lounge · · Score: 1

      I want to start a meme against Mindstorms. My son (10yr) spents way too much time putting the legos together vs programming. The "language" are effectively hieroglyphs. His is getting into Scratch. I think its great. Its localizable,and can even be used to control a Lego Mindstorm robot!

    4. Re:Lego Mindstorm by mrchaotica · · Score: 1

      Does NXT run on NeXT?

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    5. Re:Lego Mindstorm by Anonymous Coward · · Score: 0

      He is putting the logos together, shut up and let him play !!!

  19. Perl FTW! by girlinatrainingbra · · Score: 4, Funny
    Perl for the win! It doesn't matter what language you speak natively, the symbols used in Perl will be fully incomprehensible!!! The learning curve is just as steep whether you are a native English speaker or a native speaker of French, Urdu, Chinese, Klingon, Swahili, or Dansk!
    :>)
    The ability of Perl to mystify, astound, and obfuscate is so reknowned that there is even a contest dedicated to the ability of Perl to render unintelligible code: the Obfuscated Perl Contest

    Used properly, Perl can become a "write-only" programming language, such that no one else can decipher what you are attempting to do.
    ;>)
    Just kidding. I am actually a fan of Perl, Python, C, C++, BASIC, Lisp, and Scheme. I hear good things about Logo and the turtle languages all allow keywords to be in any language. Just because the token for printing in BASIC is usually the english word "PRINT", there is no reason for it to be constrained to that. In the TRS-80, "PRINT" is retokenized as the question-mark symbol "?" which can also be used as a short-cut for the "PRINT" statement. My first programming language was BASIC (Level 1 basic) on the TRS-80 with 4K (4 kilobytes!!!) of memory. I am sorry that your daughter is turned off by the english language. Get your hands on a BASIC interpreter and change the interpreter for the keywords which you'd prefer. Or stick with Scratch as recommended above.
    .
    Also, Lisp and Scheme are fairly cryptic and language agnostic, though parenthesis heavy: car, cdr, eval, print (damn, that last word is obviously english.) Good luck!

    1. Re:Perl FTW! by KGIII · · Score: 1

      My first programming language was BASIC (Level 1 basic) on the TRS-80 with 4K (4 kilobytes!!!) of memory.

      Heh... The Trash 80!

      I learned BASIC on a PET, upgraded to a VIC 20, and then I spent a summer pounding away on a friend's TRS-80 II (or III maybe, we're talking 30 years ago so my brain is a bit fuzzy) and that made me decide to get a TRS-80 4. I remember regretting purchasing it and not waiting a while longer. If I'd waited I probably would have ended up with an Amiga (1000 or 2000, again, I can't really remember because it was a lot of years ago) which was a much nicer computer - you could even multitask.

      If I'd ended up with the Amiga then things may have been different. Buying the Trash 80 meant that a small group of us all had the same type of computer and a lot of the programs that would run on one would run on the others even if their model was different. I think we'd occasionally have to make small changes but nothing major. As I never got the Amiga I'm not 100% positive but IIRC it came with AmigaBASIC (from Microsoft actually) which wasn't at all compatible with anything else on the market.

      Anyhow, I spent ages sharing and swapping out changes with a buddy. I'd written and kept poking at, for years actually, a text based RPG that was probably a lot less fun than it seemed like at the time. It kept us busy and amused for quite a while, we poked at the game individually and collaboratively for years. We'd make changes and had our own versions (we were OSS before it was cool I guess, well, not really - I'm not sure much was closed source back then) that we'd design for our friends and each other to play.

      I was in touch with Robert (my buddy from way back then) probably about a year ago and the subject came up. He still has a couple of old floppy disks but no way to check them. I could probably cobble something together to read the disks (there are actually a couple of old working drives in the attic) but I've actually since found old (remember the old dot matrix printers?) source printed out and have considered seeing if I could put the game back together again. I probably should seeing as I have the time.

      Wow... Now that I'm thinking about it... Even the "combat system" was pretty much stolen from AD&D (first edition 'cause we're old and second hadn't been invented yet I don't think). Damn we were geeks. Oh well...

      I am not sure what my point is. I guess it boils down to: Finding a way to give a kid access to programming resources being a potentially good thing.

      Not everyone is going to want to learn how to do it well, not everyone is going to be able to develop skills to do it well, and not every kid will find it entertaining.

      The kids that do find they're able, willing, and enjoy it should certainly be exposed to programming though I'm not sure if they'll need any guidance to get there - they may find that path on their own and not need anyone urging them at all. We didn't need to be guided, we were irresistibly attracted to it by a force similar to gravity. I'm not sure how I'd have reacted if someone had tried to guide or coerce me but I probably still would have loved it and found said guide to be a resource and bugged the hell out of them with every little question I came up with.

      --
      "So long and thanks for all the fish."
    2. Re:Perl FTW! by Anonymous Coward · · Score: 1

      Hah! APL FTW!
      But seriously, symbols are language agnostic. And APL is a very powerful functional language.

  20. Turtle Graphics by denpun · · Score: 1

    Not Dutch but available in German, English and Vietnamese!
    http://blockly-demo.appspot.com/static/apps/turtle/de.html

    Here is the main page
    http://blockly-demo.appspot.com/static/apps/turtle/index.html

    It uses Blockly, a visual programming editor...
    http://blockly-demo.appspot.com/static/apps/index.html

    Its browser based and I think with your help initially, she can play around by herself eventually... :)

    Here are some examples of what can be done:
    http://blockly-demo.appspot.com/static/apps/turtle/contest/index.html

    If she likes drawing..you can use that as a relation to see if she likes this as well....
    Here is one that someone did that creates a random pattern everytime....
    http://blockly-demo.appspot.com/static/apps/turtle/en.html#zdpxaa

  21. Piet by pipatron · · Score: 1

    How about Piet?

    --
    c++; /* this makes c bigger but returns the old value */
  22. Re:Stop by ozmanjusri · · Score: 5, Informative

    I've been teaching my nephews coding and robotics with Minibloq http://blog.minibloq.org/. They love being able to see their code happen in the real world, with lights, buzzers and motors to control.

    The hard part is getting them to stop!

    There are French, Bahasa and Spanish versions available, and it should be simple to add Dutch and/or Danish.

    --
    "I've got more toys than Teruhisa Kitahara."
  23. Editirs? by Anonymous Coward · · Score: 0, Funny

    To teach them basic concepts like loops and subroutines and the likes.

    This sentence no finite verb.

    My 8-year-old daughter in particular.

    Neither this one.

    1. Re:Editirs? by sir-gold · · Score: 1

      There were no actual grammar problems, just punctuation mistakes. The word immediately preceding your two examples should have been followed by a comma instead of a period.

      Punctuation, especially commas, is hard even for native english speakers.

  24. You should teach her English by Shlomi+Fish · · Score: 5, Insightful

    Hi,

    I may be dismissed as an imperialistic pig for saying that, but I've written on why it is important to avoid localised programming languages because it is becoming more and more important to learn English as soon as possible. Just for the record, English is not my mother language (I am Israeli and my mother language is Hebrew), and yet I think that learning English is an increasingly important skill, and also communicate primarily in English in my Internet interactions, and most of home-site and blogs are written in English. Whether you like it or not, I believe English has been becoming what Aramaic was in the Near East from the time of the Neo-Babylonian Empire up to Arab times.

    I suggest you invest the time in teaching your daughter English first, which is of far greater utility than programming, and is also absolutely necessary for learning to program (or for most other fields of science, technology and endeavour).

    --
    We have two eyes and ten fingers so we will type five times as much as we read. http://www.shlomifish.org/
    1. Re:You should teach her English by Anonymous Coward · · Score: 0

      and is also absolutely necessary for learning to program

      Nope.

    2. Re:You should teach her English by Anonymous Coward · · Score: 0

      While understanding English is not strictly required to become familiar with programming concepts like loops, functions and stuff... As soon as you want to try something more complicated you will need to read tutorials or other explanations on how certain techniques work, which are often only available in English.

    3. Re:You should teach her English by gl4ss · · Score: 1

      and you don't need to be able to read to be a good cook.

      sure opens new horizons though.

      --
      world was created 5 seconds before this post as it is.
    4. Re:You should teach her English by Torp · · Score: 1

      As another imperialist pig who's not a native English speaker (Romanian in this case), I strongly recommend getting her used to the English keywords.
      An important part of learning programming is going through documentation on your own, and most documentation worth a damn is in English.
      Mind, i first started with machine code/assembly language when i was 10-ish, and that has no connection with any language known by humans :)

      --
      I apologize for the lack of a signature.
    5. Re:You should teach her English by Anonymous Coward · · Score: 0

      I may be dismissed as an imperialistic pig

      Don't feel bad. Most of what some Americans emit is far from proper English anyway.

    6. Re:You should teach her English by Anonymous Coward · · Score: 0

      Yes, I don't want, and will not try to decipher your slavic or dansk comments `in your code. Fuck OFF

  25. Why not Scratch? by mwvdlee · · Score: 1

    There are many localized version of Scratch available already, including Dutch.
    If the localization is incomplete, I understand that Scratch is easily localizable.
    http://scratchweb.nl/
    http://scratch.mit.edu/forums/viewtopic.php?pid=81477

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  26. Chipwits by Anonymous Coward · · Score: 0

    No words, just images.
    Fun, and teaches the concepts of programming.
    http://en.wikipedia.org/wiki/ChipWits

  27. not localized & not visual by Anonymous Coward · · Score: 0

    I am Dutch, learned programming (well...BASIC) when I was about 8-9 on a C64. The few English words is no problem at all for somebody from that age, especially if you already aware of 2 related languages. I learned much more from that than from the silly LOGO like languages they tried to teach me on school a few years later.

    The key factor is that she should be interested in creating something, you have to learn the language syntax anyway. Besides, most of the time the words do not mean the same as in normal, you have a context defined meaning. Hell, I was trying x86 ASM a few years later and certainly did not need to know English to understand concepts like mov eax, 1 ; int 0x80.

    Do not underestimate your kids. If they want to learn, the language is not an obstacle. And do not spend time on stupid toy languages that are not good for creating something useful anyway.

  28. Semantic gap by Anonymous Coward · · Score: 0

    When I started to learn programming (BASIC and assembler), the keywords meant nothing to me (I'm Dutch). Nor was I expecting to recognize the words -- I took 'learning a computer language' quite literally. It took quite some time before I admitted that 'for' and 'next' might have their roots in English. It took even longer before I understood that MOV might be shorthand for 'move'. Actually, I would really hate to write "Voor apekop=1 tot 10, probeer uittevoeren vierkantswortel(konijnenhok) ...". It's much too close in my mind to the imprecise language I speak in. In that sense I pity the English-speaking programmer.

    Is it actually your experience that your daughter hates to learn English before she can start programming? There is a chance she won't even notice.

  29. Play with them by mrthoughtful · · Score: 4, Interesting

    If your kids are strongly visual, and want to work with graphics manipulation, then Scratch is ok. If they like robotics and want to work in the real world, then Lego mindstorms is alright (for simple projects) both choices the kids will be involved in as much non-programming as coding - as design (2d or 3d) will absorb their time.

    Logo is a pure programming language, which is going to encourage good application design, but it's really important to find a good guide for them - it's also nice (but not necessary by any means) if you can find a turtle. At education college we were encouraged to teach logo, and it was a position that I agree on. The only potential issue is that it is not 'C'-like but that's a syntax issue.

    There are also programming games which help develop Logo skills - not computer games - family games - such as you being a robot, and asking the kids to give you orders to do something - you can give them a starting lexicon of very few commands, and ask them to take you to the kitchen. Note that angles are often best addressed with quarter-turns: left, right, turn-around, etc. Then later on introduce something like 'bit-left' or 'little-left'. So a lexicon of forward,back,left,right,stop is often a good start. Then parameterising forward: eg forward 50..

    The primary advantages are that they get time to have fun with their Dad, (and you with them) and you can design the language fluidly according to their ability. Later on you can easily add function definitions using eg "to": eg. "Dad, to square, repeat 4 times forward 5 right"

    AFAIK none of them have very good debugging tools, and IMO debugging is where most early coders find out if they have enough stamina to want to code, so games like above help you to give suggestions. Likewise, with logo (turtle graphics) - at first anyway- you can act out the programme which can help.

    Logo isn't just graphics - it's a simplified form of lisp.

    --
    This comment was written with the intention to opt out of advertising.
    1. Re:Play with them by mrthoughtful · · Score: 1

      Have a look at http://education.mit.edu/projects/starlogo-tng
      It's available in English, Spanish, Brazilian Portuguese, and Greek - so it should be localizable - certainly for latin-based languages.
      I'm unaffiliated..

      --
      This comment was written with the intention to opt out of advertising.
  30. Kudo by bentwonk2 · · Score: 2

    I have been have witnessed a positive reaction to Kudo, not only for my own 8 year old, but also at his school (where I gave the lunchtime computer club some games tutorials after the Raspberry Pi baffled them), the programming is visual, and more importantly delivers fun, rewarding visual results instantly, all in 3D which the kids can relate too. Within a few hours they were programming the AI for soccer teams and pitting them against each other in a tournament. I write this on a linux box, but credit where credits due MS did a good job with making Kudo assessable and rewarding.

    1. Re:Kudo by Anonymous Coward · · Score: 0

      But ... but it's from Microsoft !!

      Arrrrrgggghhhhhh !!!!!

  31. Re:I learned C when I was a kid. by ozmanjusri · · Score: 4, Funny

    Perhaps, and after all, these boys have other failings as well.

    Their musical skills are below par, they're absolutely useless at bricklaying and carpentry, and they suck at brewing and winemaking. I've suggested to my sister-in-law that she sell them off to vivisectionists and start again, but she's hesitant.

    Do you have any arguments that might convince her?

    --
    "I've got more toys than Teruhisa Kitahara."
  32. Spoken language != coding language by thoughtspace · · Score: 1

    I am terrible at learning spoken languages; but no problem learning heaps of programming languages.
    They use completely different skills. Coding languages are highly structured.

  33. Is localization really necessary? by Anonymous Coward · · Score: 1

    About 30 years ago my grandfather purchased a Commodore 64. I was aged 8 years and I had never used or even seen a "real" computer before, just video game consoles. So how do you start with a computer when you don't have a clou about how? My grandpa and me took the handbook and he dictated me the example BASIC listings. You know, those that played the song Michael Row The Boat Ashore or let a ballon with a Commodore logo fly across the screen and so on.
    In Germany back then english classes startet in the fifth grade when one was aged about ten years. So I startet learning english and basic coding at the same time. My grandpa dictated the listings, I hacked them into the console and along the way he translated the simple BASIC commands. I mean IF, THEN, PRINT, GOTO, GOSUB. DATA etc. pp. are easy to understand and are enough to get an idea about how programming works in general. A funny consequence of learning BASIC before regularly learning english is that today I still pronounce GOTO, GOSUB, DATA as if they were german words - but only when they occur in a programming language, not when talking english. :-)
    I think the challenge in getting nowadays a kid starting to code is not about language or programming language. It's about awakening interest in creating stuff, digitally. Having fun in learning how to command and control your computer. This is much harder than 30 yeards ago, I assume. Why would an eight year old kid bother typing 100 lines of code just to have a balloon fly across the screen? They open a web browser with one click and a minute later they may do anything you unlocked for them.
    Anyway - I'm looking forward to read the other readers opinions because I too asked myself when and how to teach my son in mastering a computer, apart from just being a user.

    1. Re:Is localization really necessary? by pipatron · · Score: 1

      Lies.

      The balloon program is just 16 lines, and expanding it to the full version as presented in the book it's just 25 lines. :(

      --
      c++; /* this makes c bigger but returns the old value */
    2. Re:Is localization really necessary? by Anonymous Coward · · Score: 0

      Not lies, rather my memories that probably show how I sensed it having never typed before while simultaneously trying to understand the code.
      However much more difficult than understanding the basics of the actual code was the very first line of it if I remember correctly.
      It tok me a day or so to find out how to enter it. :-)

      10 PRINT ""

      (In the editor box I see a white heart (even if it's not on a black background), I think it will get lost if I submit it.)

  34. Scratch for windows by Anonymous Coward · · Score: 0

    There is Scratch for windows, check it out.

  35. Rocky's Boots! by funkboy · · Score: 1

    n/t

  36. Blockly by Anonymous Coward · · Score: 0

    The Maze App based on the Blockly language has been translated into danish. See http://blockly-demo.appspot.com/static/apps/maze/da.html

  37. Dutch by Anonymous Coward · · Score: 0

    Your Dutch daughter is 8 and she doesn't speak English? Where do you live, Denmark or something?

  38. NSB/AppStudio for web apps? by ghenne · · Score: 1

    This might be a step up from what you want to do, but NSB/AppStudio might be a suggestion. The IDE is available in 19 languages (Dutch is complete, Danish partially). All the menus, prompts and error message are localized.

    It creates apps which run on iOS and Android devices, which makes it more fun and relevant for kids starting out. They can take the apps with them and run them on their iPhone/iPad/iPod/etc.

    It uses a programming language with a drag and drop design screen, instead of a cartoon (like Scratch) interface, so it's a more serious tool. Programming languages currently supported are JavaScript and BASIC. (There's some English there, learning keywords, but I don' t think that's so bad).

    Runs on Mac or PC.

    1. Re:NSB/AppStudio for web apps? by Anonymous Coward · · Score: 0

      Dutch people are a bit wary of things called NSB :-)

  39. x86 Assembly Language by wirefarm · · Score: 1

    I would recommend teaching her x86 Assembly Language.
    The instructions are simple little things like MOV, PUSH, POP, CALL, and INT. She can and should comment heavily and that can be in any language.
    The mnemonics come from English, but are abstracted enough that they shouldn't turn her off for language's sake.
    The concepts are basic as well. What she learns now will always be relevant. Consider this:
    [...] a design architecture for an electronic digital computer with subdivisions of a processing unit consisting of an arithmetic logic unit and processor registers, a control unit containing an instruction register and program counter, a memory to store both data and instructions, external mass storage, and input and output mechanisms.
    Von Neumann wrote that in 1945 and it all still applies today.

    --
    -- My Weblog.
  40. Scratch is great by Anonymous Coward · · Score: 0

    When I started learning to program in the 1980s, I had to learn English in school. While being not very good in school I had no problem to learn all the BASIC commands in short time. My mother was puzzled, as I never did that much for school. The important thing is, the language is not the problem in your teaching attempt, but if she is not interested in programming, it will not work. Fascination is the thing you require and scratch is a god choice.

  41. Re:Stop by GNUALMAFUERTE · · Score: 2

    Even if they don't make a carrier somewhere in IT, coding skills come in handy in many other carrier choices and is highly valued. Even more important, being exposed to programming teaches other valuable skills, and improves logical thinking and organization.

    --
    WTF am I doing replying to an AC at 5 A.M on a Friday night?
  42. Re:I learned C when I was a kid. by GNUALMAFUERTE · · Score: 2

    Jumping straight into C isn't such a good idea. Specially for an 8 year old kid. Pointers? When you have only been doing basic math for a couple of years?

    Let them understand the logic, and then you can switch them to something more advanced. Just make sure they don't stay on a broken training-wheels language like basic past the age of 12.

    --
    WTF am I doing replying to an AC at 5 A.M on a Friday night?
  43. Re:Why are you asking in English? by KGIII · · Score: 1

    Actually, I don't believe they asked you if you thought it a bit foolish. So as to avoid this in the future could you say specifically why you think that would be foolish?

    --
    "So long and thanks for all the fish."
  44. Re:Stop by a_hanso · · Score: 3, Interesting

    I taught myself programming when I was about 10 years old and I'm not a native English speaker and my language is written in non-latin characters. I can tell you how I did it but many of you are not going to like it:

    I started with BASIC in the pre-structured era. I wrote stuff like this:

    10 PRINT "HELLO"
    20 SOUND 512 5
    (forgive if syntax is wrong)

    I spent a lot of time drawing pictures and making music without knowing anything about conditionals or loops. Then I graduated to GOTO, which in retrospect was a lot easier to understand for a 10 year old than a structured conditional block or a loop.

    When I finally started with structured programming languages, making the transition took only a little time. If I had started with it at age 10, it might have overwhelmed me. The explicit representation of sequence (the line labels), conditions and iteration (the GOTO) was easier for me to understand as a kid. Especially since my English was very limited back then.

    Plus I never bothered with math (I hadn't learned to love it yet). As I said, I drew pictures and made music with the PC speaker (so I was using only a few functions built into the language). Maybe that's an approach to think about, for starters.

  45. Re:Stop by KGIII · · Score: 3, Informative

    I am not sure why but this is actually in my favorites.

    http://en.wikipedia.org/wiki/List_of_educational_programming_languages

    Some research there may help too. I don't have anything of value (beyond said link) to add to this conversation really.

    --
    "So long and thanks for all the fish."
  46. Re:Kudo - try KODU by Anonymous Coward · · Score: 0

    Sorry for the correction bentwork2. it took me a moment to find it online.

    looks interesting though

  47. A Free Gift From Carnegie Melon University by Anonymous Coward · · Score: 0

    http://www.alice.org/index.php

  48. Alice by Denogh · · Score: 1

    Why not Alice? It's available on Windows, Mac and Linux. If it's not yet available in your chosen language, you can join in the localization effort.

  49. Starcraft II by azcoyote · · Score: 1

    Making Starcraft II custom maps can be done with a very friendly GUI, and I believe that it is completely localized. Also, since it's a game, you might be able to spark some interest with it.

    --
    Incipiamus, fratres, servire Domino Deo, quia hucusque vix vel parum in nullo profecimus.
  50. why not ... by Anonymous Coward · · Score: 0

    give her a link to the C++ 11 standard and the link to google's translation tools?

  51. Re:I learned C when I was a kid. by DragonTHC · · Score: 1

    First, watch this http://www.ted.com/talks/sugata_mitra_shows_how_kids_teach_themselves.html

    Second, C is a good idea.

    Always teach the peanut butter robot exercise first. write out the steps for a robot to make a peanut butter and jelly sandwich.
    And when the kids skip a step, you get to stump them with "HOW?" They will soon understand programming at its core as a set of instructions.

    When a kid wants to know how to solve a particular problem, they're going to learn the maths necessary. Unless they don't have the real interest, and then nothing of value was lost.

    --
    They're using their grammar skills there.
  52. Re:I learned C when I was a kid. by Anonymous Coward · · Score: 1

    On the other hand it seems like only C-programmers have problems with pointers. I don't know what but there is something seriously wrong with the syntax C uses for pointers or the common textbook description for them.
    Kids who started with other programming languages doesn't seem to get that problem. It's just a memory address.
    Basic isn't that bad of a programming language to learn programming from as long as you use a non-managed basic.
    I would suggest using some assembler as a starting language. This might seem rough but for small sized projects it works just as fine as C with the exception that you actually see what happens. No problems with compiler quirks or implicit functionality in the language.
    When they later move on to other languages they will be more inclined to ask how you do things in that language rather than what you can do in that language. Pointers will be a non-issue, it is just an address register.

    Assembler have a very bad reputation but apart from some esoteric ones no language is designed to be hard to work with and it have been the first language of many programmers.

  53. LISP / Scheme? by cpghost · · Score: 1

    Not really a visual language, but basically, you can seamlessly define localized wrappers around every LISP function, macro, and special form to obtain a fully-localized programming language. And yes, kids can learn programming with LISP.

    --
    cpghost at Cordula's Web.
  54. Kodu by MagicM · · Score: 1

    You might want to look at Kodu. There are plenty of reasons to hate on it, but it's a visual programming language aimed at making games.

  55. Learn English by msobkow · · Score: 1

    Seriously. Most jobs in the programming industry (including offshore consulting) have customers and partners who use English for documentation, requirements, and code. While it may be "neat" to program in another language, if you try to do so in the real world, you're probably going to get spanked and told to use "comprehensible names in your code."

    I realize that might sound bigoted, saying you have to learn English to program, but it's a simple fact of the modern world. The user interface for applications needs to be localized, but the code is written to be read in English in most cases.

    One can hardly apply for jobs as "C programmed in Dansk" and "C programmed in German", so on. Maybe if you're looking only at the local market, but I assume you're trying to help your daughter build skills for a future career. That's going to mean learning English.

    --
    I do not fail; I succeed at finding out what does not work.
  56. Game Maker by Maarten+Baert · · Score: 1

    I'm surprised no one has recommended Game Maker yet. 8 years may be a bit too young though, but that applies to almost all languages.
    https://en.wikipedia.org/wiki/Game_Maker
    Unfortunately it's Windows-only (the editor at least) and only available in English. But when it comes to creating 'visual' programs (mostly games), this is about the easiest programming 'language' you will find that's still flexible enough. And there's an active Dutch community, which has translated the official documentation to Dutch as well. Game Maker uses a drag-and-drop mechanism like scratch (and there's a scripting language for more advanced users), so the learning time is minimal. There's a free ('lite') version that excludes the more advanced features, but these aren't needed anyway for beginners.

    I highly recommend sticking to the 'classic' version (version 8.1) though, because it's somewhat easier to use, more stable, and has more community support. The 'studio' series is more focused on indie game development, is much more expensive, and the free version is crippled.

  57. Have her try LiveCode, it is modern HyperCard. by Anonymous Coward · · Score: 0

    Have her try LiveCode, it is modern HyperCard. The software is cross compatible with Linux, Windows, OSX, Android and IOS. It is also free and open source.
    You can download it here:
    http://www.runrev.com/products/Overview/

  58. Re:I learned C when I was a kid. by Alex+Belits · · Score: 2

    Kids who started with other programming languages doesn't seem to get that problem.

    That's because they only used languages without pointers. If they used Pascal (that does have pointers but they are not nearly as useful there as in C) they would be more confused than with C.

    It's just a memory address.

    No.

    Pointer value is an address that is assumed to be a location of a variable of a type that the pointer type refers to. This is important for pointer arithmetics, relationship between arrays and pointers, type safety, and allowing/disallowing/tracking data modifications (with const, restrict and volatile qualifiers that are also a part of the type).

    --
    Contrary to the popular belief, there indeed is no God.
  59. Hmm two options by Murdoch5 · · Score: 1

    Now these aren't the best visual languages but they're two I learned. Logo and Turing:
    Logo: http://el.media.mit.edu/logo-foundation/logo/programming.html
    Turing: http://compsci.ca/holtsoft/

    I found them pretty good back in the day.

  60. Sugar by gmuslera · · Score: 1

    More than just Scratch, why not the full Sugar experience? You can put it in a usb stick or put it as an alternate desktop manager if you already use linux. Here in Uruguay (where the language is spanish) is what school kids get with the project Ceibal, and that includes, already localized, Logo (TurtleArt) and Scratch.

    And don't focus on programming, at least at the start. Trying to do animations in drawings will be enough motivation for them to understand the basics of programming while they have fun.

  61. Check out Stencyl by dotHectate · · Score: 1

    You should really check out Stencyl (www.stencyl.com). It sounds like it fits your needs perfectly.

    It uses a visual programming language that is based on Scratch (although not one-for-one). It's gained some attention from educators and has been used by all age ranges (and commercial developers as well). Better yet, you can use it completely for free (if you don't mind a preloader splash screen) to export to Flash - which means easy sharing and playing of the games over the internet. If you want, subscriptions would increase your publishing options as well.

    Best of all, to meet your language request, not only are Danish and Dutch translations started (along with, currently, 26 other languages) - you would have the ability to contribute to them yourself to complete the translation. A crowd-sourced translation effort was very recently started (www.stencyl.com/translate) which already has two completed translations and several others nearing completion. Any user can submit translations and assist with this with no special privileges or permissions required.

    In the interests of full disclosure, I am on the forums (as just "Hectate") as a "Master Stencyler" where I have access to the full version of the program due to my extensive support of the community. The role is purely voluntary and I receive no monetary compensation.
    Given that it's free, I would really recommend at least checking it out. Please send me a PM (here or there) if you have any questions. Good luck to you!

    --
    Patience is a virtue, but haste is my life.
  62. Re:Stop by Anonymous Coward · · Score: 1

    Stop pushing your line of work down her throat.

    Agreed. The last thing the STEM field needs is an influx of people thinking our careers require no self-sacrifice and aptitude. I met enough idiots during my career whom would claim "that is too difficult" to which I responded "you chose the wrong career for that attitude" after which the manager invariably would say "you are not being very supportive". Throughout my career I made the seemingly impossible possible and the difficult look easy...that was my mistake apparently.

  63. try these by Anonymous Coward · · Score: 0

    HI. For kids and something in the browser, try a package called pi80 which was written for the Raspberry Pi,
    but can run in any browser (https://github.com/tbensky/pi80). There's a demo running here
    codebymath.com/pi80.

  64. Kodu by Anonymous Coward · · Score: 0

    Microsoft Kodu

    Write "code" as a game, runs on Xbox 360 (maybe windows too?)

    Only need gamepad to operate, no keyboard required.

  65. Re: Stop by Anonymous Coward · · Score: 3, Insightful

    The problem with doing things right the first time is that nobody appreciates just how damn difficult it was.

  66. Re:I learned C when I was a kid. by colinrichardday · · Score: 1

    Would it be better to say that the pointer is a beginning memory address, but that one needs to know the ending address (or the byte past it) as well?

  67. LabVIEW by Anonymous Coward · · Score: 0

    It's called LabVIEW... Industry standard and simple enough for K-12. They ship a version with the LEGO mindstorm kits.

  68. Learn English?- what the hell by Anonymous Coward · · Score: 1

    All computer languages can be programmed using a localised language set of command words. One simply uses a pre-pass stage that maps the 'foreign' commands to English ones before the code hits the compiler. One minute of googling should provide no end of pre-packaged solutions to implement this.

    As for 'teaching' languages, well every real programmer here will point out that even young kids can be taught 'proper' programming languages and environments. I myself taught my younger sibs, and my youngest brother was highly skilled in assembler before he hit his teens.

    Lots of people will point out that a BASIC environment, like those found on home computers from the TRS-80/C64/Atari-400 through to the various BBC computers, are ideal - but today lack the same instant gratification since current computer games/programs are so far removed from the programs we used to create in BASIC.

    An alternative is to find a current computer game with an editor, or better, a 'script' control system using LUA or the like. Of course, such programming will be limited to making 'mods' to the existing game, but at least the output created will feel state-of-the-art to the child (unlike a 'PRINT' loop in BASIC).

    The truth about coding is this. Some have the aptitude, and most don't. It is like being 'musical' or 'artistic'. Most children 'forced' to code will simply be enjoying the attention of their parent, but will otherwise be making no lasting progress. If you 'struggle' with your daughter, it won't be because you are using the wrong tools. Understanding this, you should ensure the time you spend with her is as 'fun' as possible, and find things to do together on the computer that she enjoys. Stop pretending that very few girls code because of bias in education.

    "I want my kids to play around with programming languages" is a very disturbing quote indeed. Exposing a person to a new idea is fine. Expecting them to have the same enthusiasm as you is most definitely NOT fine. At some point, your block-headed persistence will damage your relationship.

  69. Roborally - play w/ your kids by WillAdams · · Score: 1
    --
    Sphinx of black quartz, judge my vow.
  70. Code Spells by codesmithgames · · Score: 1

    Hi Timothy, have you checked: http://codespells.blogspot.fi/2013/04/beta-release.html?spref=fb Project called Code Spells, sadly only available for Mac at the moment but hopefully for other platforms later too :) -erno

  71. Construct 2? by Anonymous Coward · · Score: 0

    I've been playing around with Construct 2 quite a lot. I believe it's available in different languages, but I'm not certain. It strikes me that it might be a good way for a child to pick up the basic concepts of programming, without actually having to write a lot of code. Plus you can see the results almost immediately.

  72. Re:I learned C when I was a kid. by Almost-Retired · · Score: 1

    Then it sounds like you don't understand the term "pointer" either. To summarize a bit, a pointer is usually of a size (number of bits) that is a native size for the hardware at hand, and could be as much as 256 bits in currently working hardware, but typically 64 bits in consumer hardware.

    Secondly, it is considered to be (usually) a pointer, which if used as a memory address to be read, would result in the reading of the data at that address.

    But there are nuances to what you do with that data, because its possible that the data you just read from that pointers address, is in fact a real address, the pointer, that the next stage of this 'indirection' will be read from.

    Hardware is generally limited to just one of these indirections, but software is free to use as many as the programmer can keep track of, with some 'databases' being organized around doing just that for the programmer.

    This is not a new concept by any means, it could be done on the early cpu's from 30 to 35 years, maybe even 40 years ago. The 1802 from rca could do it as an assembly macro, so could the dane bramaged Z-80's & 6502's, and the 6809, which could do it in hardware in addition to its Program Counter Relative addressing, made heavy use of that ability nearly 30 years ago. Even the TI-9900, which had only one internal register, used that register as an index into the structure of a register stack held in memory, so that changing context on the 9900 was a simple reload of this register with the master address of the register stack of the next process to be given some time to run. Simple, fast context switches, an architecture that should have had more industry support than it got. I think, because its speed limit was real time memory access, the simplicity of it got thrown out like the baby with the bath water but today's cache memory speeds, right on the die with the cpu, could make the concept workable again. .2 nanosecond IRQ service anyone? But it would likely take several millions of dollars to bring a modern, 64 or 128 bit version of the 9900 to life.

    Cheers, Gene

  73. Challenges by kubajz · · Score: 1

    I have a related question - would anyone know about a set od programming challenges/tasks/problems (possibly funny, interesting or connected by a story) to solve, for kids? Whether it is Scratch or anything else I find it much easier to teach my kids when we have something to sink our teeth into...

  74. why C pointers are difficult by r00t · · Score: 1

    I can think of several reasons. The first is that the pointer usage operator and the pointer generation operator go on the opposite side relative to the array usage operator and the function usage operator. That is, '*' and '&' are prefix operators but '[]' and '()' are postfix operators. (BTW, casting also ought to match)

    The stack is kind of cruel. You can take the address of a stack item, save it away, and then later find that bad stuff happens when you use the pointer. You never called free() on the pointer, but it was sort of deallocated when the function returned.

    The other reasons all have to do with convenience "feaures" in the language. This makes the language inconsistant.

    To take the address of a variable, "void *foo = &an_int_var;" will do. To take the address of a function or array or string literal, you can leave off the '&'. You can use it, but most people leave it off. The '&' operator starts to look arbitrary and confusing. Sometimes the compiler demands it, sometimes the compiler prohibits it, and sometimes the compiler doesn't care.

    Pointer arithmetic is a nice shorthand notation. You can do "ptr++" instead of "ptr += sizeof *ptr". We now have trouble: we say that some object is 42 bytes in size, yet adding 42 doesn't get us to the next item.

  75. Who speaks what? by Anonymous Coward · · Score: 0

    They speak as much English in Denmark as they do in the Netherlands. Heck, Danes have problems understanding each others dialects now...

  76. Already Begun by Anonymous Coward · · Score: 0

    Everyone in Denmark and the Netherlands learns English in school from a young age. Your suggestion is rather silly, sorry, but it is Captain Obvious material.

  77. localize the documentation, not the keywords by r00t · · Score: 1

    You need a localized description of things. This could be just a book, or it could be something in the editor. It would help to have tooltip-style explanations of keywords and library functions. It would help to have a localized menu showing things that make sense in the current context. Go beyond the supposed English. Explain the operators. For example, the '*' as a pointer reference is surely not English.

  78. localized lessons and 3D creativity (AgentSheets) by the+agent+man · · Score: 1

    One can argue about the value of localized languages. For instance the localization of Pascal as educational programming language into German and French turned out to be a big flop. Of course GUI components of some IDE probably need to be localized. AgentSheets is localizable and has been localized in a number of languages but not Dutch. Even more important is the localization of tutorials. You can find some here: http://scalablegamedesign.cs.colorado.edu/wiki/Frogger_Design

    There is a mix of native localization (good) and Google translated ones (not so good).

    The other point is that perhaps your daughter just is not excited about the making simple 2D animations and would like to make complete 3D games including 3D characters that she can create? You may want to give AgentCubes a chance: http://www.youtube.com/watch?v=2GWcb3aG2w0&feature=player_embedded

    This runs as desktop application or in browsers via HTML5 (no Flash no Java) site even on cheap $200 Chromebooks.

  79. Re:I learned C when I was a kid. by colinrichardday · · Score: 1

    Then it sounds like you don't understand the term "pointer" either. To summarize a bit, a pointer is usually of a size (number of bits) that is a native size for the hardware at hand, and could be as much as 256 bits in currently working hardware, but typically 64 bits in consumer hardware.

    Sorry if I wasn't clear. I didn't mean the ending address of the machine; I meant the ending address of the variable.

  80. Re:Why are you asking in English? by Anonymous Coward · · Score: 0

    That's hypocritical; it seems as though you're not a native English speaker yourself, or else you might have understood from the context that the original poster was discussing his daughter's lack of English skills, not his own. I bet you have never read a (physical, paper) English novel in your life.

  81. Waterbear by Anonymous Coward · · Score: 0

    This is exactly what Waterbear was created for. http://waterbearlang.com/
    The resulting drag and drop programming languages looks a lot like EToys, but Waterbear runs on Javascript so it works in any browser.

    You can customize the keywords yourself so even if you find a version localized for your languages, you are not stuck with the original translator's decisions.

    And ignore the people saying to just learn English. Programming language keywords are NOT in English even though they look very similar to English words. There is as much similarity between English and Dutch or English and Danish, as there is between English and Javascript or English and Python.

    Learn programming using something like Waterbear to focus the child'smind on the essential task "programming" without distracting them with a foreign human language.

  82. Re:I learned C when I was a kid. by Almost-Retired · · Score: 1

    Where I am talking about the address of the data, which may actually live in any address the hardware can access. So you still aren't fully grokking the concept.

    And I am sad because I can't seem to explain it any better.

    Cheers, Gene

  83. JavaScript in Unity game engine by ddt · · Score: 1

    It'll seem a little counter-intuitive, but I strongly recommend JavaScript in the Unity game engine for a lotta reasons.

    The problem with most visual programming languages is that they don't transition well to written languages, which you start to pine for after getting sick of dragging the output of one module to the input of another for the 300th time. You want this just for laziness/productivity reasons, and it also happens to be a good way to get her motivated to learn English faster.

    So here's my thinking: JavaScript and Unity are clearly going to stick around a while, so it's a skill that serve her a long time. Kids love playing games and just about all want to make games. It's a great way to motivate them to learn anything.

    You can start with pre-made game templates (tons of stuff out there as well as cheap games w/ source on the asset store, and it's easy to make your own mini-games), and just let her futz around inside the scene editor, changing the numbers for the weapons, health, colours of things, etc. No programming required here. This is all done through easy-to-play-with inspectors which hide the ugly truth that you're changing the initialization numbers of the public members of classes in JavaScript.

    This is going to feel fun for a while and is an easy way to start, because it's partly like cheating, and when you push numbers to ridiculous extents, it can even really change the nature of gameplay sometimes.

    But there's going to come a point where she's sick of being limited to changing surface stuff, and she's going to want to change behaviours, so she's gonna need to look inside of that Badguy.js file attached to the bad guy that she put the pink hat on for "public float healthPoints;" to see what happens to the "Health Points" mentioned in the inspector for the bad guy class so she can come up with a special weapon that cuts the hit points in half, or that heals the baddie up slowly, or that makes the baddie pinker, or whatever she wants to do.

    Lo and behold. She's coding.

    Unity is made in Copenhagen, so I'm sure Danish docs are possible, but I don't know much about where they'd be. I think if you want to code, tho, you'd better get used to English. English won that war.

  84. Re:I learned C when I was a kid. by Anonymous Coward · · Score: 0

    A pointer IS just a memory address, but in C it also has a type associated (e.g. a pointer of type int* holds the address of an integer). This extra type information defines the size of the value found at that memory address, which may be significantly different from the size of the pointer (32 or 64 bits typically). Incrementing a pointer increases the address by the size of the destination, not by 1.

    Because all pointers are simply memory addresses, you can recast them to discard the original type information (e.g. convert float* to char* and you can access the individual bytes that make up the floating point value... convert int* to some_struct* and you can engage weirdness and probably crash.

  85. Re:I learned C when I was a kid. by colinrichardday · · Score: 1

    But for a particular variable, don't the bytes have to be consecutive? If I have a pointer to an eight-byte struct, the actual address is the first of eight consecutive bytes. The machine size doesn't matter. If I have an array of such structs, then the next pointer should be the previous pointer plus eight.

  86. Re:I learned C when I was a kid. by Almost-Retired · · Score: 1

    Yes, that is the generally accepted practice, diddled only by the endian-ness of the processor.
    Personally I have trouble with big endian hardware, but that's just me. There is no reason it can't work just as well as long as the compiler knows about it. But what little programming I do today is both on smaller cpu's, and in assembly. Or for stuff on this linux box, a bash script seems to work well too.

    Cheers, Gene

  87. Re:I learned C when I was a kid. by narcc · · Score: 1

    I don't agree. It seems like your'e just talking past one another. You think he doesn't understand because you're misunderstanding his posts.

    Pointers aren't a difficult concept, though it's easy to slip in to less than precise terms when talking about them, which is what I see happening here.

  88. Re:Why are you asking in English? by sir-gold · · Score: 1

    You don't have to actually KNOW dutch to answer his question for him, and there are far more english-only geeks than dutch-speaking geek, so asking in english is THE best way to get the most high quality answers.

  89. Lingua Franca by Tenebrousedge · · Score: 1

    "Lingua Franca"

    No need to bring up Aramaic when we have a perfectly good term for the concept.

    --
    Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
  90. Re:I learned C when I was a kid. by Almost-Retired · · Score: 1

    That is also a possibility. A language barrier of sorts.

    I am reminded of a phrase I saw years ago, that said England and America were two great countries, separated by a common language. ;-)

    Cheers, Gene

  91. Kid's neural structure is different by melchoir55 · · Score: 1

    Just be sure to be patient with your kids when you are teaching them logic. Humans (all humans) suck at logical naturally, but they REALLY suck when their brains are developing. Remember how learning basic math was challenging? It wasn't challenging simply because you hadn't seen math before. Your brain was not as equipped as it is in adulthood to deal with logic.

    You may find that your kid takes a long time to pick up certain concepts, fails completely to pick up other concepts, while they pick up still others without blinking. Be patient. Try to let them guide their own learning process. They will get everything eventually, but the path to getting it might seem roundabout to you and fraught with strange failures.

  92. Dutch JavaScript and Lessons by my2iu · · Score: 1

    I made a Dutch version of JavaScript, and I made a Dutch programming website for kids (sort of similar to the Khanacademy CS lessons). It's called Programming Basics. It's also available in French, Spanish, Italian, Chinese, Portuguese, Russian, Chinese, German, Arabic, Japanese, and a bunch of others. It's not visual like Scratch (which is available in many different languages, btw), but I tried to make the lessons as interactive as possible with robots and other things.

  93. Re:I learned C when I was a kid. by polymeris · · Score: 2

    When a kid wants to know how to solve a particular problem, they're going to learn the maths necessary.

    Indeed. That was my experience with my younger brother, around 10 at the time. I showed him a simple reversi (aka Othello) game I had coded in python, with just a simple text representation of the board, fully expecting him, accustomed to 3D games with colorful graphics and all that, to dismiss it inmediately. Not the case. He was so amazed that you could do that, and intrigued by the how, he didn't care for the trivial UI or the English keywords (which he barely understands) in the non-graphical code.

    So my advice to the OP would be to focus less on the tools, but more on the content: What would motivate your daughter or other kids to try and understand what makes a computer tick?

  94. love for kturtle by Ragica · · Score: 1

    Perhaps more basic than what you're looking for, but I've been having a lot of fun with my 5 & 6 year old with KTurtle. It's a Logo based drawing program where you have only a few basic commands to make the turtle draw stuff. It has variables, loops, functions and conditionals; not to mention graph coordinates, polygons, etc. It's also localisable... which is really cool.

    To start the kid out I basically would make little programs that make shapes or patterns, and he'd then mess around with them... mostly just changing numbers to see what would happen. Over time his curiosity has caused him to explore more, to the point where he now writes his own code quite often. He doesn't really understand a lot of the concepts he uses... but just fiddles around with things until it does something cool... which is fine with me.

    The KTurtle web page is sadly entirely non-inspiring. But the program is great, which gets too little love. http://edu.kde.org/kturtle/

  95. Re:I learned C when I was a kid. by MikeBabcock · · Score: 1

    When you get around to explaining how randomness like this works:

    int c = 65;
    int *b =
    char *a = (char *)b;
    printf("a is %c\n", (char)*a);

    You start realizing that the way pointers are done in C is really odd, and only seems to be normal to those who've used it so long that they've learned the semantics.

    --
    - Michael T. Babcock (Yes, I blog)
  96. Re:Stop by sonamchauhan · · Score: 1

    > > Stop pushing your line of work down her throat.
    > Agreed. The last thing the STEM field needs is an influx of people thinking our careers require no self-sacrifice and aptitude.

    Self-sacrifice and even an 'aptitude' towards most things, can be developed by parents in the vast majority of children. E.g., the Polgar and Williams sisters.

    What GP really needs is to stop pushing _his_ ideology down the parent's throat.

  97. Re:I learned C when I was a kid. by tolkienfan · · Score: 1

    There is a lot to learn from C.
    On the other hand, C is full of undefined behaviour.
    As such, C regularly kicks newbies in the teeth.

    Better to learn a language that doesn't have undefined behaviour.

  98. Not all Lingua Francas were akin to Aramaic by Shlomi+Fish · · Score: 1

    Hi Tenebrousedge,

    I am familiar with the term “Lingua Franca” but not all Lingua Francas are made equal. To quote my link, Aramaic was spoken and written by many people, stretched into all directions, incorporated many foreign words, and developed dialects, sub-dialects and personal idioms. On the other hand, Hebrew as a Lingua Franca (among Jews in their diasporas) was much less vibrant and lively, and didn’t really evolve or grow as much as Aramaic did in ancient times.

    As a result, I favourably compared English to Aramaic, rather than to any Lingua Franca.

    --
    We have two eyes and ten fingers so we will type five times as much as we read. http://www.shlomifish.org/
  99. Re:I learned C when I was a kid. by Required+Snark · · Score: 1

    That's why that obscure operation system, Eunuchs, I think it was called, never caught on. It was implemented that that See language, and no one ever really wrote good software in it because the pointer syntax was so bad. Just another one of those dead ends along the road to that most perfect of OSes, Microsoft Windoze VIII.

    --
    Why is Snark Required?
  100. Re:I learned C when I was a kid. by ChrisMaple · · Score: 1

    A large part of the problem with pointers in C is the peculiar manner in which they are declared.

    --
    Contribute to civilization: ari.aynrand.org/donate
  101. Re:I learned C when I was a kid. by Alex+Belits · · Score: 1

    You start realizing that the way pointers are done in C is really odd, and only seems to be normal to those who've used it so long that they've learned the semantics.

    It's not odd at all. Once you start converting pointer types, you are dealing with peculiarities of the memory layout. I can only guess that what you meant on the unfinished line was "int *b = &c;, but what you see, would only work on little-endian architectures because first byte of an integer is the least-significant byte. On big-endian ones, you will get not 'A' but zero character (unprintable, ^@ or seen as the end of string).
    This is why such pointer conversions are not recommended, except for handling data with known layout.

    --
    Contrary to the popular belief, there indeed is no God.
  102. Re:I learned C when I was a kid. by Alex+Belits · · Score: 1

    Size of a variable does not sufficiently identify its type.

    --
    Contrary to the popular belief, there indeed is no God.
  103. Re:I learned C when I was a kid. by Anonymous Coward · · Score: 0

    Sorry bud, we're talking about C. A pointer is just a memory address. Oh, sure, it has type information, if you give the memory address type information. You don't have to do that, though, because we're talking about C, and if you're saying you never used a char* to point to an int you're either lying or you don't program in C.

  104. Re:I learned C when I was a kid. by Anonymous Coward · · Score: 0

    Given your obvious age ("let's go back to the TI-9900 and call it progress") I would expect you to be able to do a better job of "explaining" what a pointer is. You seem more interested in telling Colin that he "doesn't understand pointers" than in explaining them, and none of your explanations make any sense even if you know what a pointer is already.

  105. Re:I learned C when I was a kid. by Anonymous Coward · · Score: 0

    The problem is, no one properly learned C. The language is such a clusterfuck that you can know the spec well enough to write a compiler, and still not have properly learned C. You need to also learn years of best practices and mythos. And all this so you can write "close to the hardware" on a machine that prefers to execute 20 ALU ops to hitting a mispredicted branch or missing cache, and which rewrites your code for you anyway because even the compiler has no idea how many registers actually exist.

    C is dead. You might as well teach him COBOL.

  106. Re:I learned C when I was a kid. by Alex+Belits · · Score: 1

    You don't have to do that, though, because we're talking about C,

    Actually yes, you do. Even void pointer has a type, it just isn't defined as anything in particular, and therefore can not be dereferenced.

    and if you're saying you never used a char* to point to an int

    No, I did not, and I program in C for more than 20 years.

    I used char* and void* to point to data that was formatted as integers, to perform I/O and IPC in native format, however in that case type conversion had to be explicitly done on both ends of communication, before any pointers couls be dereferenced.

    you're either lying or you don't program in C.

    Or I am not an kind of C programmer that only exists in the mind of Java, C# and PHP programmers like yourself.

    --
    Contrary to the popular belief, there indeed is no God.
  107. Re:I learned C when I was a kid. by colinrichardday · · Score: 1

    True, but the size should be enough to know the address of the byte just past the variable..

  108. Re:I learned C when I was a kid. by colinrichardday · · Score: 1

    A pointer IS just a memory address, but in C it also has a type associated (e.g. a pointer of type int* holds the address of an integer). This extra type information defines the size of the value found at that memory address, which may be significantly different from the size of the pointer (32 or 64 bits typically). Incrementing a pointer increases the address by the size of the destination, not by 1.

    While I didn't mention types, I did say that one needed to know the end address. That may not have been the best way of saying it.

  109. Dutch books by Anonymous Coward · · Score: 0

    Hi,

    There's one Dutch book about programming in Scratch:
    "Leren programmeren met Scratch" written by Ron Ford (ISBN 97890430-2834-9, www.pearson.nl).

    Also I've translated "Super Scratch Programming Adventure" from NoStarch Press (http://nostarch.com/scratch).
    Unfortunately they still haven't found a Dutch publisher to publish it.

    So if someone is interested in the Dutch translation of this book, please contact NoStarch and tell them you would like the Dutch translation.
    If you're a publisher and would like to publish the Dutch version of the book, also please contact NoStarch.

    @jimshatt; please provide some contact details and I will contact you

    Sjoerd Dirk Meijer

    P.S. Google my name and you probably can find some contact details of me ;-)

  110. Virtual Circuitry! by Anonymous Coward · · Score: 0

    What about a circuit creator, with LEDs and motos and all sorts of stuff, just digital!

  111. Re:Stop by jimshatt · · Score: 1

    Minibloq looks cool. I'll definitely give it a try. Thanks!

  112. Re:Stop by jimshatt · · Score: 1

    True. This is exactly the same way I began, on a ZX-81. Times were different then, and just the fact that we had 'this strange device that connects to your TV' was motivation enough to explore. My dad helped a lot though, because he had hand-written sheets (stacks of them) with code for things like learning the tables of multiplication. So I could just type them in and change stuff, or begin anew with something simple like your program above.
    This is a different age though, and that coolness factor (of a ZX-81) is not easy to come by anymore. Lego Mindstorms would probably do the trick, but I'm currently unable to churn up the cash needed.
    My daughter loves to play with GCompris, so I'd thought a visual programming language would just fit in neatly.

  113. Here it is a Web Based Solution in Dutch by piergiu · · Score: 1

    Blockly is something like scratch, it also has the turtle, and is web based. https://code.google.com/p/blockly/ It is localized in Dutch here http://blockly-demo.appspot.com/static/apps/turtle/de.html Blockly is more an editor, but there are demos like the turtle one that create a pretty complete application! I used blockly for my app (here http://epleweb.appspot.com/ ) that serves as live coding / debugging platform for learners, not so young like your daughter :) All the best!

  114. English by Dabido · · Score: 1

    Make her learn English, it's the most cromulent language around and will embiggun her to greater things. :-)

    --
    Sure enough, the cow costume was hanging up next to the superhero outfit and sailors uniform. (S,Spud)
  115. Just start translating Scratch to YOUR language by Anonymous Coward · · Score: 0

    I tried to find if the information below is in the replies, without success.
    I fund all sort of stuff, but not this.
    The instructions of how to translate Scratch itself, related documentation or website content into a language you are missing
    http://info.scratch.mit.edu/Translation

  116. Kodable programming app by Anonymous Coward · · Score: 0

    If you have an iPad, Kodable is a great app that introduces kids 5+ to programming concepts. It's language agnostic and based on symbols, and it's free to download. Heres the link: https://itunes.apple.com/us/app/kodable/id577673067?ls=1&mt=8

  117. Re:I learned C when I was a kid. by Anonymous Coward · · Score: 0

    For the record, I didn't get the impression that you needed the explanation - I was just having a go at the part he said he couldn't explain better. No idea if I succeeded or not :)