• Ingen resultater fundet

Study Plan Elaboration

In document A STUDY PLANNING SYSTEM (Sider 112-117)

The elaboration of a study plan is based on a Study Plan Criterion (SPC) (section 4.1.7) which describes the criteria for which to create a study plan. The elaboration of a study plan starts by retrieving the SPC and information about the student for which to elaborate a study plan.

6.6 Study Plan Elaboration 89 In the SPC the student has the possibility of specifying a technical package (section 3.6) different from the one he is currently signed up for. If no technical package has been selected in the SPC, the student’s current technical package is used. Additionally the student may select a technical line (section 3.7) in the SPC otherwise the technical line for which the student is signed up – if any – is used.

In the SPC some criteria are enforced generally for the whole study plan and some are specific for each period in the study plan. The general criteria are:

• Specifically selected or deselected courses.

• Selected language – at least one language must be selected.

• Deselected lecturers.

• Selected study types – at least one study type must be selected.

• Selected keywords.

Courses and projects which the student has already finished or signed up for previously are retrieved. According to the selected technical package and study type (section 3.8) the required projects are retrieved as well as the fundamental courses for the technical package.

Next step is to find the first possible period (section 3.14) in which to commence the schedul-ing process. The first possible period is the next period which has a start date greater than the current date.

Now the scheduling can begin. The following items are retrieved for each period:

• Mandatory courses for the technical package for this period.

• Mandatory courses for the technical package for previous periods which have not yet been passed.

• Optional courses for the technical package for this period.

• Courses which have been specifically selected/deselected in the given period.

• The desired workload and timetable modules for the period.

The courses for the period are scheduled by traversing the list of courses according to the priority rules in table 6.1 where 1 is the highest priority.

Priority Description

1 Courses which have been specifically selected for the given period.

2 Mandatory courses for the technical package in the given period.

3 Mandatory courses for the technical package for previous periods.

4 Fundamental courses for the technical package.

5 Courses which have been specifically selected.

6 Prerequisite courses for a technical line where applicable.

7 Courses for a selected technical field where applicable.

8 Point giving courses for a specialization where applicable.

9 Supplementary courses for a specialization where applicable.

10 Optional courses for the technical package in the given period.

11 Keyword matching courses.

Table 6.1:Priorities according to which courses are selected.

Steps 6 through 9 of table 6.1 are bypassed until the technical package has been finished.

The priorities in table 6.1 have been chosen such that all mandatory courses are scheduled first as they must inevitably be passed and because they teach some fundamental skills which may be required by other courses. Next, courses which have been specifically selected by the student are scheduled. If a technical line has been selected the prerequisite courses for the technical line must have higher priority than the technical line itself. For specializations the point giving courses have higher priority than the supplementary courses. Courses matching one or more keywords selected by the student have the lowest priority in this context because the matching keyword(s) may describe only a small part of the course.

For each course the user specified constraints below are checked:

1. Is the course taught in one of the selected languages?

2. Is the course taught by a deselected lecturer?

3. Has the course been generally deselected?

4. Has the course been deselected in this period?

5. Is the recommended placement of the course satisfied?

6. Does the study type of the course match one of the selected study types?

However, none of the above-mentioned constraints except #4 are checked for mandatory courses in the technical package as well as fundamental courses since these courses must be scheduled no matter what.

If the constraints are satisfied the algorithm proceeds to course part scheduling where the individual parts of a course are scheduled. If part one of the course is taught in the period currently being scheduled and the timetable modules in which the course part is taught are available as well as the workload of the course part being less than the remaining workload of the period, the course part is scheduled. When a course part has been scheduled the available timetable modules and the remaining workload of the period must be updated.

If a course consists of multiple parts the first part may be placed in any period where the part is taught. However, as soon as part one has been placed the following parts must be scheduled in sequential order in the first possible periods hereafter as mentioned in section 3.3.1 on page 16. If for some reason a part cannot be scheduled according to this rule all parts of the course must be unscheduled and whole course must be moved to a new period if allowed.

6.6.1 Rescheduling

Whenever a course part has been unscheduled from a period it leaves an open space in the schedule and thus the period is not exploited optimally. To prevent this the period is rescheduled meaning that all possible course parts for the period are traversed again according to their priority until a suitable course part – if any – which will fill out the space has been found.

Prior to each rescheduling the state of the period is saved – i.e. the currently scheduled course parts for the period. This is done to avoid cyclic rescheduling where a course part is unscheduled (U in figure 6.5) from a period and hence a rescheduling (R in figure 6.5) is performed which schedules (S in figure 6.5) the same course part again which in turn is unscheduled again and so on. So before performing the actual rescheduling the current state is compared to all the previously stored states of the period. If a match is found the rescheduling is cancelled due to a cycle, otherwise the state is saved and the rescheduling is performed.

