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

12 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 Nicolay77 · · Score: 4, Insightful

      No no no, don't *duck*. You should be proud of your suggestion.

      Scheme is a beautiful language and for children and math and physics people, is easier to understand than traditional C syntax-based languages.

      In fact, the main benefit of using a language from the lisp family is that it makes you a better programmer for the rest of your life, no matter what language you use in your job.

      In a related note, I postulate LOGO, because that's what I learned when I was a child and it really helped me to grok programming. Beautiful programming.

      --
      We are Turing O-Machines. The Oracle is out there.
    2. Re:Scheme? *ducks* by rolfwind · · Score: 3, Informative

      Yes, the read-eval-loop of lisps are great - in fact many advanced programmers say it boosts their productivity once they get into it (wish I could find the ML of the Crash Bandicoot team again...)

      But how about Logo Programming language?

      http://en.wikipedia.org/wiki/Logo_programming_lang uage

      Another lisp dialect that is very easy for the kids. I find the 3 choices of the submitter (not the parent) a little too restrictive - and the limited experience I have with VB taught me it's absolutely horrible as a programming language. Variable settings I specified to be done wasn't because of some arcane rule or something else. Beginning programming languages should be as straightforward as possible.

  2. Karel by tansey · · Score: 3, Informative

    The freshmen level OOP class that I took taught us by using BlueJ and Karel. I loved it, thought it was fun and easy to use, and really helped teach solid OO concepts. I recommend it highly.

  3. Kid's Programming Languages by justanyone · · Score: 5, Funny


    Unless they're vaccinated, don't give them MUMPS; if you do find a nice Doctor (Like Dr. Pascal), 'cuz Pascal was fun for me in College.

    If they like noises, Squeak is good, but the cogently verbiaged might prefer SmallTalk in a group. For those speech impaired, knowing there's other people who Lisp would be good.

    The mean ones will abuse Snobol in Winter

    The A.D.D. kids will probably like the feeling of Euphoria they get from their first

    Of course, you could teach them a very nice language with a horrible name, Brainfuck.

    Or, you could just look Here for a comparison of popular programming languages.

  4. What about a snake? by cjhuitt · · Score: 4, Informative

    Have you considered python? It has an interactive shell, which will let the basic concepts of programming come through. Also, you could take the first parts of How to Think Like a Computer Scientist (freely available and modifiable) and adapt them to the age level. The first few lessons should be fine, although they might need expanded somewhat.

    Alternately, perhaps something more graphic-oriented would be desirable. If it were still around and supported, I would suggest Apple's Hypercard program. It appears there are some clones out there also, although I have no idea how good they are. (The first alternative listed says it is popular with educators.)

    Good luck.

  5. 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?
  6. BASIC, Logo, ToonTalk by tverbeek · · Score: 3, Informative

    Like most geeks of a certain age, I cut my coding teeth on BASIC, which in its traditional implementations (TRS-80, Apple ][, C64) was nicely interactive, but probably too boringly textual for Kids These Days.® Don't know how the "modern" versions of it compare.

    Logo became available to me after I was "too advanced" for it, but certainly deserves a look as the "other" classical language for introductory programming.

    I've heard some good things about Toon Talk.

    Or there's always BrainFuck.

    --
    http://alternatives.rzero.com/
  7. Teach them Haskell. by tietokone-olmi · · Score: 3, Funny

    That'll weed out those who have no commitment. It'll also make the handful of math-oriented people in the class more aware of the connections between mathematics and computer science. It's not like people these days are encouraged to get rid of the bad habits they picked up with J. Random Wanker Language or anything. Also, interactive programming with hugs. Who doesn't like hugs?

    Hell, maybe it'll teach kids better habits (like focusing on the algorithm and on getting a working program first) than some heavy mittens language like Python or Javur. The error messages could probably be a little much for 10-year olds though. Maybe Helium, a Haskell variant geared for education and without some of the more esoteric features, would suit that better?

  8. Re:As an Educator I Recommend Piaget by Trizor · · Score: 4, Insightful

    As one of the 20 (My fifth grade teacher actually read Piaget and showed it to me and labeled me as such) I look at my classmates and see that now (12th grade) they still struggle with symbolic concepts because they were codeled with the concrete for much too long. The example is physics, where the solutions are often entirely symbolic, many students have trouble with manipulating and thinking abstractly in symbols. However in earlier classes they are encouraged to plug in concrete values as soon as they learn them, and I was actually repremanded for using symbols (My Father is a Professor of Physics and when helping me with math homework at a young age insisted on my use of symbols instead of concrete numbers.) in Chemistry I when we were working with heating and cooling and temperature. While the concrete numberse were initially easily grasped by the class, problems quickly arose when they forgot the meaning of each number because it changed problem to problem and began to forget the theory behind what they were doing. The result was that every single class member could work any type of problem they had seen previously on memory of the motions to go through, but had no clue as to what they were doing and could not solve any new type of problem based on the theory they knew. In short: While they may still be developing the ability to understand abstractions, the sooner they begin learning the better they will be for life. You'll be doing them a favor by introducing them to the concept of a variable and a general solution.

  9. Starlogo by njord · · Score: 3, Insightful
    A few years ago, I as an NSF GK-12 teaching fellow at the University of Maine. Basically, University students were assigned to K-12 (non-US people, read: before college) classrooms and asked to help with science curriculum. One of the classes I was assigned to was the computer course for eigth-graders. Probably nobody remembers it, but a few years ago, the State of Maine gave all 7th and 8th graders iBooks to use in their classrooms, so the computer teacher and I conspired to teach some basic programming to the kids. In most public schools in Maine, programming is taught, even in high school, so this was almost certainly the first time any of the students saw programming, and probably the last they would be able to learn in school until college. I eventually decided to use Starlogo, given that it was designed to teach programming, it was available, and I have fond memories of learning basic programming on Logo on the Apple IIe. It worked as well as I could have hoped, and there were a few kids that were interested in doing more (I pointed them on to Python). Here are some things I learned that I'd like to pass on to you:
    • Kids don't always remember details. This can be difficult, because most computer langauges are not forgiving in their syntax. Kids are good at picking up on details, but don't expect them to memorize things like StupidConfusingClassname isn't the same as stupid_confusing_classname.
    • Kids like feedback. Thus, the read-eval-print-loop style is important toward keeping their interest.
    • Related to that, the intrinsic graphical nature of logo is very engaging.
    • This really just a general teaching comment (which I was totally new to when this project was given to me) - especially with totally new topics, kids will have all kinds of levels of ability and interest in the topic. It's important to have something that all of them can do, but also to have something to challenge the kids having an easier time of it. I would ususally introduce a simple topic and have everyone try it out, and then I would have a "master" level problem for the wiz kids to try.
    • Robustness and responsiveness is good; kids aren't very patient, as a rule, and if the programming environment crashes, or performs slowly (and Starlogo, being a Java app, did run poorly on those iBooks), the kids will lose interest in it while they wait for the app.
    I should also mention that StarLogo wasn't really being maintained when I was doing this (or it was being minimally maintained), but now it looks like someone has revamped the project with StarLogo, the next generation. Finally, whatever you end up choosing, don't teach them HTML and then tell them that it's programming. Few things irk me more than people talking about "programming in html". If you want to teach them HTML, fine, but don't let them think they're programming. By they way, youung children might have trouble with html for the first reason I gave above. The syntax is very clumsy and exacting, and worst of all, you don't get error messages from the browser when you screw it up! Anyway, have fun! njord
  10. Re:too young for abstract thought by jawtheshark · · Score: 3, Insightful

    You, sir, were simply an exception. I was in your league too. Alas, I did the mistake of becoming a teacher 1.5 years ago (I quit, now I am unemployed). Yes, I did teach some programming. You see, I thought too that kids could do this and I was confronted with 16+ year olds that had no concept of a variable. Something I took granted at that age. So, perhaps I was a lousy teacher (I will not argue over that, I know I was a bad teacher), but they did not know what a variable was even tought they had algebra the last few years. Go figure.

    Oh, I also tried to teach HTML to a bunch of 13 year olds. That was a bad idea... A really bad one.

    No, the AC is right. Most kids have problems with abstract notions. That you'll find slashdotters that knew what a variable was at age 10 is no surprise. I'd bet that over 50% of us knew what a variable was at that age. I too did the mistake of projecting my own competencies on the chidren of today. Of course, the article says it's a computer club. The situation might be different with kids attending a computer club and thus already showing interest.

    I that case, why not give Alice a try.

    --
    Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)