This is a read-only archive. Find the latest Linux articles, documentation, and answers at the new Linux.com!

Linux.com

Feature: Programming

Open source programming languages for kids

By Ryan McGrath on December 19, 2008 (2:00:00 PM)

Share    Print    Comments   

The past couple of years have seen an explosion of open source programming languages and utilities that are geared toward children. Many of these efforts are based around the idea that, since the days of BASIC, programming environments have become far too complex for untrained minds to wrap themselves around. Some toolkits aim to create entirely new ways of envisioning and creating projects that appeal to younger minds, such as games and animations, while others aim to recreate the "basic"-ness of BASIC in a modern language and environment.

Scratch

Developed by the Lifelong Kindergarten group at MIT, Scratch is a graphical programming environment implemented in Squeak that works in a very Lego-like fashion. The basic premise is that you build programs by snapping together colorful blocks of code. Scratch's custom interface allows a programmer to bring in graphics and sounds and create basic animations. All the basic programming constructs, such as loops and if statements, are supported, and grouped into different block categories, such as Motion, Sensing, and Sound.

Scratch has implementations available under Microsoft Windows and Mac OS X, but as of yet there's no (official) native Linux version to run. It is possible to run Scratch through Wine, though in my tests most audio-related Scratch programs ended up failing. There is a Linux-runnable version of Scratch, though it's not actively developed by the folks at MIT. The one problem with using this version is that presentation mode, where your Scratch program can take over the whole screen, doesn't work. This isn't really a show-stopper, as there are a few different ways to view a Scratch program, but it's easy to see how it could be a desired feature.

One useful prospect that Scratch offers is the ability to upload your programs to the Scratch Web site, where you can create an account, get support, and browse programs that other Scratch users have uploaded. All uploaded programs are open source, in the sense that you can download and modify the source of any Scratch program that's been uploaded. Scratch programs are also viewable from within a Web browser, for the most part, through use of a Java applet called the Scratch Player. Scratch itself is released under its own Scratch License, and all uploaded programs exist under a Creative Commons Share Alike license.

One issue I came across with Scratch was that the source code for a program could become quite large when the program involved many graphics or, more specifically, music. One program, a simple music player, reached a strikingly large 93MB in size. Typically Scratch would choke on loading any program greater than 60MB in size, usually erroring out. The large size of a file may have something to do with how old the source code is; repeated instances of saving and re-opening the same file seemed to grow the size exponentially.

Alice

Scratch deals well with 2-D graphics, text, and other somewhat "flat" programming concepts. By contrast, Alice teaches programming fundamentals in the form of 3-D movies and games. Alice is developed in Java, and is somewhat like Scratch in that you build things in a drag and drop interface.

Alice, developed by a group of researchers at Carnegie Mellon University, has releases for Linux, Mac OS X, and Windows, and is released under an aptly titled Alice License. The environment is open source in the sense that you can download and examine the source code, but the creators prefer to work exclusively in-team, and don't take outside contributions. Alice has been around since 1999, making it one of the oldest and most developed environments for teaching children how to program. It is because of this that it's used in schools all over the world.

Shoes

Originally created by a developer who goes by "why the lucky stiff," now furthered by a large development community, and based on the already user-friendly Ruby programming language, Shoes is an open source toolkit that's a bit more in line with traditional programming methods. All that's required to make a program in Shoes, besides its runtime environment, is a basic text editor. On the project's Web site you can find a free PDF guidebook that contains tutorials and examples for Shoes. You can also order the guidebook in paperback form for $5.57. Shoes 2 comes with an extensive built-in manual that users can access via key commands.

Shoes has similar syntax to Ruby, and has easy methods for creating graphics and buttons, as well as displaying colors and text. It is supported across multiple platforms, including Linux, Mac OS X, and Windows. The toolkit works well across platforms, in that windows, buttons, and dialogs look native to their environment, and do so regardless of which platform the application was initially created on. A benefit of Shoes being in Ruby is that it's given access to the many different RubyGems packages that exist. Shoes 2 even includes support for automatically installing a Gem on a user's system if it's not already present.

