The atomic elements of Neeps

The following is a list of each of the atoms and the properties they support. Each section corresponds to an "Atom Shower" form.


Events are the most complex atoms.

Typically there will be more events in your data file than anything else.

Events have the following attributes:

Room and Time.
Events take place in a particular room at a particular session. The exact room and time may be left for Tatties to determine.
To set the session simply drag the reddish square from the unplaced box onto the desired session.
If you select a room or time "by hand" Tatties may change it unless you specify "Fixed Room" or "Fixed Time" explicitly.
You may fix the time as unplaced - in which case no time will be picked by the algorithm.
You may fix the room as blank in which case no room will be picked.
An event occurs on a specified set of weeks. For example if one event occurs on even weeks and another on odd weeks they can share a room.
Events may be attended by number of staff and students.
Events may require certain features.
Usually these will be features of a room such as "Chemistry.Lab". When and if Tatties is required to select a room it must respect the requirements and the capacity constraints.
In selecting a room for an event Tatties ensures that all the requirements of the event and it's attendees and the room are satisfied by the features of the room and possibly the attendees of the event and possibly the event itself.
It is also possible for an event to require a feature although this is uncommon.
It is possible to insist that an event Conicides with another event.
Similarly you can ensure that one event does not coincide with another or that it follows another event either directly (i.e. in the next session) or in the week (i.e. it occurs later in the week).
Events have a given duration.
Tatties will not permit long events to occur at the end of the day.
Events have a kind and belong to a module.
These properties determine how the event will be shown on a printed timetable.
The module relates to the "subject" being studied. The TLA of the module will be printed on the timetable.
The kind of event should be a short code (usually a single character) which indicates what "kind" of event it is. For example you might use "L" for lecture and "T" for tutorial. The event kind is printed on the timetable.
Events may be "onerous".
Tatties will attempt to avoid any person having three or more onerous events in a row. Typically lectures are regarded as onerous but tutorials are not.
The list of possible sessions is calculated.
The sessions in which an event could possibly take place is calculated and shown on the session grid. The availability is calculated from the availability of its attendees (and room if fixed). It is not possible to directly restrict the times at which an event can take place. See the note on Ghosts in the Tips section for a work around this restriction.


Rooms have the following attributes:

The capacity of a room limits the events which can take place. The size of an event is calculated as the total of the sizes of the students attending. Staff do not contribute to the size of an event.
Tatties will not permit events to take place in rooms which are too small, it will attempt to minimise the number of wasted seats.
Neeps has a three level hierarchy for rooms. Rooms are contained in locations. Locations are contained in Sites.
Tatties will attempt to minimise the number of room changes. Failing that it will attempt to minimise the number of location changes. Failing that it will attempt to minimise the number of site changes.
A location would typically be one floor of a building and represent up to 20 rooms which are relatively close to each other.
The times at which a room is not available can be set by painting the session grid.
The load on a room is a list of the events which have been specified as taking place in it.
Commonly rooms satisfy features and events require features.
It is possible for rooms to contain other rooms.


Staff are perhaps the simplest atoms.

A little thought is required in completing the long name for a member of staff.
The short name or "ID" will appear on printed timetables. A "key" may be provided which translates the abreviated "ID" into the Long name.
The "Long" name is also used to generate alphabetic lists where required and so users should enter the name in a suitable order. Typically family name first follwed by a comma followed by the title and initials or first names if appropriate. Unfortunately this gives a rather formal public school/military feel to the timetabling exercise.
Staff can be made unavailable at certain times by painting the session grid.
The events which the staff member attends is listed in the "teaches" list box.
It is unusual for a member of staff to require any features.
It is unheard of for a member of staff to satisfy anything.


All of the features of student atoms have been discussed previously.

Most student atoms represents a group of students who all follow exactly the same timetable.

The size of an event is calculated as the sum of the sizes of the students attending the event.
Students can be made unavailable at certain times by painting the session grid.
Heirachies of student groups can be specified. See Contains for details.
Student groups can require or satisfy features.
The list of events attended by a student atom can be seen in this list box.


Features are properties which may be required of events, staff, students or rooms. Similarly any of events, staff, students or rooms can satisfy a feature.

Typically features are used to restrict the rooms which may be allocated by Tatties.

Further details of how to use features may be found in the section concerning requires and satisfies.


A location is a collection of rooms which are relatively close to each other.

When placing events in rooms Tatties attempts to minimise the number of changes in location (and hence the amount of traffic in lifts and main corridors).

It is assumed that no time needs to be reserved for students or staff to move from one location to another within a site.


A site is a collection of locations.

Tatties tries to avoid site changes even harder than it attempts to prevent location or room changes.

Moreover Tatties tries especially hard to avoid "instant" site changes - it will produce timetables in which individuals have a "gap" session in which to travel from one site to another wherever possible.


A module is a collection of events. Typically this will be a number of lectures, tutorials and practicals associated with particular assessed unit or a course.

Modules are used only for the purposes of printing timetables. On a printed timetable each event is represented by the TLA of it's module and the event kind.

The TLA of a module is a "three letter acronym" which students and staff can (or will come to) recognise.
It need not be exactly three letters - but it should be short to make printed timetables readable.
Users should endevour to make TLA's unique within any individuals timetable (this is not enforced).