## Uses of Class
org.cpsolver.studentsct.model.Student

- Packages that use Student
  Package | Description
  --- | ---
  org.cpsolver.studentsct | Student Sectioning Solver.
  org.cpsolver.studentsct.constraint | Student Sectioning: Constraints.
  org.cpsolver.studentsct.extension | Student Sectioning: Various Extensions.
  org.cpsolver.studentsct.filter | Various student filters.
  org.cpsolver.studentsct.heuristics.selection | Student Sectioning: Various Neighbour Selection Criteria.
  org.cpsolver.studentsct.heuristics.studentord | Online Student Sectioning Test: various students orderings
  org.cpsolver.studentsct.model | Student Sectioning: Model.
  org.cpsolver.studentsct.online | Online Student Sectioning Solver.
  org.cpsolver.studentsct.online.selection | Online Student Sectioning Solver: Selection Weights and Heuristics.
  org.cpsolver.studentsct.report | Student Sectioning: Various Reports.
  org.cpsolver.studentsct.reservation | Student Sectioning: Reservations.

- - ### Uses of Student in org.cpsolver.studentsct

    Methods in org.cpsolver.studentsct that return Student
    Modifier and Type | Method and Description
    --- | ---
    `Student` | StudentSctBBTest.`getStudent()` Return the given student
    `protected Student` | StudentSectioningXMLLoader.`loadStudent(Element studentEl, Map<Long,Offering> offeringTable)` Load student

    Methods in org.cpsolver.studentsct that return types with arguments of type Student
    Modifier and Type | Method and Description
    --- | ---
    `Set<Student>` | StudentSectioningModel.StudentSectioningModelContext.`getCompleteStudents()` Students with complete schedules (see `isComplete(Assignment)`)
    `List<Student>` | StudentSectioningModel.`getStudents()` Students

    Methods in org.cpsolver.studentsct with parameters of type Student
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | Test.ExtraStudentFilter.`accept(Student student)`
    `void` | StudentSectioningModel.`addStudent(Student student)` Add a student into the model
    `CourseRequest` | StudentSectioningXMLLoader.`loadCourseRequest(Element requestEl, Student student, Map<Long,Offering> offeringTable, Map<Long,Course> courseTable)` Load course request
    `FreeTimeRequest` | StudentSectioningXMLLoader.`loadFreeTime(Element requestEl, Student student)` Load free time request
    `protected Request` | StudentSectioningXMLLoader.`loadRequest(Element requestEl, Student student, Map<Long,Offering> offeringTable, Map<Long,Course> courseTable)` Load request
    `void` | StudentSectioningModel.`removeStudent(Student student)` Remove a student from the model
    `protected void` | StudentSectioningXMLSaver.`saveStudent(Element studentEl, Student student)` Save student
    `static void` | StudentPreferencePenalties.`setPenalties(Student student, int distributionType)` Set the computed penalties to all sections of all requests of the given student

    Constructors in org.cpsolver.studentsct with parameters of type Student
    Constructor and Description
    `StudentSctBBTest(Student student)` Constructor

  - ### Uses of Student in org.cpsolver.studentsct.constraint

    Methods in org.cpsolver.studentsct.constraint that return Student
    Modifier and Type | Method and Description
    --- | ---
    `Student` | LinkedSections.LinkedSectionsConstraint.`getStudent()` Return student

    Constructors in org.cpsolver.studentsct.constraint with parameters of type Student
    Constructor and Description
    `LinkedSectionsConstraint(Student student, Collection<Request> requests)` Constructor
    `StudentConflict(Student student)` Constructor

  - ### Uses of Student in org.cpsolver.studentsct.extension

    Methods in org.cpsolver.studentsct.extension that return Student
    Modifier and Type | Method and Description
    --- | ---
    `Student` | DistanceConflict.Conflict.`getStudent()` Related student
    `Student` | StudentQuality.Conflict.`getStudent()` Related student
    `Student` | TimeOverlapsCounter.Conflict.`getStudent()` Related student

    Methods in org.cpsolver.studentsct.extension with parameters of type Student
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | StudentQuality.`hasDistanceConflict(Student student, Section s1, Section s2)`
    `boolean` | DistanceConflict.`inConflict(Student student, Section s1, Section s2)` Return true if the given two sections are in distance conflict.
    `boolean` | StudentQuality.Type.`isApplicable(StudentQuality.Context cx, Student student, Request r1, Request r2)`
    `boolean` | StudentQuality.Quality.`isApplicable(StudentQuality.Context cx, Student student, Request r1, Request r2)` Check if the metric is applicable for the given student, between the given two requests
    `boolean` | StudentQuality.`isApplicable(StudentQuality.Type type, Student student, Request r1, Request r2)` Check whether the given type is applicable for the student and the two requests.

    Constructors in org.cpsolver.studentsct.extension with parameters of type Student
    Constructor and Description
    `Conflict(Student student, Enrollment e1, Section s1, Enrollment e2, Section s2)` Constructor
    `Conflict(Student student, int share, Enrollment e1, SctAssignment a1, Enrollment e2, SctAssignment a2)` Constructor
    `Conflict(Student student, StudentQuality.Type type, int penalty, Enrollment e1, SctAssignment a1, Enrollment e2, SctAssignment a2)` Constructor
    `Conflict(Student student, StudentQuality.Type type, int penalty, Enrollment e1, SctAssignment a1, SctAssignment a2)`
    `FreeTimes(Student student)`
    `Unavailabilities(Student student)`

  - ### Uses of Student in org.cpsolver.studentsct.filter

    Methods in org.cpsolver.studentsct.filter with parameters of type Student
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | CombinedStudentFilter.`accept(Student student)` A student is accepted if it is accepted by the first and/or the second filter
    `boolean` | FreshmanStudentFilter.`accept(Student student)` Accept student.
    `boolean` | PriortyStudentFilter.`accept(Student student)`
    `boolean` | RandomStudentFilter.`accept(Student student)` A student is accepted with the given probability
    `boolean` | RealStudentFilter.`accept(Student student)` Accept student.
    `boolean` | ReverseStudentFilter.`accept(Student student)` Accept student.
    `boolean` | StudentFilter.`accept(Student student)` Accept student

  - ### Uses of Student in org.cpsolver.studentsct.heuristics.selection

    Fields in org.cpsolver.studentsct.heuristics.selection declared as Student
    Modifier and Type | Field and Description
    --- | ---
    `protected Student` | BranchBoundSelection.Selection.`iStudent` Student

    Fields in org.cpsolver.studentsct.heuristics.selection with type parameters of type Student
    Modifier and Type | Field and Description
    --- | ---
    `protected LinkedList<Student>` | BranchBoundSelection.`iStudents`
    `protected List<Student>` | PriorityConstructionSelection.`iStudents`
    `protected Iterator<Student>` | PriorityConstructionSelection.`iStudentsEnumeration`

    Methods in org.cpsolver.studentsct.heuristics.selection that return Student
    Modifier and Type | Method and Description
    --- | ---
    `Student` | BranchBoundSelection.BranchBoundNeighbour.`getStudent()` Student
    `Student` | SwapStudentSelection.SwapStudentNeighbour.`getStudent()`
    `protected Student` | BranchBoundSelection.`nextStudent()`
    `protected Student` | SwapStudentSelection.`nextStudent()`

    Methods in org.cpsolver.studentsct.heuristics.selection that return types with arguments of type Student
    Modifier and Type | Method and Description
    --- | ---
    `Set<Student>` | ProblemStudentsProvider.`getProblemStudents()` Set of problematic students (`Student` objects).
    `Set<Student>` | SwapStudentSelection.`getProblemStudents()` List of problematic students
    `Set<Student>` | SwapStudentSelection.Selection.`getProblemStudents()` Set of problematic students computed in the last selection

    Methods in org.cpsolver.studentsct.heuristics.selection with parameters of type Student
    Modifier and Type | Method and Description
    --- | ---
    `void` | BranchBoundSelection.`addStudent(Student student)`
    `void` | SwapStudentSelection.`addStudent(Student student)`
    `BranchBoundSelection.Selection` | BranchBoundSelection.`getSelection(Assignment<Request,Enrollment> assignment, Student student)` Branch & bound selection for a student
    `BranchBoundSelection.Selection` | CriticalCoursesBranchAndBoundSelection.`getSelection(Assignment<Request,Enrollment> assignment, Student student)`
    `BranchBoundSelection.Selection` | MinCreditBranchAndBoundSelection.`getSelection(Assignment<Request,Enrollment> assignment, Student student)`
    `BranchBoundSelection.Selection` | OnlineSelection.`getSelection(Assignment<Request,Enrollment> assignment, Student student)` Branch & bound selection for a student
    `SwapStudentSelection.Selection` | SwapStudentSelection.`getSelection(Assignment<Request,Enrollment> assignment, Student student)` Selection subclass for a student
    `void` | OnlineSelection.`updateSpace(Assignment<Request,Enrollment> assignment, Student student)` Update online sectioning info after the given student is sectioned

    Method parameters in org.cpsolver.studentsct.heuristics.selection with type arguments of type Student
    Modifier and Type | Method and Description
    --- | ---
    `static Enrollment` | SwapStudentSelection.`bestSwap(Assignment<Request,Enrollment> assignment, Enrollment conflict, Enrollment enrl, Set<Student> problematicStudents)` Identify the best swap for the given student

    Constructors in org.cpsolver.studentsct.heuristics.selection with parameters of type Student
    Constructor and Description
    `BranchBoundNeighbour(Student student, double value, Enrollment[] assignment)` Constructor
    `CriticalCoursesSelection(Student student, Assignment<Request,Enrollment> assignment)`
    `EpsilonSelection(Student student, Assignment<Request,Enrollment> assignment, BranchBoundSelection.Selection selection)` Constructor
    `InitialSelection(Student student, Assignment<Request,Enrollment> assignment)`
    `MinCreditSelection(Student student, Assignment<Request,Enrollment> assignment)`
    `Selection(Student student, Assignment<Request,Enrollment> assignment)` Constructor
    `Selection(Student student, Assignment<Request,Enrollment> assignment)` Constructor
    `UnassignStudentNeighbour(Student student, Assignment<Request,Enrollment> assignment, Request.RequestPriority priority)` Constructor

  - ### Uses of Student in org.cpsolver.studentsct.heuristics.studentord

    Methods in org.cpsolver.studentsct.heuristics.studentord that return types with arguments of type Student
    Modifier and Type | Method and Description
    --- | ---
    `List<Student>` | StudentChoiceOrder.`order(List<Student> students)` Order the given list of students
    `List<Student>` | StudentMajorOrder.`order(List<Student> students)` Order the given list of students
    `List<Student>` | StudentOrder.`order(List<Student> students)` Return the given set of students in a particular order
    `List<Student>` | StudentRandomOrder.`order(List<Student> students)` Return the given set of students in a random order
    `List<Student>` | StudentRandomRealFirstOrder.`order(List<Student> students)` Return the given set of students in a random order, however, all real students before last-like (`isDummy()` is true) students.

    Methods in org.cpsolver.studentsct.heuristics.studentord with parameters of type Student
    Modifier and Type | Method and Description
    --- | ---
    `double` | StudentChoiceOrder.`avgNrChoices(Student student)` Average number of choices for each student
    `int` | StudentByPriorityRequestDate.`compare(Student s1, Student s2)`
    `int` | StudentByRequestDate.`compare(Student s1, Student s2)`
    `int` | StudentChoiceOrder.`compare(Student s1, Student s2)`
    `int` | StudentChoiceRealFirstOrder.`compare(Student s1, Student s2)`
    `int` | StudentGroupsChoiceRealFirstOrder.`compare(Student s1, Student s2)`
    `int` | StudentMajorOrder.`compare(Student s1, Student s2)`
    `Long` | StudentByRequestDate.`getRequestDate(Student s)`
    `double` | StudentGroupsChoiceRealFirstOrder.`nrGroups(Student s)` Average number of request groups that the student is involved in

    Method parameters in org.cpsolver.studentsct.heuristics.studentord with type arguments of type Student
    Modifier and Type | Method and Description
    --- | ---
    `List<Student>` | StudentChoiceOrder.`order(List<Student> students)` Order the given list of students
    `List<Student>` | StudentMajorOrder.`order(List<Student> students)` Order the given list of students
    `List<Student>` | StudentOrder.`order(List<Student> students)` Return the given set of students in a particular order
    `List<Student>` | StudentRandomOrder.`order(List<Student> students)` Return the given set of students in a random order
    `List<Student>` | StudentRandomRealFirstOrder.`order(List<Student> students)` Return the given set of students in a random order, however, all real students before last-like (`isDummy()` is true) students.

  - ### Uses of Student in org.cpsolver.studentsct.model

    Methods in org.cpsolver.studentsct.model that return Student
    Modifier and Type | Method and Description
    --- | ---
    `Student` | Enrollment.`getStudent()` Student
    `Student` | Request.`getStudent()` Student to which this request belongs
    `Student` | Unavailability.`getStudent()` Student

    Methods in org.cpsolver.studentsct.model with parameters of type Student
    Modifier and Type | Method and Description
    --- | ---
    `int` | Student.`compareTo(Student s)`
    `Course` | Offering.`getCourse(Student student)` Return course, under which the given student enrolls into this offering.
    `boolean` | Student.StudentPriority.`isHigher(Student s)`
    `boolean` | Student.StudentPriority.`isSame(Student s)`
    `boolean` | Student.StudentPriority.`isSameOrHigher(Student s)`

    Constructors in org.cpsolver.studentsct.model with parameters of type Student
    Constructor and Description
    `CourseRequest(long id, int priority, boolean alternative, Student student, List<Course> courses, boolean waitlist, boolean critical, Long timeStamp)` Constructor
    `CourseRequest(long id, int priority, boolean alternative, Student student, List<Course> courses, boolean waitlist, Long timeStamp)` Constructor
    `CourseRequest(long id, int priority, boolean alternative, Student student, List<Course> courses, boolean waitlist, Request.RequestPriority importance, Long timeStamp)` Constructor
    `FreeTimeRequest(long id, int priority, boolean alternative, Student student, TimeLocation time)` Constructor
    `Request(long id, int priority, boolean alternative, Student student)` Constructor
    `Unavailability(Student student, Section section, boolean canOverlap)` Constructor

  - ### Uses of Student in org.cpsolver.studentsct.online

    Methods in org.cpsolver.studentsct.online with parameters of type Student
    Modifier and Type | Method and Description
    --- | ---
    `protected Request` | Test.`addRequest(Student student, Student original, Request request, Map<Long,Section> classTable, StudentSectioningModel model)`
    `protected Course` | Test.`clone(Course course, long studentId, Student originalStudent, Map<Long,Section> classTable, StudentSectioningModel model)`
    `boolean` | OnlineReservation.`isApplicable(Student student)`
    `boolean` | Test.`section(Student original)`

    Constructor parameters in org.cpsolver.studentsct.online with type arguments of type Student
    Constructor and Description
    `Executor(Iterator<Student> students)`

  - ### Uses of Student in org.cpsolver.studentsct.online.selection

    Fields in org.cpsolver.studentsct.online.selection declared as Student
    Modifier and Type | Field and Description
    --- | ---
    `protected Student` | MultiCriteriaBranchAndBoundSelection.`iStudent` Student

    Methods in org.cpsolver.studentsct.online.selection that return Student
    Modifier and Type | Method and Description
    --- | ---
    `protected Student` | OnlineSectioningCriterion.`getStudent()`

    Methods in org.cpsolver.studentsct.online.selection with parameters of type Student
    Modifier and Type | Method and Description
    --- | ---
    `BranchBoundSelection.BranchBoundNeighbour` | MultiCriteriaBranchAndBoundSelection.`select(Assignment<Request,Enrollment> assignment, Student student)`
    `BranchBoundSelection.BranchBoundNeighbour` | OnlineSectioningSelection.`select(Assignment<Request,Enrollment> assignment, Student student)` Compute student schedule
    `BranchBoundSelection.BranchBoundNeighbour` | SuggestionSelection.`select(Assignment<Request,Enrollment> assignment, Student student)`
    `BranchBoundSelection.BranchBoundNeighbour` | MultiCriteriaBranchAndBoundSelection.`select(Assignment<Request,Enrollment> assignment, Student student, MultiCriteriaBranchAndBoundSelection.SelectionCriterion comparator)`

    Constructors in org.cpsolver.studentsct.online.selection with parameters of type Student
    Constructor and Description
    `BestPenaltyCriterion(Student student, OnlineSectioningModel model)`
    `EqualWeightCriterion(Student student, OnlineSectioningModel model, Assignment<Request,Enrollment> assignment, Hashtable<CourseRequest,Set<Section>> preferredSections)`
    `MultiCriteriaBranchAndBoundSuggestions(DataProperties properties, Student student, Assignment<Request,Enrollment> assignment, Hashtable<CourseRequest,Set<Section>> requiredSections, Set<FreeTimeRequest> requiredFreeTimes, Hashtable<CourseRequest,Set<Section>> preferredSections, Request selectedRequest, Section selectedSection, SuggestionsBranchAndBound.SuggestionFilter filter, double maxSectionsWithPenalty, boolean priorityWeighting)` Constructor
    `OnlineSectioningCriterion(Student student, OnlineSectioningModel model, Assignment<Request,Enrollment> assignment, Hashtable<CourseRequest,Set<Section>> preferredSections)` Constructor
    `Selection(Student student, Assignment<Request,Enrollment> assignment)`
    `SuggestionsBranchAndBound(DataProperties properties, Student student, Assignment<Request,Enrollment> assignment, Hashtable<CourseRequest,Set<Section>> requiredSections, Set<FreeTimeRequest> requiredFreeTimes, Hashtable<CourseRequest,Set<Section>> preferredSections, Request selectedRequest, Section selectedSection, SuggestionsBranchAndBound.SuggestionFilter filter, double maxSectionsWithPenalty)` Constructor

  - ### Uses of Student in org.cpsolver.studentsct.report

    Methods in org.cpsolver.studentsct.report with parameters of type Student
    Modifier and Type | Method and Description
    --- | ---
    `protected String` | AccommodationConflictsTable.`advisor(Student student)`
    `protected String` | AccommodationConflictsTable.`curriculum(Student student)`
    `protected String` | AccommodationConflictsTable.`group(Student student)`

  - ### Uses of Student in org.cpsolver.studentsct.reservation

    Methods in org.cpsolver.studentsct.reservation with parameters of type Student
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | CourseReservation.`isApplicable(Student student)` Check the area, classifications and majors
    `boolean` | CourseRestriction.`isApplicable(Student student)` Check the area, classifications and majors
    `boolean` | CurriculumReservation.`isApplicable(Student student)` Check the area, classifications and majors
    `boolean` | CurriculumRestriction.`isApplicable(Student student)` Check the area, classifications and majors
    `boolean` | DummyReservation.`isApplicable(Student student)` Dummy reservation is not applicable to any students
    `boolean` | IndividualReservation.`isApplicable(Student student)` Reservation is applicable for all students in the reservation
    `boolean` | IndividualRestriction.`isApplicable(Student student)` Restriction is applicable for all students in the restriction
    `boolean` | LearningCommunityReservation.`isApplicable(Student student)` Check the student group and the course
    `abstract boolean` | Reservation.`isApplicable(Student student)` Returns true if the student is applicable for the reservation
    `abstract boolean` | Restriction.`isApplicable(Student student)` Returns true if the student is applicable for the restriction