<meta name="qrichtext" content="1"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><style type="text/css">
p, li { white-space: pre-wrap; }
</style>
<p style="margin: 0px; text-indent: 0px;">Hi,</p><p style="margin: 0px; text-indent: 0px;"><br></p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">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.</p>
<p style="margin: 0px; text-indent: 0px;"><br></p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">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.</p>
<p style="margin: 0px; text-indent: 0px;"><br></p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">To be concrete, here are a few examples of some of the kinds of things we might want to support in TuxMath:</p>
<p style="margin: 0px; text-indent: 0px;">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</p>


<p style="margin: 0px; text-indent: 0px;">2. Letting teachers see how kids in their own classroom are doing on the lessons</p>

<p style="margin: 0px; text-indent: 0px;">3. Managing "high scores" files by grade or classroom (we don't want 5th graders competing against 2nd graders)</p><p style="margin: 0px; text-indent: 0px;"><br></p>

<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">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.</p>
<p style="margin: 0px; text-indent: 0px;"><br></p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">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 Ubuntu?).</p>
<p style="margin: 0px; text-indent: 0px;"><br></p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">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.</p>
<p style="margin: 0px; text-indent: 0px;"><br></p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">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.</p>
<p style="margin: 0px; text-indent: 0px;"><br></p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">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 server:</p>

<p style="margin: 0px; text-indent: 0px;">school/</p>
<p style="margin: 0px; text-indent: 0px;">school/Kindergarten/</p>
<p style="margin: 0px; text-indent: 0px;">school/Kindergarten/Mrs. Smith/</p>
<p style="margin: 0px; text-indent: 0px;">school/Kindergarten/Mrs. Smith/Kid A/</p>
<p style="margin: 0px; text-indent: 0px;">school/Kindergarten/Mrs. Smith/Kid B/</p>
<p style="margin: 0px; text-indent: 0px;">school/Kindergarten/Mrs. Smith/Kid C/</p>
<p style="margin: 0px; text-indent: 0px;"> ...</p>
<p style="margin: 0px; text-indent: 0px;">school/Kindergarten/Mr. Jones/</p>
<p style="margin: 0px; text-indent: 0px;">school/Kindergarten/Mr. Jones/Kid 1/</p>
<p style="margin: 0px; text-indent: 0px;">school/Kindergarten/Mr. Jones/Kid 2/</p>
<p style="margin: 0px; text-indent: 0px;"> ...</p>
<p style="margin: 0px; text-indent: 0px;">school/1st grade/</p>
<p style="margin: 0px; text-indent: 0px;"> ...</p><p style="margin: 0px; text-indent: 0px;"><br></p>
<p style="margin: 0px; text-indent: 0px;"></p>


<p style="margin: 0px; text-indent: 0px;">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.</p>
<p style="margin: 0px; text-indent: 0px;"><br></p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">Our tools for administering these directories are quite primitive at the moment---a command-line program (NOT teacher-friendly!) called tuxmathadmin.</p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;"><br></p><p style="margin: 0px; text-indent: 0px;">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.</p>
<p style="margin: 0px; text-indent: 0px;"><br></p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">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?)</p>
<p style="margin: 0px; text-indent: 0px;"><br></p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">Is this something of potential common interest? Any other parties that I should include in this discussion?</p><p style="margin: 0px; text-indent: 0px;"><br></p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;">Best wishes,</p>
<p style="margin: 0px; text-indent: 0px;">--Tim</p>
<p style="margin: 0px; text-indent: 0px;"></p>
<p style="margin: 0px; text-indent: 0px;"></p>