TABLE OF CONTENTS
Preamble
Constructing elective lines properly is an involved and complex part of timetabling. This key process has direct implications for the cost and quality of staffing, and of the educational destiny of your students. It may not be hard to get 'a' result – but the key is to get a GOOD result!
Setting up the Courses table correctly has significant effects on line generation, Edval Choice (if using) and student preference satisfaction.
Each field will be thoroughly explained in this article, and linked to other articles where more detailed or relevant information exists.
Edval Choice will be referenced in areas where there are related requirements or considerations for schools using the online subject selection module.
CourseCode
- A short unique code for each course, e.g. 11BIO or 11CHE.
- In a single year dataset, the year level is not strictly necessary, e.g. just BIO, not 11BIO, if it is preferred to keep the codes short.
- Course codes should match the codes in Teachers > Subject teachers (and Rooms > Subject rooms) sets.
Edval Choice:
- Students will not see the codes when choosing courses online, but they will display on a submitted webform.
- Do not make changes to course codes after a form has been published.
Subject
- Subject long name, as will display in Class data F6 and on timetables e.g. Biology (not BIO).
- Be specific. For instance, if there are semester specific courses, label them accordingly. eg 'French Semester 1' and 'French Semester 2'.
Edval Choice:
- If using a mutli-year dataset where students may choose the same subject from different year levels, ensure that the subject name differs.eg Do not name them both 'Biology' as the students will not be able to distinguish between them (remember, they do not see the CourseCode). It is better to differentiate them such as 'Stage 5 Biology' and 'Stage 6 Biology', or 'Biology Units 1 & 2' and 'Biology Units 3 & 4' so there is no confusion about exactly which course they are choosing.This may also apply to Semester length courses if necessary. eg 'French Semester 1' and 'French Semester 2'
#C (number of classes)
- Number of classes: how many classes of each course will be run, based on student requests and school resources?
- Enter 0 (zero) for courses that will not run due to little student interest or resource unavailability.
- Tools to help the decision making process include the Lines > Elective data > Courses > Action bar: Calculate number of classes #C and Lines > Analysis > Course popularity features, and (also) by iterative analysis of elective solutions or dropped class suggestions in any solution.

#C can be changed many times throughout the line generation process to trial different scenarios. For example, if trying to decide whether to run one class or two classes of a course, trial it and view the results.
S/C (Student to class ratio)
- Shows the approximate number of students per class, i.e. the number of students who selected this course as a 'main' preference, divided by the number of classes. If 30 students chose a course, and it has been decided to run 2 classes, the S/C will be 15.Note that when lines are generated there will not necessarily be two classes of 15; we might get classes of 10 and 20 if it means a better student outcome overall.
- Reserve preferences are not included in the S/C number.
- S/C field highlights in red if more students have requested the course than the number of places on offer, based on the MaxS field. This means that some students will miss out on the course due to insufficient places, even before line generation occurs. It is not possible to identify these students prior to generating lines, as the algorithm tries to achieve the highest student satisfaction, which cannot be known until the algorithm is run.
- Double click the S/C cell for a course to see the list of students who requested it. The display also includes the student's priority value, gender and preference. Reserve preferences will also display at the bottom, in faint text
MaxS (maximum students)
- The maximum number of students allowed per class.
- When there are multiple classes for a course, a maximum can be set for each class within the course by entering comma separated values in the MaxS column, e.g. 25,24,23. Note there is no space between the comma and the next value. The maximum will be adhered to for the classes in the order specified.
- This figure will not only be used for elective line allocation of students to classes, but also in any subsequent class list management
- Can be set globally via Lines > Elective data > Courses > Action bar: Calculate number of classes #C, then manually edited.
- MaxS can be used to 'force' class size balance if needed. While the algorithm balances class sizes automatically, it will not generally displace students from subject requests to achieve a class size balance. This manual method of class size balance is not generally used or needed, except in special circumstances.For example, where there are two or more classes of a subject, the MaxS may be reduced to force more equal numbers per class, although possibly at some expense to student allocations.MaxS may be lowered than the actual maximum to leave a little room spare, such as for students who want to pick up this subject later if they need to drop something else, or to leave room for new enrolments.
Edval Choice:
- The MaxS field only affects Edval Choice where schools are using the 'Sport' Type elective dataset, and the 'First Come First Served' feature.Enter the maximum number of students as the total number of places, regardless of the number of classes running, as this is what determines when a class is full when students are entering their selections online. This is very different to datasets that have 'Electives' as the Type.For example, if the #C is two for a particular sport, then the MaxS might be 36, so that once 36 students have selected the sport, the sport will be considered full. When the sport is full, the sport will still appear as an option on the web form, but with the text ‘(full)’ next to the Sport title, and the students will go on a waiting list.The system will later create two sport classes for class list and staffing purposes.
Teachers
Information on teacher options (and rooming options), for every course in the dataset, is crucial for intelligent line generation. Failing to construct elective lines intelligently may result in lines that are later impossible to schedule, or so restrictive that the class spreads are very poor, and possibly needing to run some classes 'off' the timetable. While satisfying the maximum number of student preferences is very important, it should never be the sole consideration when generating the elective lines for a school, as a school must best manage it's available resources.
While Subject Teacher sets (and Subject room sets) are not generally used for elective line construction in other systems, provision here has many benefits:
- Resource Clash Management. When teacher options are known when generating lines, the lines solution is always produced in a clash free manner.For example, if there are only two French teachers, then the lines solution will never place more than two French classes on the same line, as it would not be possible to staff this arrangement.
- Timetabling flexibility. Where there are part timers as teacher options for courses, it is far better to align these in a time-compatible manner, so a part timer needing Tuesdays off is far more likely to be on a line that has another part timer needing ‘two days off’, as these are highly compatible. Specifying resource options against courses means there is far less likelihood of a Wednesday part timer’s course being on the same line as a Tuesday part timers course, which would mean this entire line could not run on either day!