Shoes has a fan-supported Web site that showcases a gallery of applications created with Shoes. As with Scratch, all the applications that are uploaded can be downloaded, modified, and remixed. Shoes itself is released under an MIT License, and is open to outside patching and development.

A multitude of other programming languages and environments exist to teach children, such as Greenfoot, Phogram, and Microsoft's Small Basic, though many of them exist as proprietary implementations. Scratch, Alice, and Shoes are all open source, include support channels such as forums or chatrooms, and have large, thriving communities. These three environments are possibly the most open, mature, and easily accessible environments that are geared toward teaching programming concepts to young minds.

Share    Print    Comments   

Comments

on Open source programming languages for kids

Note: Comments are owned by the poster. We are not responsible for their content.

Open source programming languages for kids

Posted by: Anonymous [ip: 207.206.133.254] on December 19, 2008 03:33 PM
What about logo for "Turtle Graphics!" The XO even has it included http://wiki.laptop.org/go/Turtle_Art

#

Open source programming languages for kids

Posted by: Anonymous [ip: 62.49.188.193] on December 19, 2008 03:37 PM
I have used rur-ple [http://rur-ple.sourceforge.net/en/rur.htm] to teach my 9 yr old nephew the basics of programming. He picked it up quite easily thanks to the easy to follow instructions and tutorial.

#

Open source programming languages for kids

Posted by: Anonymous [ip: 201.127.120.159] on December 19, 2008 03:53 PM
The Linux version of Scratch is actively being developed by some members of the Scratch Team at MIT. The page you linked to is the place where we and others are posting the latest version of it. The full screen issue and others are being worked on. We are looking for volunteers who would be willing to help us with the implementation of MIDI support so the drum and note blocks can work. If interested please contact us a thttp://info.scratch.mit.edu/Linux_installer

#

Re: Open source programming languages for kids

Posted by: Anonymous [ip: 209.190.211.3] on December 19, 2008 04:50 PM
Huh, that's actually very good to know. I wasn't able to find any indication of it, though - seemed like most of that page was just cloned from http://www.tcpdpodcast/scratch.html.

Sill, great to hear it's getting worked on!

- Ryan

#

Open source programming languages for kids

Posted by: Anonymous [ip: 72.237.174.94] on December 19, 2008 04:26 PM
Worth mentioning:
- basic256
- kturtle
- little wizard

Would love to see some stuff as polished as Scratch and Alice in distro repositories, ready to install.

#

Open source programming languages for kids

Posted by: DylanMcCall on December 19, 2008 05:08 PM
Having this kind of software packaged / officially supported in a distro like Ubuntu and Fedora would really be great. At the moment, aspiring programmers often learn through sources that favour proprietary software and closed development methods. If a free software operating system (a Linux distro) could encourage those people itself with an awesome environment like Scratch, things could get pretty amazing for our little ecosystem :)
[Modified by: DylanMcCall on December 19, 2008 05:52 PM]

#

Package would be great. Challenge: Licensing (Scratch/Squeak)

Posted by: Anonymous [ip: 129.246.254.236] on December 22, 2008 09:08 PM
I agree, packaging these for Fedora, Ubuntu, etc. would be great.

One challenge is licensing. Scratch is OSS, but it's written in Squeak.
Squeak was originally not released under OSS; the original code
has since been relicensed, and they've gotten hundreds of relicensing
statements from other co-developers, but not all (it appears):
http://www.squeak.org/SqueakLicense/

Which just goes to show that licensing of your program, and
of the systems you depend on, matters.

#

Open source programming languages for kids