6.6 Study Plan Elaboration 91

Figure 6.5:Illustration of a possible cyclic rescheduling.

6.6.2 Scheduling Course Chains

Some courses have dependencies to other courses (section 3.3.4, page 18) which in turn must be scheduled first if the student has specified so in the SPC. However, the prerequisite courses may also have dependencies to other courses thus introducing a chain of dependencies. When a course is to be scheduled its dependency chains are generated using a recursive function.

Courses which have already been passed or signed up for in an earlier period are removed from the chains and the result is sorted by ascending complexity such that course chain containing the fewest courses appears at the beginning. The study plan elaborator then tries to schedule the courses in the dependency chain. If it fails it will retry using one of the other chains. If scheduling of all chains fail the course will not be scheduled if the chains contain mandatory prerequisites.

Scheduling Projects

Alongside the courses some projects must also be scheduled (sections 3.4 and 3.8). The required projects are stored in the SPC. Whenever a study plan period has been completed the elaborator algorithm determines whether a project should be scheduled at this point by comparing the accumulated number of credit points with the placement recommendation(s) of the project(s). If the project must be scheduled it is placed in its own individual study plan period which may overlap other study plan periods. The workload of the project in the overlapped periods is calculated from the specifications in the SPC (section 4.1.7 page 47).

6.6.3 Description of Flow

The diagram on page 97 shows how one period is scheduled as well as courses spanning multiple periods. Scheduling of projects or chains of prerequisite courses is not shown in the diagram. In the following the circled numbers like 1mrefer to the correspondingly numbered transitions in the diagram.

The flow starts at 1mby fetching a course according to the priority rules in table 6.1. If the course has been generally deselected 2min the SPC the flow returns to Am.

Next the language in which the course is taught is retrieved. If the course language is not among the languages selected in the SPC 4mthe flow returns to Amotherwise the lecturers teaching the course are fetched. If the course is taught by at least one lecturer who has been deselected in the SPC 6mthe flow returns to Amotherwise the recommended placement of the course if retrieved along with the estimated number of credit points for the period being

scheduled. If the recommended placement of the course is satisfied 9mthe study types of the course are fetched else the algorithm returns to Am.

Provided that the course has one of the study types selected in the SPC 11mthe course is checked for deselection in the given period. If the course has been deselected in the current period 13mit checked whether to allow moving the course to another period. If the course has not been deselected in the current period 12mpart 1 of the course is retrieved.

If part 1 is taught in the current period the possible modules for the course part are fetched 15motherwise the algorithm checks if it is permissible to move the course 14m. If moving is allowed 17mthe next period is retrieved and a cycle is performed using the transitions 12m,

13mand 14muntil a period in which the course is taught and is not deselected has been found 15m. If no such period is found 19mthe course part cannot be scheduled and the flow returns to Am.

If the modules in which the course part is taught are available 27mthe workload of the course part is fetched. However, if the modules are not available 26mthe algorithm checks whether any course parts with lower priority (confer table 6.1) have been scheduled in the given period.

If this is the case 25mthese course parts are unscheduled and the module check is repeated.

If no parts with lower priority have been scheduled or the unscheduling did not free the desired timetable modules the course part cannot be scheduled and the flow moves on 24m to checking whether the course part is greater than one. Since all course parts greater than one must be scheduled in the first periods in which they are taught all previous parts must be unscheduled 23mif the part is greater than one.

Unscheduling is done by updating the remaining workload for each period where a previous course part has been scheduled. The modules of the course part are added to the set of available modules and a rescheduling of the period is ordered since the removed course part now leaves behind a gap in the schedule. If moving the course is allowed 20ma new period is fetched and the algorithm then tries scheduling the course again in the new period starting from part one.

If the modules were available 27mthe workload of the course part is retrieved along with the remaining workload of the current period. If the workload of the course part exceeds the remaining workload the course part cannot be scheduled 28mand the flow proceeds as if the modules were unavailable. If the remaining workload of the period allows the addition of the course part 29mthe course part is scheduled, its modules are removed from the set of available modules and the remaining workload of the period is updated.

If there are more course parts 32mthese must be scheduled as soon as possible. The next course part is fetched and and loop is performed 30m31muntil the first period has been found in which the course part is taught. Should there be no more course parts 33mthe algorithm determines if the the desired workload for the period has been reached. If this is the case 34mscheduling the period has been finished otherwise 35mit is determined whether more courses are available in the period. If no more courses are available the algorithm returns 36m otherwise 37mthe next course is fetched and the flow starts all over again.

In document A STUDY PLANNING SYSTEM (Sider 112-117)