- The Teachers field should generally left blank, except where there is a specific preference for staff you want to force.
- Generally this field should be left blank, in which case the Teachers > Subject teachers data will be referenced -if the course code already exists. It is always better to update the Teachers > Subject teachers screen.
Rooms
As per Teachers, it is crucial to have the rooming options data correctly entered into the file prior to line generation so as not to create a lines solution that cannot be roomed.
For example, if there is only one Drama/Performance room, then the algorithm will not place any classes that must have the Drama room onto the same line.

- The Rooms field should generally left blank, except where there is a specific preference for a room you want to force.
- Generally this field should be left blank, in which case the Rooms > Subject rooms data will be referenced -if the course code already exists. It is always better to update the Rooms > Subject rooms screen.
Units
Specify the number of units for this course as either ‘1’ or ‘2’. The default is 2 units, shown as ‘2U’. Some courses are only one unit ‘1U’. To specify three and four unit course, separate them as a two unit (2U) and an extension (1U) unit or perhaps two extension units as a separate course.
- Each state/country will have its own calculations on the number of units required per course.
- The number of units per course can be dependent upon the number of rotations in the file.
- Decimals cannot be entered.
- The Units are used to help specify line generation Rules, such as 'no more than ~ 2U ~ of Rule Group A' and 'at least ~ 1U ~ of Rule group P'. Students will then be given classes to meet the rules when lines are generated,
Some examples:
- NSW: a 2 Unit course indicates a course being run over the full line, whereas a 1U would be a sub-line.
- SA and VIC: in a file set up with 2 rotations, a 2 Unit course indicates a full year course, whereas a 1U course indicates a semester length course.
- A school has a multi year dataset, is set up as four rotations, and is generating lines all together:- Year 7 students are selecting 4 electives, to run on a termly basis- Year 9 students are selecting 2 electives, to run on a semester basis- Year 10 students are selecting electives that run on a yearly basisTo allow for rotational lines to be generated, Units for courses will be set up as follows:- Year 7 courses = 1 unit (1 unit per rotation)- Year 9 courses = 2 units (2 units per rotation)- Year 10 courses = 4 units (4 units per rotation)
Edval Choice:
- The units are totalled as students select their subjects online. They will not be able to submit preferences if they have more than or less than the required number of units that constitutes a minimum or full course. Schools must determine the number of units that is required for an acceptable course load, and enter this into the Edval Choice web form set up.
- The Units are used to help specify online submission Rules, such as 'no more than ~ 2U ~ of Rule Group A' and 'at least ~ 1U ~ of Rule group P'. These will force students to correctly submit subject preferences that meet school requirements.
Lines
It should firstly be noted that the more restrictions placed on the Line generation function, the less flexibility the algorithm has to determine the optimal solution. Greater flexibility usually results in better solutions.
If there are educational restrictions, or perhaps intelligent ‘planning’, of which subjects must run together, this may be better done using the more powerful Lines > Elective data > Courses > Action bar: Rules and Constraints feature.
However, it may be required at times to force courses to:
- run on certain lines
- avoid certain lines
- run the course off the timetable.

