Preamble
Constructing elective lines is an involved and complex part of timetabling. This key process has direct implications for the cost and quality of staffing, optimal room usage, timetableability, while meeting student subject selection preferences. It may not be hard to get 'a' result – but the key is to get a GOOD result!
Note that a good educational elective line solution should never consider students preferences as the sole metric of good. The ability to staff classes well, and ability to ensure class spreads are appropriate for the subject are also important. It may be better to deny several student preferences to ensure that classes can be placed in the room they need in order to achieve the best educational outcome.

Read first: E10 - Generating Lines : Overview and tips and all Elective data > Courses documentation.
Before generating lines, ensure the following information is correct in the file:
- Students preference data
- Teachers > Subject teachers (particularly for any course involved in the line generation)
- Rooms > Subject rooms (particularly for any course involved in the line generation)
- Teacher data Unavailable requirements, as Line generation considers these where part time staff are involved.

It cannot be emphasised enough how important this data is for Edval to create the best lines possible.
Once the user believes that their data is correct, Line generation can begin.
Generate Lines
Lines > Elective data > Courses Action: Generate lines
There are many parameters available when constructing the elective lines. On occasion, the user might like to tweak the default parameters, but it is advisable to only do so where the user understands the implications of changing even one parameter.
When constructing lines, there are constraints other than the students' preferences. The students' choices are constrained by maximum class size. Also, the line structure itself is constrained by limitations on teachers and rooms. For example, if you have only one Art room available, then all Art classes must be on different lines.
Construction parameters
The default values displayed in the Construction parameters can be considered as 'penalty' values. These values work in relation to each other, and are multiplied to give an overall solution score. The lowest overall score is what E10 aims to achieve.
Parameter | Explanation |
Student choice | This is the most important. We try to arrange the classes to minimise those students who miss out on their preferences. This takes longer than a fast ‘guess’ calculation, which is used to get an initial good solution faster. |
Student choice (fast) | This is a fast-to-compute 'estimate' of the above, using a different formula. It is not an important parameter. |
Part- timer harmony | How important is it to align part time staff together on the same lines to ensure efficient scheduling later on? If a teacher is unavailable on a Tuesday, we try to place them in lines with others who need a Tuesday off, or even ‘one day off’. Increasing this weight means we increase the likelihood that this consideration is met over the consideration of more student choices. Balance is important. We do not ‘force’ part-timers to align to lines unless the impact on students is appropriately low. Note that there has not been any specific assignment of part time staff to courses at the elective line generation stage, so it is the possibility of their subsequent assignment which is being considered here for better flexibility in later scheduling. |
Double compatibility | How important is it to align subjects according to their time pattern requirements? Do some subjects want doubles, whole others do not? This weight will check the courses table and look for any entries in the D/S field (Doubles or Singles). If subjects are being aligned that have incompatible time patterns, you can check the entry in the D/S field, then increase this parameter to encourage them to find line combinations that result in better spread associations – but at the least cost to student preferences at all times. Incompatibilities can still occur if a lot of student preferences ‘vote’ for this arrangement, but increasing this parameter will make it more important than the preference votes. |
Same course twice on a line | Do you mind if the same course is placed on the same line (assuming there are enough teacher and room options for this to occur)? For example, if you are running 3 History classes, and you have 4 History teachers and many room options, then it is possible that all 3 classes could be placed on the same line, if it works out best for students this way. This may create problems later on though, as students want to swap their classes around, or new students arrive at the school; there is less 'swapability'. To discourage: Enter a positive penalty value. If the same course occurs twice on a line, we add this penalty. It may better help satisfy students by encouraging diversity in the lines. Theoretically, you don't need this because the algorithm will usually spread courses out anyway in its attempts to satisfy as many students as possible, but it might help, especially if you're expecting many future enrolments. To encourage: Enter a negative penalty value, as an incentive. If the same course occurs twice on a line, the total score will be lower. Benefits include: Allows collapsing classes easily later, if numbers drop, allows streaming, social adjustments, common exams, projects, talks, team teaching, excursions, perfect size balancing etc Ensure resources are specified correctly e.g. 3x French classes on together in a line won't work if you only have one French teacher. |
Dropped classes | This option only applies if you enable the 'Explore drops' option (see Elective data > Courses > Parameters slide out > Dropped classes). Each class which is dropped will cause this weight to be subtracted from the score. (We subtract the weight because a low score is always regarded as a good score). Note that it's very important to set this weighting to an appropriate value such as 3, and certainly not too high. |
Reduce missed units | Lets you set a penalty on students not getting the required number of courses (units) as requested in the Students screen. If a student has not specified enough reserve preferences, and you want to avoid re-counselling students, you can set this to e.g. '1'. This control may ensure less students miss units, at the likely expense of slightly worse satisfaction rate in which subjects are actually granted. This advanced parameter is not often needed, as the focus may be more increasing student satisfaction overall. Ensure all students have the same number of reserve preferences so that the algorithm does not favour students without reserve preferences in order to meet this factor. |
Timetable flexibility | How important is it to ensure flexibility in later scheduling of these lines? If three teachers are already on a Year 12 line together, they form a teaching team. It is therefore efficient to encourage these same three teachers to also align in the Year 11 lines as well – provided it does not degrade student preferences by much. Having wildly different lines in two years may cause bad spreads or offline lessons to occur, so while you may maximise student preferences granted, you may subsequently degrade the education delivery when these classes are later scheduled. Balance is important. Consider all factors at all times. |
Staffing ability (whole school) | Specify zero to run the algorithm fast. Otherwise, this will check a staffing arrangement for all classes in the file, even those not contained in the dataset, to attempt to achieve an overall staffable. solution. As the rest of the school data is not usually in it's ready-to-be-timetabled state at this point in time, this is usually best left at zero. |
Preference weight formula | Weighted preferences (Best): It is strongly recommended that students preference data is in preference order, as then E10 knows which courses to try to grant to students over other courses. Equal weight preferences: This option will be used where the student preference data is in no particular order, and removed the preference weighting component of the algorithm. Equal weights (Ignore reserves): Ignores reserves, not recommended. Weighted preferences (Ignore reserves): Ignores reserves, not recommended. The weighted preferences are weighted as follows:
|
Timetable around dataset | Allows a set of lines to be developed around existing lines as exist in Class data screens. For example, when generating lines for Year 11, they must be compatible with the existing Year 12 lines. By telling Year 11 to work around the Year 12 classes, we will create a set of lines for Years 11 and 12 that can be staffed and roomed to our preferences and there will be no nasty surprises at construction time. If the Yr12 line structure is not yet set in stone, then you should not use this feature - instead you should construct lines in a "Yr11+12" umbrella year level. Refer to: E10 - Elective data > Courses Action: Generate lines around existing lines in other year levels using 'Timetable around' |
Ignore fallback teachers | Ticking this box will ignore any fallback teachers that are listed as fallback in either Teachers > Subject teachers (or if there are fallback teachers listed directly in the Courses screen which is generally not advisable). If you are prepared to allow fallback teachers to be considered when generating lines, untick this box. |
Ignore fallback rooms | Ticking this box will ignore any fallback rooms that are listed as fallback in either Rooms > Subject rooms (or if there are fallback rooms listed directly in the Courses screen which is generally not advisable). If you are prepared to allow fallback rooms to be considered when generating lines, untick this box. Also ensure you understand the use of the Y column in the Rooms > Subject rooms screen - it has a big influence in the lines outcome. Refer to: E10 - Rooms - Subject rooms |
Eight Queens | This option is ticked by default and is an alternative algorithm to the original algorithm. Depending on each school's set up, it may perform better than the standard algorithm. It is suggested that users initially try two versions of line generation, one with this option ticked and another with the option unticked to see which one works better for the file. Any schools using the advanced tertiary features will automatically be using this algorithm. |
Churn step | Churn step is ticked by default, and usually produces better results. Again, occasionally due to the set up of each school it may be better to not use Churn step, so users may like to experiment on their files. |
Single class search width | A "singleton course" is a course with only a single class running (#C = 1). There is a special algorithm for placing "singletons". This algorithm explores many different partial solutions in parallel. This parameter is the number of partial solutions to examine. Higher means it will take more time and possibly get a better solution. |
Reset defaults
If users have altered any of the default settings, they can easily be re-instated by selecting the Reset defaults button.
Generate
Once the lines are ready to be generated, select the Generate button.
The algorithm will work to find the best solution to meet student choice, school resources and the file parameters.
If there are any obvious errors in your data E10 may display a message highlighting the issue. Correct and generate again.
Once a solution is found, the user will be taken to the Lines > Line results > View lines screen to see the suggested lines solution. It is likely that users will not accept the first solution, and find that they have omitted entering some data, such as Rules, VLinks, Hlinks, Parameters etc. These can be entered or tweaked, and then lines generated again until an acceptable solution is found.
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