Posted by: Anonymous [ip: 71.180.135.177] on December 19, 2008 06:03 PM
Hello, I would like to ask some advice and to seek your opinion. Do you think that these programming environments would also be appropriate for an older retired mind? I tried learning programming way back when the only languages being taught were Fortran IV and Cobol, I do not even think that C was even out yet. I have tried to learn a few times over the years but have had a mental block and have always felt that because I was trying to learn on my own that some how i was missing some fundamental information or concept. Perhaps I have always made it more difficult than need be, how ever regardless of past difficulties I would like to give it another try but have been at a loss as where to begin. I know that a lot has changed over the years and that it may be a lot less difficult to learn now than back in 1971. I think that back then they were not even sure how to even teach the subject and everything I can remember from back then was that everything was into the heavy computer science theory stuff. I would like to learn how I suppose mainly to prove to myself that I can, I had to go on a medical retirement a few years ago and am not looking for a new job or anything, I have thought about going back to school but am very limited financially. Could anyone here possibly give me some suggestions as to the best way to go about this for someone like myself? Thanks RJ

#

Re: Open source programming languages for kids

Posted by: Anonymous [ip: 75.107.247.72] on December 19, 2008 09:31 PM
I believe this tutorial http://hetland.org/writing/instant-hacking.html offers a pretty good solution for you. It's a tutorial to Python, and in only twelve pages it teaches
looping, conditional execution, and functions, while assuming no prior programming experience. These programming environments are probably overkill for anyone older than about fifteen, but this tutorial should get you up and running quickly with a powerful programming language.

#

Re: Open source programming languages for kids

Posted by: Anonymous [ip: 82.192.250.149] on December 19, 2008 09:38 PM
Some people take to programming, some don't. It isn't a question of intelligence.

My advice to you (or anybody) would be to put your effort into something for which you have natural talent. This will be much more satisfying than struggling with something that you don't have talent for.

#

Re: Open source programming languages for kids

Posted by: Anonymous [ip: 203.206.115.12] on December 20, 2008 09:51 AM
Another one for the older kids (and older retired mind perhaps):

http://puppylinux.com/genie

Regards
BK

#

Open source programming languages for kids

Posted by: Anonymous [ip: 170.191.20.240] on December 19, 2008 07:11 PM
What's wrong with BASIC?

I first learned to program when I was 8 years old, we used BASIC. Maybe I'm just old fashioned, but I think it's important to learn procedural programming before object oriented programming.

#

Re: Open source programming languages for kids

Posted by: Anonymous [ip: 68.21.75.54] on December 31, 2008 12:15 AM
I agree completely.

#

Open source programming languages for kids

Posted by: PerlCoder on December 19, 2008 07:35 PM
Teach 'em Perl. Perl is fairly easy to learn, and yet can be employed in many real life applications. And Perl is great for procedural programming!

#

Re: Open source programming languages for kids

Posted by: Anonymous [ip: 64.122.168.30] on December 30, 2008 01:16 AM
Perl's the way the way go for me.
That's what I taught my wife and son.
All this cuddly coding makes me puke!

#

Open source programming languages for kids

Posted by: Anonymous [ip: 87.113.100.13] on December 19, 2008 08:35 PM
I think BASIC does the job well. Easy to understand, text based & it can do reasonable things. That's what I learned when I was 9. Unlike these languages, BASIC is far spread & nearly all Windows PCs have some sort of BASIC runtime. Why mess around with a GUI environment that teaches a language nobody uses? Just give them a BASIC book & give them a few pointers & they're ready to go. Once they have learned BASIC, they can learn languages like C++ or Assembler. Teaching them in a GUI environment won't provide any advantages over BASIC, but it will provide many disadvantages.

#

Open source programming languages for kids

Posted by: Anonymous [ip: 213.106.126.196] on December 19, 2008 11:32 PM
Obviously it has to be C++ so that by the time they are in to work they have the decade of experience with it to be considered competent!

A friend who actually teaches kids fins Scratch excellent, the best thing he has tried. He found it as an alternative to Flash. As a consequence he finds they actually get to understand concepts in the time allowed with the brightest being able to be pointed to a real (used by industry) language.

#

Open source programming languages for kids

Posted by: Anonymous [ip: 208.73.251.23] on December 20, 2008 05:11 AM
there is also greenfoot.