When entering data into the Lines field, be aware that this applies at the course level, not the class level.
For example, if there are three 11BIO classes running, and we enter 2 into the Line field, all three BIO classes will be forced to run on Line 2.
Use Lines > Elective data > Courses > Action bar: Rules and Constraints to specify line requirements at a class level.
Also consider the VLink and HLink fields to enforce linking.
Line entry examples:
- Force courses to run on a particular line by entering the number of the line.eg English courses must run on Line 1. Enter 1 into the Line field for the English courses.
- Restrict courses to run on certain lines, but allow some flexibility when determining which line is best for the course. Enter all possible line numbers, separated by a comma.eg Maths is restricted to Lines 2 and 3. Enter 2,3 into the Line field for the Maths courses.This could result in all classes being in either Line 2 or 3, or some classes on Line 2 and some on line 3.
- Block courses from running on particular lines. The entry required is the word not followed by the line numbers.eg 11ART must not run on Lines 5 or 6. Lines Enter not 5,6 to block Drama from running on Lines 5 and 6.The command not 5,6 is identical to entering 1,2,3,4 i.e. course can be forced to run on certain lines or restricted from certain lines.
- Force or block courses from running in certain rotations (for files with rotations).- If 2 rotations exists in the file, use a and b to signify rotations: a = Rotation 1 and b = Rotation 2- If 4 rotations in the file, use a, b, c, and d to signify rotations: a = Rotation 1 and b = Rotation 2, c = Rotation 3 and d = Rotation 4eg 10FRE1 is a Semester 1 course, and 10FRE2 is a Semester 2 course. Enter a for 10FRE1 and b for 10FRE2.Leaving it blank (no a or b) will indicate that the course can be taught in any rotation.
- Force or block courses from running in certain sublines (for files creating datasets with half lines ie NSW). A possible lines structure could be where there are 7.5 lines in the timetable, so 7a is in the lines, but line 7b is out of the lines.7a : A 1-unit course that must go on line 7a.not 7b: Apply to all 2U courses to exclude them from line 7b. This is where you ONLY want one 1U courses, or those 2U courses that are part offline from running in line 7a.
- Run courses 'offline'. Sometimes courses may need to exist in the data, as they are part of the subject selection process and contribute to the student's overall course, but will be timetabled outside of the regular periods, such as before or after school, or externally such as Open high school / Distance education / VET / TAFE.An ‘Offline’ group will be shown, containing all the offline courses. This is a special case line that does not consider clashes, and students can be assigned multiple offline courses without issue.eg VET Building occurs in after school hours, but the Units contribute to the student's overall program and must be part of the subject selection process. Enter offline into the Line field for these type of courses.

Note that all examples above use line numbers, but line letters may be used if that is what the school prefers. Check Lines > Elective data > Courses > Action bar: Parameters > 'Letter or number of first line'; the default entry will be 1, but this can be changed to an alternate number, or to a letter, eg A, B etc)
Edval Choice:
- When setting up the webform, the line column rotation entries (ie. a, b) can be used to display certain courses only.For example, rotated files can display Rotation 1 classes only (a) for a particular drop down, and Rotation 2 courses only (b) in the next drop down. The webform can pick up the lower case Line entries and display only those courses.
Refer also to E10: Ways to block classes
Rules
Courses can be grouped together, or categorised, by the use of letters for a number of reasons, including:
- checking that students select courses to meet school requirements
- students are placed into required courses when the lines are generated
Edval Choice:
- to influence the Edval Choice form configuration
- to ensure student submit the right types of courses when using Edval Choice

- Refer to E10 - Elective data > Courses Action: Rules where rules are covered in detail.
Coreq (Corequisite)
Coreq is used to link a course with another course for:
- Preferences data
- Line generation
- Edval Choice subject submission requirements.
For example:
- Preferences data:A student has a preference of 10JAP2 (Japanese 2) which has a coreq requirement that the student also have 10JAP1 as a preference.- In the Coreq field for 10JAP2, enter 10JAP1- Check Lines > Elective data > Students. Students will be highlighted if their submissions do not include both courses.
- Line generation:- A student has selected both 10JAP1 and 10JAP2 as per the coreq requirement.- Lines have been generated.-Students will be given both 10JAP1 and 10JAP2, or the student will be highlighted if it cannot satisfy this coreq requirement.- Check Lines > Elective data > Students. Students will be highlighted if their submissions do not include both courses.
- Edval Choice Subject submission requirements.Enforce students to submit online preferences to meet coreq rules. Students will not be able to submit if they do not meet the rules.
Corequisite relationships may work just one way or both ways. If both ways, each course must have the required coreq entered.
Prereq
The prerequisite capability enables schools to set selection requirements to ensure students select courses for which they are eligible. This might include meeting minimum/maximum mark requirements, attendance benchmarks or other criteria.
Fee
Fees can be entered for some or all courses.
Edval Choice:
- Fees display onscreen when students are making their subject selections and are totalled on printed webforms.
VLink (Vertical link)
A 'vertical link' is used to force a course to be placed on the same line/sub-line as another course. In the absence of an entry in the Line field, the algorithm has the flexibility to choose which line best suits the vertically linked courses.
- There is no limit to the number of courses that can be vertically linked
- When using a multi-year dataset, courses can be linked from one year level to another.eg School wants 11MUS to run in the same line as 12MUS. Enter 12MUS in the VLink field for 11MUS

