Included in Debian Edu / Skolelinux is a large collection of end user and school specific software. It is one of the packages not installed by default but provided in the Debian archive for schools to install if they want to, is a system to automatically plan the school time table using information about available teachers, classes and rooms, combined with the list of required courses and how many hours each topic should receive. The software is named FET, and it provide a graphical user interface to input the required information, save the result in a fairly simple XML format, and generate time tables for both teachers and students. It is available both for Linux, MacOSX and Windows.
This is the feature list, liftet from the project web site:
- FET is free software, licensed under the GNU GPL v2 or later. You can freely use, copy, modify and redistribute it
- Localized to en_US (US English, default), ar (Arabic), ca (Catalan), da (Danish), de (German), el (Greek), es (Spanish), fa (Persian), fr (French), gl (Galician), he (Hebrew), hu (Hungarian), id (Indonesian), it (Italian), lt (Lithuanian), mk (Macedonian), ms (Malay), nl (Dutch), pl (Polish), pt_BR (Brazilian Portuguese), ro (Romanian), ru (Russian), si (Sinhala), sk (Slovak), sr (Serbian), tr (Turkish), uk (Ukrainian), uz (Uzbek) and vi (Vietnamese) (incompletely for some languages)
- Fully automatic generation algorithm, allowing also semi-automatic or manual allocation
- Platform independent implementation, allowing running on GNU/Linux, Windows, Mac and any system that Qt supports
- Flexible modular XML format for the input file, allowing editing with an XML editor or by hand (besides FET interface)
- Import/export from CSV format
- The resulted timetables are exported into HTML, XML and CSV formats
- Flexible students structure, organized into sets: years, groups and subgroups. FET allows overlapping years and groups and non-overlapping subgroups. You can even define individual students (as separate sets)
- Each constraint has a weight percentage, from 0.0% to 100.0% (but some special constraints are allowed to have only 100% weight percentage)
- Limits for the algorithm (all these limits can be increased on
demand, as a custom version, because this would require a bit more
memory):
- Maximum total number of hours (periods) per day: 60
- Maximum number of working days per week: 35
- Maximum total number of teachers: 6000
- Maximum total number of sets of students: 30000
- Maximum total number of subjects: 6000
- Virtually unlimited number of activity tags
- Maximum number of activities: 30000
- Maximum number of rooms: 6000
- Maximum number of buildings: 6000
- Possibility of adding multiple teachers and students sets for each activity. (it is possible also to have no teachers or no students sets for an activity)
- Virtually unlimited number of time constraints
- Virtually unlimited number of space constraints
- A large and flexible palette of time constraints:
- Break periods
- For teacher(s):
- Not available periods
- Max/min days per week
- Max gaps per day/week
- Max hours daily/continuously
- Min hours daily
- Max hours daily/continuously with an activity tag
- Respect working in an hourly interval a max number of days per week
- For students (sets):
- Not available periods
- Begins early (specify max allowed beginnings at second hour)
- Max gaps per day/week
- Max hours daily/continuously
- Min hours daily
- Max hours daily/continuously with an activity tag
- Respect working in an hourly interval a max number of days per week
- For an activity or a set of activities/subactivities:
- A single preferred starting time
- A set of preferred starting times
- A set of preferred time slots
- Min/max days between them
- End(s) students day
- Same starting time/day/hour
- Occupy max time slots from selection (a complex and flexible constraint, useful in many situations)
- Consecutive, ordered, grouped (for 2 or 3 (sub)activities)
- Not overlapping
- Max simultaneous in selected time slots
- Min gaps between a set of (sub)activities
- A large and flexible palette of space constraints:
- Room not available periods
- For teacher(s):
- Home room(s)
- Max building changes per day/week
- Min gaps between building changes
- For students (sets):
- Home room(s)
- Max building changes per day/week
- Min gaps between building changes
- Preferred room(s):
- For a subject
- For an activity tag
- For a subject and an activity tag
- Individually for a (sub)activity
- For a set of activities:
- Occupy a maximum number of different rooms
I have not used it myself, as I am not involved in time table planning at a school, but it seem to work fine when I test it. If you need to set up your schools time table, and is tired of doing it manually, check it out. A quick summary on how to use it can be found in a blog post from MarvelSoft. If you find FET useful, please provide a recipe for the Debian Edu project in the Debian Edu HowTo section.