Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×

Teaching Primary School Students Programming? 198

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?"
This discussion has been archived. No new comments can be posted.

Teaching Primary School Students Programming?

Comments Filter:
  • Karel (Score:4, Informative)

    by tansey ( 238786 ) on Saturday August 26, 2006 @08:37PM (#15986721) Journal
    The freshmen level OOP class that I took taught us by using BlueJ and Karel [pace.edu]. I loved it, thought it was fun and easy to use, and really helped teach solid OO concepts. I recommend it highly.
  • What about a snake? (Score:5, Informative)

    by cjhuitt ( 466651 ) on Saturday August 26, 2006 @08:45PM (#15986759)
    Have you considered python [python.org]? 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 [greenteapress.com] (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 [wikipedia.org] program. It appears there are some clones [wikipedia.org] out there also, although I have no idea how good they are. (The first alternative listed says it is popular with educators.)

    Good luck.
  • CeeBot (Score:2, Informative)

    by muridae ( 966931 ) on Saturday August 26, 2006 @08:47PM (#15986770)
    http://www.ceebot.com/ceebot/index-e.php [ceebot.com] I downloaded the demo a while back, and found it amusing and actually pretty usable. If I remember correctly, even the demo supported simple classes and structs and I think the classes even allowed overloading operators. The basic concept is to allow students to write simple programs that make a little robot do stuff. Take a look at it, it may be too pricey for the school but their links section has some other resources that might also be useful, like CodeRally http://www.alphaworks.ibm.com/tech/coderally [ibm.com].
  • Squeak (Score:1, Informative)

    by Anonymous Coward on Saturday August 26, 2006 @08:58PM (#15986822)
    You might want to look into Squeak. It has the full power of an object oriented programming language, but has a morphic graphical programming language on top of it, so kids learning it can jump right in without learning the syntax, but will be exposed to it as they work with the language.
  • Squeak (Score:3, Informative)

    by sydbarrett74 ( 74307 ) <<sydbarrett74> <at> <gmail.com>> on Saturday August 26, 2006 @09:11PM (#15986865)
    Squeak [squeak.org], which I believe is a Scheme derivative, is geared towards children or at least people with minimal coding facility. I would also incorporate this with HTML. Being able to grok HTML is very handy even if all you're gonna do is put a blog up on MySpace....
  • by laktech ( 998064 ) on Saturday August 26, 2006 @09:12PM (#15986870)
    I would recommend that you take a look at http://www.alice.org/ [alice.org] The site pretty much speaks for it self. The development takes place inside a 3D graphic enviorment. I think kids will find this very interesting and they can instantly see their results. There is also a text book that may be purchused, however, I'm not sure about the price.
  • Python and Blender (Score:3, Informative)

    by LetterRip ( 30937 ) on Saturday August 26, 2006 @09:15PM (#15986888)
    Teach them the basics of python then turn them loose in Blender 3D. They can do game scripting, it is a real language, and they can use the logic buttons for things that they don't need or want to program.

    Also there is predone games of a wide variety of types that they can play with, take apart, and rebuild into their own.

    LetterRip
  • Re:the turtle (Score:3, Informative)

    by MBCook ( 132727 ) <foobarsoft@foobarsoft.com> on Saturday August 26, 2006 @09:17PM (#15986895) Homepage

    Logo is another excellent suggestion. It has many basic control structures (like FOR loops) and is also very visual (which is good). With a few simple commands it's easy to make geometric shapes, snowflakes, or just color the screen with a neat pattern. For a plus, you could have them do assignments like draw a square, draw the letter "R", draw your name, draw a house, whatever.

    For ease of results, Logo is probably the best suggestion I've seen yet.

    Of course it's not a general purpose language (like Python, which I suggested in another comment). But it will get the kids making little programs fast that they get to control and they can make do what they want easily.

  • My Curriculum (Score:2, Informative)

    by wynand1004 ( 671213 ) on Saturday August 26, 2006 @09:44PM (#15987042) Homepage
    I teach computers at an international school in Tokyo Japan. My students vary in age from grade 6 to grade 9. As you can imagine, they also vary in English language ability. Here is my curriculum:

    Grade 6: Drape [christianthompson.com] - A drag and drop programming language (No longer free but you can downloa it from my homepage).

    Grade 7: Game Maker [gamemaker.nl] - A more complex drag and drop programming language created by the same person who created Drape.

    Grade 8: Kids Programming Language [kidsprogra...nguage.com] - A BASIC-like programming language with easy to use graphics (sprite) capabilities and built in functions such as collision detection. Note that an updated version with 3D graphics capablities will soon be released (around Sept. 2006).

    Grade 9: JavaScript - I use a program called Max's HTML Beauty++ [htmlbeauty.com] for editing JavaScript and NVU [nvu.com] for web design.

    I have also used Small Basic [sourceforge.net] and my own JavaScript Interactive Fiction [christianthompson.com] engine.

    You can find downloads of most of these programs and some lesson plans at my homepage. [christianthompson.com]

    Feel free to contact me [mailto] if you have any further questions.
  • by tverbeek ( 457094 ) on Saturday August 26, 2006 @09:52PM (#15987089) Homepage
    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 [mit.edu] 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 [toontalk.com].

    Or there's always BrainFuck [muppetlabs.com].
  • Re:Scheme? *ducks* (Score:4, Informative)

    by rolfwind ( 528248 ) on Saturday August 26, 2006 @10:10PM (#15987190)
    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 [wikipedia.org]

    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.
  • Re:Squeak (Score:3, Informative)

    by TVmisGuided ( 151197 ) <alan...jump@@@gmail...com> on Saturday August 26, 2006 @10:14PM (#15987222) Homepage

    Squeak is actually a Smalltalk [smalltalk.org] derivative.

    [/pedant]

  • Re:Scheme? *ducks* (Score:3, Informative)

    by Christopher Cashell ( 2517 ) on Sunday August 27, 2006 @05:11AM (#15988710) Homepage Journal
    There is actually absolutely nothing wrong with your suggestion. In fact, it's being used already, although admittedly it's mostly at a slightly higher level (High School).

    I strongly suggest checking out:

    The Teach Scheme Project [teach-scheme.org]
    How to Design Programs [htdp.org]

    The first is a project designed around teaching programming through scheme, and the second is the text book for the project (full text online, free).

  • Re:Squeak (Score:3, Informative)

    by chris_sawtell ( 10326 ) on Sunday August 27, 2006 @05:26AM (#15988744) Journal
    Squeakland [squeakland.org] is the site to go to. Squeak is a pure Smalltalk with many extra objects and methods. It gives 'children of all ages' hours of fun and games, while teaching one of the most productive programming environments ever created. A programming foundation using Squeak can lead directly to a professional programming career using SmalltalkX [exept.de] or Cincom Smalltalk [cincom.com]

    If the teacher finds the Smalltalk paradigm incomprehensible I'd suggest (s)he try Ruby. [ruby-lang.org] The author, quite truthfully, claims it's a 'surprise-free' language. Together with Smalltalk it's one of the few truly Object Oriented programming languages. It's been reported that both Squeak and Ruby are going to be installed on the OLPC machine. ( The OLPC folks change their minds so frequently that I'm now not certain of that though )

  • Re:Scheme? *ducks* (Score:1, Informative)

    by Anonymous Coward on Sunday August 27, 2006 @08:36AM (#15989109)

    I strongly second that. It is one of the easiest possible languages to learn, and one of the most expressive. It is also a real programming language, not in any way dumbed-down for easier grasping.

    I would especially suggest the DrScheme [plt-scheme.org] implementation. It has a nice, simple GUI with great features for teaching programming. One of the coolest things in that regard is the ability to use images as objects and actually visually see them represented in your code (a simple example [htdp.org]) -- I think that this could be especially great for children who may find understanding the processes demonstrated easier when they see the outcome visually. Also, generating any kind graphics is really simple.

  • Re:Wrong question (Score:2, Informative)

    by martalli ( 818692 ) on Sunday August 27, 2006 @08:45AM (#15989127) Homepage
    You're absolutely right. More important than the language is an appropriate curriculum. I have never had the opportunity to use it, but the LiveWire curriculum was developed for a preteen/teenage audience for use at summer camps in England. According to the webpage, it was designed as an introduction to programming. This may be directed more at children on the older side of the range the questioner asked. However, it has worked well for them over several years, and the whole curriculum appears freely available.

    http://www.livewires.org.uk/python [livewires.org.uk]

  • by jesboat ( 64736 ) on Sunday August 27, 2006 @01:53PM (#15990205) Homepage Journal
    As others have said, this is ridiculous. Many people start programming when they're quite young. I was proficient in BASIC (not that it's something to brag about :-) ) when I was 7, and Java before I was 12.

    Secondly, abstract is not required to understand at least some programming languages. If somebody suggested teaching them the Lambda Calculus, I'd be a bit worried, but something like C/BASIC/etc. is sufficiently procedural to make things easy. Don't confuse procedural languages with algebra just because both involve variables, because the concepts are actually very different in different languages. (I'm unsure whether Lisp/Scheme would be "too abstract" for people. I don't think functional programming would be the problem; if anything, it'd be the syntax (not the parenthesis.))

    Thirdly, you divide people into "12-13" year-olds and "13-14" year olds. Leaving aside that people 13 years old fall into both classes, one year of age difference is very little basis on which to delay teaching people programming.

    Finally, and most importantly, you mention that those ages are where abstract thought develops "on average". Other people in this thread who have supported you have again cited average cases. NotesSensei is not going to be teaching a school-wide programming class. NotesSensei is going to be teaching programming to people who have joined a computer club. There's a big difference there.

    As for precisely what to each them, I wouldn't recommend VBScript or, therefore, KPL. I also would not recommend Java; while I think Java is a nice programming language and has many decent uses, I don't think it'd be a language that kids would like to learn as there first language. There's way too much figurative red tape to wade through to get anything done. The same probably applies to greenfoot. I would probably recommend Python.

Genetics explains why you look like your father, and if you don't, why you should.

Working...