Configuration issues for schools

Tim Holy tim.holy at
Sat Feb 7 13:26:24 UTC 2009


 I'm one of the main developers for TuxMath, part of Tux4Kids. This is a
proposal that I've floated with GCompris, KDE-Edu, and discussed a bit with
several folks on the #edubuntu IRC. This message is a modified version of a
message I posted to some of the other lists recently, so if you've seen it
then you pretty much know the contents of this message.

 Over the last year we've begun to think about some issues in making TuxMath
more useful for schools. As you probably know, TuxMath is an arcade game
that helps kids practice math facts. Teachers are using it, and several have
expressed interest in being able to configure, track, and otherwise
administer classrooms of kids using the program. Adding these capabilities
will involve much that is TuxMath-specific, but in thinking about the
problem I've come to the conclusion that this work should probably start
with a foundation---mostly, a set of standards---that might be used by many
different free software projects.

 To be concrete, here are a few examples of some of the kinds of things we
might want to support in TuxMath:

1. Letting teachers set particular lesson files for kids to tackle that day,
on a class-wide basis but with the ability to further customize lessons for
particular students or groups of students

2. Letting teachers see how kids in their own classroom are doing on the

3. Managing "high scores" files by grade or classroom (we don't want 5th
graders competing against 2nd graders)

 The part of this that I think will be easiest to generalize across projects
is really quite simple: implementing these tasks in a sensible way requires
a method for expressing relationships in a school. In particular, we need to
specify the different grades, the different classrooms, and the kids within
each classroom. This, therefore, is a "system-wide" issue of configuration,
and not one that teachers or sysadmins will appreciate having to set up 5
different times in 5 different ways for 5 different free software packages.
Hence my interest in a set of standards.

 I see two main components to this proposal. One is that there needs to be
software to create and administer these relationships. It's been suggested
to me that SchoolTool might be appropriate for this purpose. However, please
note that at Tux4Kids we support Windows & Mac too, so any solution useful
for us is going to have to be quite general and not Linux/Edubuntu-specific
(SchoolTool seems to be web-based, but is currently only easy to install on

 The second component would probably be a small library that facilitates the
ability of individual applications (TuxMath, Tux Paint, GCompris activities,
etc) to work with this information.

 In terms of implementation: one of the challenges is that, at least in the
US, many schools seem to run without any individual student accounts. In
other words, all students log in to an account called "Student" that doesn't
require a password. So we need to set this up in a way that all the users'
data does not get jumbled together. On the other hand, when schools do set
up "real" user accounts, we want to make use of that.

 I've set up a preliminary architecture for some of this within TuxMath (but
it will need modifying/generalizing if this is of general interest). For
better or for worse, I've established a directory hierarchy on the school



school/Kindergarten/Mrs. Smith/

school/Kindergarten/Mrs. Smith/Kid A/

school/Kindergarten/Mrs. Smith/Kid B/

school/Kindergarten/Mrs. Smith/Kid C/


school/Kindergarten/Mr. Jones/

school/Kindergarten/Mr. Jones/Kid 1/

school/Kindergarten/Mr. Jones/Kid 2/


school/1st grade/


 For schools without real user accounts, these directories serve as a mock
home directory (without any kind of security) for the kids, where their
specific data gets saved. In cases where the students do have real home
directories, the lowest level could of course be symlinks (on Unix systems)
to their real home directories.

 Our tools for administering these directories are quite primitive at the
moment---a command-line program (NOT teacher-friendly!) called tuxmathadmin.

The advantage of this hierarchy is that it establishes a natural mechanism
for expressing relationships among the different members of the school, and
so programs can then find classroom-wide configurations, etc. For example,
it is natural to "read up" or "read down" when you're looking for
configuration files. If two of the 4th-grade teachers decide they want their
kids to have a joint high-scores table, they place a "highscores.txt" file
in the 4th grade directory. But if another 4th-grade teacher wants her kids
just to compete among themselves, she can place a highscores.txt file in her
own directory, and for the kids in her class the application will default to
using that file.

 This is not unrelated to the XDG specification (thanks Jordan for pointing
me to this), although the various paths might have to be set dynamically in
cases where there are no real home directories. (For example, we allow
TuxMath to be configured so that students can select their identity when
they start the program. Perhaps we might want a common login system that
then sets up XDG-paths before starting a specific application?)

 Is this something of potential common interest? Any other parties that I
should include in this discussion?

 Best wishes,

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the edubuntu-devel mailing list