* If the vertical link is to run as a composite class, enter 'None' into the Teachers and Rooms fields. This tells the algorithm that the linked class will share the resources of the course it is linking to.
- A course can be vertically linked to itself.eg School wants the four classes of the 10MAT course to all run on the same line, enter 10MAT in the VLINK field.

When entering data into the VLink field, be aware that this applies at the course level, not the class level.
Examples:
- if there are three 11BIO classes running, and we VLINK 11BIO to 11PHY course which has 2 classes, then all three BIO classes will be forced to run on the same line as the two 11PHY classes (provided that there is adequate Teacher and Room options for this to occur).
- School runs four Maths General and three Maths Advanced classes. Advanced must always be paired with General to allow students in Advanced to drop down to General later if needed. The three Advanced classes will find the best lines to pair with a General class. The fourth General class will sit wherever suits the lines solution best.If this is not desired, use the more complex class Rules and Constraints, which allows for linking on a class basis.Perhaps in this situation the school wants the fourth General class to be placed on one of the lines that already has a General class in it. This set up cannot be done in the VLink field.
Use Lines > Elective data > Courses > Action bar: Rules and Constraints to specify vertical linking requirements at a class level.
HLink (Horizontal link)
A horizontal link is used in files that either use 'half lines' or Rotated lines. Courses can be forced to run horizontally within a single line.
- When using a multi-year dataset, courses can be linked from one year level to another.eg School wants 10MUS to run in the same line as 9MUS. Enter 9MUS in the HLink field for 10MUS
- A course can be horizontally linked to itself.eg School wants the four semester based 10PE classes to be paired, two in one line and two in another, each with a rotation 1 class and a Rotation 2 class. Enter 10PE in the HLINK field.
Examples:
- School runs one unit 11ENGX extension and 11MATX extension classes, which must occupy half of the same line each. Enter either code into the HLink field of the other, and corresponding course will have the entry filled automatically.
- School wants to assist the line generation and staffing solution by horizontally linking semester based subjects so that a smooth staffing transition can occur between Rotations. 10ARTF and 10ARTP can use the same teacher, so these classes can be forced to run on the same line in alternate rotations. School does not mind which line ART runs on, nor which semester each ART course runs in; the algorithm can decide the best arrangement there.Enter either code into the HLink field of the other, and the corresponding course will have the entry filled automatically.

When entering data into the HLink field, be aware that this applies at the course level, not the class level.
When there are odd numbers of classes for a course it is not possible to horizontally link using the HLink field.
Use Lines > Elective data > Courses > Action bar: Rules and Constraints to specify horizontal linking requirements at a class level.
Examples:
School runs three semester based 9TEC classes and one semester based 9ELE class.School wants to HLINK two of the 9TEC classes to run on the same line in each semester, and pair the third with the 9ELE class, as there is a teacher that can teach both 9TEC and 9ELE. This cannot be done using the HLink field.
Line 1 Rotation 1 | Line 1 Rotation 2 | Line 2 Rotation 1 | Line 2 Rotation 2 |
9TEC | 9TEC | 9ELE | 9TEC |
Block
The Block letter is a code used to identify all courses to be treated as an exclusive block. Use letters A through Z to designate a group of courses that must run together, exclusive of any other course in the current year level.
Years
This entry should contain the year level of the students that the course is offered to.
- For single year datasets, this will simply display the year of the associated students.eg A Year 11 dataset containing all Year 11 courses open only to Year 11 students will display 11 in the Years field.
- For multi year datasets, this field may include the year levels of students from other year levels.eg A multi year dataset containing classes offered to more than one year level will display all associated year levels in the Years field.
- The first entry is the year level that the class will be created in, subsequent entries are in any order.
In the image below:
- Year 12 may select all six courses
- Year 11 students may select three courses (12HHD, 12OES and 12PSY)
- These classes all belong in the Year 12 class data screen as that is the year level listed first.
Edval Choice:
- Students will be permitted to choose courses that include their year level.Note that the set up of the webform and other Rules can also influence in which courses students can select.
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article