Contents
Input/output data format is XML, with the following structure:
<?xml version="1.0" encoding="UTF-8"?>
<!--Student Sectioning-->
<sectioning
version="1.0"
initiative="puWestLafayetteTrdtn"
term="Fal"
year="2007"
created="Wed Jun 06 09:55:42 EDT 2007"
nrDays="7"
slotsPerDay="288">
sectioning root element |
version | file version |
initiative | campus designation |
term | semester (e.g., 2007Spr or 2007Fal) |
created | creation time of the file |
nrDays | number of days per week (default is 7 days, Monday through Sunday) |
slotsPerDay | number of slots per day (default is 288, 5 minute long time slots, going from midnight till midnight) |
1. Definition of offerings (timetable):
<offerings>
<offering id="1">
<course id="1"/>
<config id="1">
<subpart id="1" itype="10">
<section id="1" limit="105">
<time days="1010100" start="150" length="12"
dates="00000000000000000000000000000000000000000000000000111111011111100111110111111011111101111110111111000111101111110111111011111101111110111111011000001111110111111"/>
<room id="1" capacity="115" location="477,484"/>
</section>
</subpart>
</config>
</offering>
<offering id="18">
<course id="18"/>
<config id="18">
<subpart id="23" itype="10">
<section id="50" limit="20">
<time days="1000000" start="102" length="12"
dates="00000000000000000000000000000000000000000000000000111111011111100111110111111011111101111110111111000111101111110111111011111101111110111111011000001111110111111"/>
<room id="7" capacity="10" location="345,335"/>
</section>
</subpart>
<subpart id="24" itype="30" parent="23">
<section id="51" limit="20" parent="50">
<time days="0010100" start="102" length="24"
dates="0000000000000000000000000000000000000000000000000011111101111110011111011111101111110111111011111100011110111111011111101111110111111011111101100000111111111111"/>
<room id="7" capacity="10" location="345,335"/>
</section>
<section id="52" limit="20" parent="50">
<time days="0010100" start="126" length="24"
dates="0000000000000000000000000000000000000000000000000011111101111110011111011111101111110111111011111100011110111111011111101111110111111011111101100000111111111111"/>
<room id="7" capacity="10" location="345,335"/>
</section>
</subpart>
</config>
</offering>
...
</offerings>
An offering consists of one or more courses under which it is offered (students are signing for courses)
and one or more configurations. Each configuration has one or more subparts and each subpart has
one or more sections (classes). Each student requesting given course has to be enrolled in a section
of each subpart of a selected configuration. If a parent-child relation is defined between sections,
if a student is enrolled in a section that has a parent section defined, he/she has to be enrolled in
the parent section as well.
subpart: definition of a subpart (a collection of alternative sections of the same instructional type) |
id | subpart unique id |
itype | instructional type |
parent | parent subpart (if defined) -- all sections of the subpart have a parent section defined from the parent subpart |
section: definition of a section |
id | section unique id |
limit | section limit -- number of students that can be enrolled into the section, -1 means unlimited |
parent | parent section (if defined) -- a student enrolled in this section, must be enrolled in the parent section as well |
hold |
amount of space of this section that is held for incoming students (default is zero)
This attribute is computed during the batch sectioning (it is the overall weight of
dummy students enrolled in this section) and it is being updated with each incomming student during the
online sectioning.
|
expected |
amount of space of this section that is expected to be taken by incoming students (default is zero)
This attribute is computed during the batch sectioning (for each dummy student that can attend
this section (without any conflict with other enrollments of that student), 1 / x where x is the
number of such sections of this subpart is added to this value). Also, this value is being updated with
each incomming student during the online sectioning.
|
A section may or may not have defined a time (e.g., individual study sections do not need to have
a time and room defined) and any number of rooms (including zero).
a. time placements:
Each time location encodes the selection (e.g., MWF 7:30 - 8:30) of
- days (e.g., 1010100 means Monday + Wednesday + Friday),
- start time (e.g., 90 means 7:30 am),
- length of each meeting (e.g., 12 means 60 minutes)
time: a section can have none or one time placement defined |
days | selection of days (binary string encoding days Monday, Tuesday, Wednesday, .. Sunday) |
start | start time slot |
length | number of time slots each meeting takes |
dates | binary string defining on what days during the term the class can be taught |
Two time placements overlap when
- dates are overlapping (binary operation XOR of dates attributes returns a non-zero value) and
- days are overlapping (binary operation XOR of days attributes returns a non-zero value) and
- times are overlapping ((t1.start + t1.length > t2.start) AND (t2.start + t2.length > t1.start))
b. room placements:
room: a section can be placed in zero, one, or more rooms |
id | room id |
capacity | room capacity (number of seats in the room) |
location | room location coordinates x,y
- distance between rooms in meters: 10 * ((x2-x1)^2 + (y2-y1)^2)^1/2
- location attribute might not be present (e.g., for non-campus locations), distance between such a room and any other room are considered as infinite in such a case
|
ignoreTooFar |
- true if the distances between this room ant any other room should not be considered (no distance conflicts for this room)
- false if the distances should be considered (this is the default, when ignoreTooFar attribute is not present)
|
2. Definition of students:
<students>
<student id="1" dummy="true">
<classification area="GR" code="D"/>
<major area="GR" code="E24"/>
<minor area="GR" code="390"/>
<course id="1" priority="0" weight="0.0000" course="2884">
<alternative course="2313"/>
<best>
<section id="1233"/>
</best>
</course>
<course id="2" priority="3" weight="1.1250" course="4394" alternative="true"/>
</student>
<student id="2" dummy="true">
<classification area="LA" code="07"/>
<major area="LA" code="436"/>
<course id="3" priority="0" weight="1.1429" course="982"/>
<best>
<section id="1832"/>
<section id="1841"/>
</best>
<course id="4" priority="1" weight="1.1429" course="992" waitlist="true" />
<course id="5" priority="2" weight="1.1250" course="1000"/>
<course id="6" priority="3" weight="1.1250" course="4394"/>
<course id="7" priority="4" weight="1.3333" course="999"/>
<freeTime id="8" priority="5" days="0010100" start="102" length="24"
dates="0000000000000000000000000000000000000000000000000011111101111110011111011111101111110111111011111100011110111111011111101111110111111011111101100000111111111111">
<best/>
</freeTime>
</student>
...
</students>
student: definition of a student |
id | student unique id |
dummy | true for last-like students (false by default) |
classification | student academic area classification(s) -- contains academic area and classification code |
major | student major(s) -- contains academic area code and major code |
minor | student minor(s) -- contains academic area code and minor code |
Academic area classification, major, and minor information is optional.
Each student contains a list of course / free time requests. Each request has a priority.
Course requests can have one or more alternative courses defined. Also, the whole request can be defined as alternative
or it defines whether the student should be put on a waitlits for the course if he/she cannot be enrolled in the course.
For each student, all non-alternative requests should be satisfied (an enrollment is assigned to a request). If not,
an alternative request can be assigned instead of a non-alternative course request. In the case when only one of two
requests can be assigned, the one with the lowest priority is preferred.
a. course requests:
course : definition of a course request |
id | request unique id |
priority | request priority |
weight | request weight, by default 1.0, defines the amount of space which will be taken in the section by this request |
course | requested course id |
alternative | true, when alternative request (false by default) |
waitlist | true (false by default), when the student should be put on waitlist when he/she cannot be enrolled in the course (e.g., an alternative request cannot be assigned instead) |
alternative : definition of an alternative course of the requested course (one or more alternative courses can be defined for each course request) |
course | requested course id |
b. free time request:
freeTime : definition of a free time request |
id | request unique id |
priority | request priority |
waitlist | true, when an alternative request cannot be assigned instead (false by default) |
days | selection of days (binary string encoding days Monday, Tuesday, Wednesday, .. Sunday) |
start | start time slot |
length | number of time slots each meeting takes |
dates | binary string defining on what days during the term the class can be taught |
Initial, current and best solutions can be defined using initial , current and best elements inside a course or free time request.
For free times, a presence of such element means that the student has assigned (can attend) this free time in his/her schedule. For course requests, the
appropriate selection of sections is present. A section of each subpart of a configuration of the course (or one of the alternative courses) needs to be selected. No two sections
that a student is enrolled into can overlap in time and any assigned section can not overlap with any assigned free time requests.
initial, current, best : initial, current and best assigment of a request |
section | enrollment of the student into particular section (section with the same id) |
</sectioning>
|