|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.sf.cpsolver.coursett.model.DefaultStudentSectioning
public class DefaultStudentSectioning
Default implementation of the student sectioning functions needed within the course timetabling solver
consisting of InitialSectioning
and FinalSectioning
.
Many course offerings consist of multiple classes, with students enrolled in
the course divided among them. These classes are often linked by a set of
constraints, namely:
InitialSectioning
). However, it
is still possible to improve on the number of student conflicts in the
solution. This can be accomplished by moving students between alternative
classes of the same course during or after the search (see
FinalSectioning
).
Field Summary | |
---|---|
protected FinalSectioning |
iFinalSectioning
|
protected TimetableModel |
iModel
|
Constructor Summary | |
---|---|
DefaultStudentSectioning(TimetableModel model)
Constructor |
Method Summary | |
---|---|
protected String |
getClassLabel(Lecture lecture)
Class label |
Progress |
getProgress()
|
boolean |
hasFinalSectioning()
Return true if final student sectioning is implemented. |
void |
initialSectioning(Long offeringId,
String courseName,
Collection<Student> students,
Collection<Configuration> configurations)
Enroll students into the given offering during the initial data load using InitialSectioning . |
protected void |
initialSectioningLectures(Long offeringId,
String courseName,
Collection<Student> students,
Collection<Lecture> lectures)
Enroll students into the given classes during the initial data load using InitialSectioning . |
void |
resection(Lecture lecture,
boolean recursive,
boolean configAsWell)
Perform sectioning on the given lecture |
protected InitialSectioning.Group[] |
studentsToConfigurations(Long offeringId,
Collection<Student> students,
Collection<Configuration> configurations)
Section students into configurations. |
protected InitialSectioning.Group[] |
studentsToLectures(Long offeringId,
Collection<Student> students,
Collection<Lecture> lectures)
Section students into lectures. |
void |
switchStudents(TimetableModel model)
Run student final sectioning (switching students between sections of the same class in order to minimize overall number of student conflicts). |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected TimetableModel iModel
protected FinalSectioning iFinalSectioning
Constructor Detail |
---|
public DefaultStudentSectioning(TimetableModel model)
Method Detail |
---|
public Progress getProgress()
public void initialSectioning(Long offeringId, String courseName, Collection<Student> students, Collection<Configuration> configurations)
InitialSectioning
.
initialSectioning
in interface StudentSectioning
offeringId
- instructional offering idcourseName
- course namestudents
- list of students to be sectionedconfigurations
- list of configurations the students are to be sectioned intoprotected String getClassLabel(Lecture lecture)
lecture
- a class
protected void initialSectioningLectures(Long offeringId, String courseName, Collection<Student> students, Collection<Lecture> lectures)
InitialSectioning
.
offeringId
- instructional offering idcourseName
- course namestudents
- list of students to be sectionedlectures
- list of lectures the students are to be sectioned intoprotected InitialSectioning.Group[] studentsToConfigurations(Long offeringId, Collection<Student> students, Collection<Configuration> configurations)
InitialSectioning.getGroups()
.
offeringId
- instructional offering idstudents
- list of students to be sectionedconfigurations
- list of configurations the students are to be sectioned into
InitialSectioning.Group
protected InitialSectioning.Group[] studentsToLectures(Long offeringId, Collection<Student> students, Collection<Lecture> lectures)
InitialSectioning.getGroups()
.
offeringId
- instructional offering idstudents
- list of students to be sectionedlectures
- list of lectures the students are to be sectioned into
InitialSectioning.Group
public boolean hasFinalSectioning()
hasFinalSectioning
in interface StudentSectioning
public void switchStudents(TimetableModel model)
switchStudents
in interface StudentSectioning
public void resection(Lecture lecture, boolean recursive, boolean configAsWell)
resection
in interface StudentSectioning
lecture
- given lecturerecursive
- recursively resection lectures affected by a student swapconfigAsWell
- resection students between configurations as well
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |