lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Hi to all.

This message has two parts. First an announcement: Butialo
(http://activities.sugarlabs.org/sugar/addon/4457), a IDE for
programming in Lua for the Sugar OS. Some examples of scripts and
projects using Butialo can be found at
http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/index.php/Butialo.

A bit of context. In my country (Uruguay) there is a OLPC like project
running, so every school kid and now most high-school kids (at least in
the public system) has a XO laptop of his own.

On top of that, our research group has been developing and providing a
teaching robotic platform, which provides a XO laptop with wheels and
sensors (for more http://www.fing.edu.uy/inco/proyectos/butia/, or the
wiki at http://www.fing.edu.uy/inco/proyectos/butia/mediawiki/ ). Tough
Lua has been used in the innards of the robotic platform for some of
main components from the beginning, for some reason there was never a
proper support for kids programming in Lua directly. Until now the main
language has been TurtleArt, a graphic block oriented language.

So, tough it can double as a general purpose IDE for Lua (err... editor
with a "Run" button), Butialo's main intent is to write programs to
control the Butiá robot: it does discovery of the robot's sensors and
actuators (the robot is a constructive kit), et al. 

The second part is an open question. The target public is kids in the
10-15 age group, that outgrew block-based languages. Has anybody had
experience using Lua as a first imperative language, specially with
kids? 

I've smoothed some of the things that (i think) can trip a casual user.
For example, blocked out the creation and modification of globals, so
user scripts have to use local variables. Another thing that i was told
(and seems reasonable) is that the table concept is a bit too much, so I
added a "array" data structure, which is basically a table that forces
array consistency (only numeric indexes with no holes, etc). Also, once
a value is put in the array, it will accept only values of that type. It
is implementad as a proxy table obtained trough a global get_array()
function.  Standard tables are of course available, an array is just
something easier to explain. Has anyone more ideas on what can be done
to simplify the life of a kid who just want to do some fun problem
solving? :)

And last but not least, has anyone pointers to Lua teaching material for
kids, or that could serve as a good base? 

Greetings and thanks in advance,

Jorge