http://www.greenfoot.org/

#

Open source programming languages for kids

Posted by: Anonymous [ip: 66.223.168.124] on December 20, 2008 10:27 AM
How young?

When I was 8, my dad taught me the basics of Java, but I was too young to really be able to do much with it (I don't really care for Java anyway)

At 13, teaching myself, I fiddled with Python, Shell, and Pascal.
At 14, C and Perl.

I would recommend something like Python. Then, when you get into larger programs, try writing a C program.

I would also do Shell, and Perl (Pascal is pretty much dead -- although I like it a lot)

I use Perl and Python the most, and C for something really serious and heavy.

And Shell constantly.

#

Open source programming languages for kids

Posted by: Anonymous [ip: 71.180.135.177] on December 21, 2008 04:13 AM
Hi every one, thanks for all your suggestions. Back when I took programming in school it was 1971 and I really do not think they had a handle on how to even teach the subject, what I had to take was not just a programming class. It was mixed with probability and statistics and the assignments were to write a program that would do your probability and statistics home work for each week. If you did not understand the P&S you were just SOL. Also back then there was no such thing as the personal computer, everything had to be typed on IBM key punch cards on a dumb terminal kind of like the old tel-a-type machines. Once you had your program typed out you could then schedule a computer run at the computer lab and if you were really good (because the classes were so large) you could get in two attempted runs each week. Then if you had a syntax error the computer would immediately halt and wold not even finish reading the rest of the cards to see if there were any other syntax errors. There were a few times when I would get a print out that printed out each line of my program (one line per card) and then say halt, syntax error line 5. I did not fully understand my probability and statics so had no clue how to even approach writing a computer program to solve the home work questions. As a result I never even had a successful run to even know if I understood how to program. I would like to give it another try because I have no idea if I even have an aptitude for it or not.
I do appreciate your comments and advice, perhaps I will give BASIC a shot along with some bash shell scripting at first.
Thanks again, Robert

#

Open source programming languages for kids

Posted by: Anonymous [ip: 78.32.144.39] on December 21, 2008 10:13 PM
Some say this language and some say that language.

I say there is no best answer, never mind a right answer. It all depends on the expertise available to support the child. Many programmers get by on self constructed mental models which comply with reality to varying degrees - and it is largely dependent upon the teaching they received as to how good those mental models are - often the mental models offered by the teachers are not up to it.

So, it the child has access to expertise from someone who has good mental models in a particular environment and the gift to communicate them in straight forward terms, then that is the environment to go with

#

Open source programming languages for kids

Posted by: Anonymous [ip: 64.81.141.153] on December 21, 2008 11:36 PM
Scheme: a ten-year old can understand Scheme. Since Scheme programs are also Scheme data, it helps prevent students from thinking of programming languages as black-boxes. Scheme data types are simple and powerful. There are numerous GUI environments for Scheme, for example PLT Scheme.

#

Open source programming languages for kids - Etoys, also on 500K OLPC

Posted by: Anonymous [ip: 69.158.55.153] on December 22, 2008 05:53 AM
Etoys, developed by the Squeak community and based on Squeak, http://squeakland.org/download/ has been developed specifically with children education in mind. It allows to build scripts that run simulations, animations, study massively parallel systems (Kedama). Version 4 is completely free software (some contributions with unknow origin removed). If required, the underlying Smalltalk engine can be also used.

It is also on 500K OLPC-XO laptops. http://wiki.laptop.org/go/Etoys amd http://www.flickr.com/photos/postneo/337801809/

#

Open source programming languages for kids

Posted by: Anonymous [ip: 72.237.174.94] on December 22, 2008 02:55 PM
The language suggestions given by commenters are fine and all, but without a kid-friendly tutorial/book/educational game, it's all moot. BASIC? Go search amazon for a book on basic aimed at kids. You'll find a lot of 25-year-old books aimed at basic on the Apple II. Nobody writes programming-for-kids books now like they did when we were young.

#

Open source programming languages for kids

Posted by: Anonymous [ip: 70.91.34.61] on December 22, 2008 07:01 PM
BASIC was pretty cool, and relatively easy to understand. IF -- THEN -- GOTO made a lot of sense. I remember learning how to do simple "choose your own adventure" games _with animated graphics!_ on an Apple when I was in grade school in the '80s.

I found DOS batch files to be a nice substitute for BASIC when I starting using DOS (version 3.3, I think). Making menus and running simple "programs" for system maintenance were both practical tasks and fun.

For kids to want to learn programming, creating a game using something like BASIC would be great. I'll have to check out the applications reviewed here in greater detail.

Bash scripting is

#

Open source programming languages for kids

Posted by: Anonymous [ip: 24.255.132.48] on December 30, 2008 10:16 PM
Cant believe Etoys did not make the list ... it was the pre-cursor to all of the above examples and still wildly popular with students

#

Open source programming languages for kids

Posted by: Anonymous [ip: 192.35.35.35] on December 30, 2008 10:22 PM
Ill be teaching my daughter pyhton. With all of the great info and packages out there she should be able to learn it easily enough, and actually create some neat projects with it.

#

Open source programming languages for kids

Posted by: Anonymous [ip: 96.236.191.38] on December 31, 2008 01:01 AM
Python is an open source, cross-platform language that is the oldest on the list--it was started in 1991. It shies away from complex graphics and sound, instead going for a "text-based" experience. This makes it a lot more versatile and useful--in fact, people who learn Python as children can continue to use it for real project for the rest of their life. Python has been praised for its clear, intuitive commands, and its solid teaching of programming fundamentals, such as while statements and lists.
----
IMHO, any kid interested enough in programming can do it with a real language, and not waste time with these pre-fab _kits_. Give a man a fish and he eats for a day, teach a man to fish and he eats for a life time. The above are definitely a notch above "giving fish"--I'd liken it more to "giving them a baited rod with the hook dangling in a fish hotspot, so all they need to do is wait five minutes for a bite, and then pull the thing out"

#

Open source programming languages for kids

Posted by: Anonymous [ip: 96.18.34.22] on December 31, 2008 06:36 AM
<a href="http://www.freebasic.net">FreeBASIC</a> is a solid choice for the middle ground between
beginning and advanced concepts. From qbasic style syntax with a textbox to the *fun* stuff like
pointers, api access, and constructors/deconstructors. It's open source and multiplatform. (win32, dos, linux, and at one point xbox!) It builds console exes, gui exes, and dlls. Did I mention it's free? ^_^

#

Open source programming languages for kids

Posted by: Anonymous [ip: 87.0.198.220] on December 31, 2008 10:45 AM
You can find most of the languages discussed and some more too, ( in the Sugar Learning Environment OSS project (It's the topmost software layer that run's in OLPC XO).
More info and download for many linuxes distros: http://sugarlabs.org


ciao carlo

#

Open source programming languages for kids

Posted by: Anonymous [ip: 66.236.74.194] on January 05, 2009 05:17 PM
Shoes doesn't have a syntax similar to ruby - its developed in, runs in, and is controlled by, ruby.

#

Open source programming languages for kids

Posted by: Anonymous [ip: 125.60.228.242] on January 08, 2009 10:54 AM
If you were so proficient in programming languages that you could improve open source code (such as Linux), would you do it for no monetary compensation? Why or why not?

#

What about processing.org?

Posted by: Anonymous [ip: 84.191.80.243] on January 10, 2009 10:49 AM
Seems to be an easy enough to learn language/environment for all kinds of people, so...

#

Open source programming languages for kids

Posted by: Anonymous [ip: 198.45.19.38] on January 12, 2009 09:24 PM
I like J - see jsoftware.com - as it is consistent, gives immediate feedback (it's interpreted) and has an active, helpful user community. However, it's not for everyone.

#

This story has been archived. Comments can no longer be posted.



 
Tableless layout Validate XHTML 1.0 Strict Validate CSS Powered by Xaraya