Slashdot Mirror


Teaching Primary School Students Programming?

NotesSensei asks: "Recently I was teasing the teacher who runs the computer club in my sons' primary school: 'You teach the kids only how to use software but not how to make software.' Today I got an email: 'OK, you're in: teach them programming.' Now I wonder what language should I pick? My first lesson will be the board game c-jump, but after that? The contestants are: Kids programming language KPL (ab VB.net derivate; Java using BlueJ; Greenfoot (and the BlueJ); and HTML. Does it sound like I'm on the right track or should I try something completely different? We are looking at primary 3-5 (that's 10-13 in this part of the world). Where can I find inspiration for the curriculum?"

5 of 198 comments (clear)

  1. Scheme? *ducks* by AslanTheMentat · · Score: 4, Interesting

    Some may argue (and probably will) but I have always found Scheme to be an interesting language to lets kids play with because of the "instant gratification" of an interpreted language's "read-eval-print" paradigm. Plus, with "The Little Schemer", which presents things in a very logical, pedogogical way, which is well suited to clever children.


    The Little Schemer
    Just a thought...

    1. Re:Scheme? *ducks* by TheRaven64 · · Score: 2, Interesting
      Another partial vote for Scheme here. All programmers should know either Lisp or Smalltalk; ideally both. Some form of assembly language (or C which is more or less PDP-11 assembly, with some syntactic sugar) is useful for writing optimised code, although much less so now that modern CPUs don't much anything like a PDP-11 internally, but that can come later.

      If you teach anything other than Lisp or Smalltalk first is like trying to teach someone to write prose using Enid Blyton as your reference. Eventually your students will discover adjectives and adverbs, and wonder why you didn't cover them from the start.

      --
      I am TheRaven on Soylent News
  2. Re:too young for abstract thought by AuMatar · · Score: 3, Interesting

    Bullshit. People give kids too little credit. First off, most of them know basic algebra already- they've been solving math questions with x in the and solving for x for years. Secondly, basic programming doesn't require abstract thought- it requires you to understand boolean logic and arithmetic. Most kids can handle that by the time they're done with first grade, if not sooner.

    --
    I still have more fans than freaks. WTF is wrong with you people?
  3. As an Educator I Recommend Piaget by Proudrooster · · Score: 2, Interesting

    As humans brains develop, they go through many developmental phases along the way. Piaget came up with a developmental stage theory. The most important thing to remember is that primary kids are in the "Concrete Operational Stage" and can do well with concrete ideas like numbers, colors, linear procedures, and facts. However, kids at this age (especially boys, who typically develop slower than girls) can not handle abstract concepts. An abstract concept would be something like the equation 'X + Y = 4' or 'if x+5 > y+10 then'. As long as your programming languages don't get too abstract the kids should be able to process it fine. I find that HTML doesn't really process in kids minds until 7th or 8th grade.

    Also, you have to apply the 80/20 rule. We are all different and our brains develop differently. But Piaget's theory applies to 80% of kids. I like to use the Lego Mindstorms Robots. The robotics invention system supports big blocks e.g "Turn Left" or small blocks e.g. "Turn on Motor A, Turn off Motor B, Wait 5 Secs, Turn on Motor B". The Legos give kids the change to try to work with abstract problems, but they can drop back to the concrete stage very easily by using the cause and effect process.

    I believe that someone mentioned Logo. That is a great 'cause and effect' type of programming language in which kids can create a small abstract program and then see concrete results. Allowing the young brains to move back and forth easily between concrete and abstract is the key to teaching programming at this age.

    Hope that helped.

  4. You can have Python with turtle power! by YA_Python_dev · · Score: 2, Interesting
    Logo is another excellent suggestion.
    [snip...]
    Of course it's not a general purpose language (like Python, which I suggested in another comment).

    Both are excellent suggestions, and the good news is that you can have the best of both worlds!

    Simply download Python and xturtle.py (the module is a single .py file, no need for complicated installation and no dependencies beyond the standard Python library).

    The xturtle site has extensive documentation, interesting examples and, of course, screenshots (because everyone love screenshots!).

    --
    There's a hidden treasure in Python 3.x: __prepare__()