## Uses of Class
org.cpsolver.coursett.model.Lecture

- Packages that use Lecture
  Package | Description
  --- | ---
  org.cpsolver.coursett | University Course Timetabling.
  org.cpsolver.coursett.constraint | University Course Timetabling: Constraints.
  org.cpsolver.coursett.criteria | University Course Timetabling: Criteria.
  org.cpsolver.coursett.criteria.additional | University Course Timetabling: Additional (Experimental) Criteria.
  org.cpsolver.coursett.criteria.placement | University Course Timetabling: Placement Selection Criteria.
  org.cpsolver.coursett.custom | University Course Timetabling: Various customizations.
  org.cpsolver.coursett.heuristics | University Course Timetabling: Heuristics.
  org.cpsolver.coursett.model | University Course Timetabling: Model.
  org.cpsolver.coursett.neighbourhoods | University Course Timetabling: Various Neighbourhoods.
  org.cpsolver.coursett.sectioning | Additional Student Sectioning Algorithms.

- - ### Uses of Lecture in org.cpsolver.coursett

    Fields in org.cpsolver.coursett with type parameters of type Lecture
    Modifier and Type | Field and Description
    --- | ---
    `protected Assignment<Lecture,Placement>` | DomainChart.`iAssignment`

    Methods in org.cpsolver.coursett that return types with arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `Solver<Lecture,Placement>` | TimetableXMLLoader.`getSolver()`

    Method parameters in org.cpsolver.coursett with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `void` | Test.`bestCleared(Solution<Lecture,Placement> solution)`
    `void` | Test.`bestRestored(Solution<Lecture,Placement> solution)`
    `void` | Test.`bestSaved(Solution<Lecture,Placement> solution)`
    `protected void` | TimetableXMLLoader.`doLoad(Solution<Lecture,Placement> currentSolution, Element root)`
    `protected void` | TimetableSolver.`fixCompleteSolution(Solution<Lecture,Placement> solution, double startTime)` Deprecated. Try to improve existing solution by backtracking search of very limited depth.
    `void` | Test.`getInfo(Solution<Lecture,Placement> solution, Map<String,String> info)`
    `void` | Test.`getInfo(Solution<Lecture,Placement> solution, Map<String,String> info, Collection<Lecture> variables)`
    `void` | Test.`getInfo(Solution<Lecture,Placement> solution, Map<String,String> info, Collection<Lecture> variables)`
    `void` | Test.`init(Solver<Lecture,Placement> solver)` Solver initialization
    `void` | TimetableXMLLoader.`load(Solution<Lecture,Placement> currentSolution)`
    `void` | TimetableXMLLoader.`load(Solution<Lecture,Placement> currentSolution, Document document)`
    `void` | Test.`notify(Solution<Lecture,Placement> solution)` Add a line into the output CSV file when a enw best solution is found.
    `protected void` | TimetableSolver.`onAssigned(double startTime, Solution<Lecture,Placement> solution)` Deprecated.
    `static void` | Test.`printRoomInfo(PrintWriter pw, TimetableModel model, Assignment<Lecture,Placement> assignment)` Print room utilization
    `static void` | Test.`printSomeStuff(Solution<Lecture,Placement> solution)` Create info.txt with some more information about the problem
    `static void` | Test.`saveOutputCSV(Solution<Lecture,Placement> s, File file)`
    `void` | TimetableXMLLoader.`setSolver(Solver<Lecture,Placement> solver)`
    `void` | Test.`solutionUpdated(Solution<Lecture,Placement> solution)`

    Constructor parameters in org.cpsolver.coursett with type arguments of type Lecture
    Constructor and Description
    `TimetableLoader(TimetableModel model, Assignment<Lecture,Placement> assignment)` Constructor
    `TimetableSaver(Solver<Lecture,Placement> solver)` Constructor
    `TimetableXMLLoader(TimetableModel model, Assignment<Lecture,Placement> assignment)`
    `TimetableXMLSaver(Solver<Lecture,Placement> solver)`

  - ### Uses of Lecture in org.cpsolver.coursett.constraint

    Methods in org.cpsolver.coursett.constraint that return Lecture
    Modifier and Type | Method and Description
    --- | ---
    `Lecture` | ClassLimitConstraint.`getParentLecture()`

    Methods in org.cpsolver.coursett.constraint that return types with arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `Set<Lecture>` | MaxConsecutiveDaysFlexibleConstraint.MaxConsecutiveDaysFlexibleConstraintContext.`candidates(Placement value, Set<Placement> conflicts)`
    `Set<Lecture>` | MaxDaysFlexibleConstraint.MaxDaysFlexibleConstraintContext.`candidates(Placement value, Set<Placement> conflicts)`
    `Set<Lecture>` | MaxHalfDaysFlexibleConstraint.MaxHalfDaysFlexibleConstraintContext.`candidates(Placement value, Set<Placement> conflicts)`
    `Set<Lecture>` | MaxWeeksFlexibleConstraint.MaxWeeksFlexibleConstraintContext.`candidates(Placement value, Set<Placement> conflicts)`
    `protected Criterion<Lecture,Placement>` | DepartmentSpreadConstraint.`getCriterion()`
    `protected Criterion<Lecture,Placement>` | SpreadConstraint.`getCriterion()`
    `Map<RoomLocation,Set<Lecture>>` | MinimizeNumberOfUsedRoomsConstraint.MinimizeNumberOfUsedRoomsConstraintContext.`getUsedRooms()`

    Methods in org.cpsolver.coursett.constraint with parameters of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `void` | ClassLimitConstraint.`addParentAdepts(Assignment<Lecture,Placement> assignment, Collection<Placement> adepts, Lecture parent, Placement value, Set<Placement> conflicts)`
    `void` | GroupConstraint.`addVariable(Lecture lecture)`
    `void` | IgnoreStudentConflictsConstraint.`addVariable(Lecture variable)`
    `void` | SpreadConstraint.`addVariable(Lecture lecture)`
    `protected boolean` | ExtendedStudentConflicts.`checkStudentForStudentConflicts(Lecture l1, Lecture l2)`
    `boolean` | RoomConstraint.RoomConstraintContext.`inConflict(Lecture lecture, TimeLocation time)`
    `boolean` | InstructorConstraint.`isAvailable(Lecture lecture, Placement placement)`
    `boolean` | InstructorConstraint.`isAvailable(Lecture lecture, TimeLocation time)`
    `boolean` | RoomConstraint.`isAvailable(Lecture lecture, TimeLocation time, Long scheduler)`
    `boolean` | GroupConstraint.`isChildrenNotOverlap(Assignment<Lecture,Placement> assignment, Lecture lec1, Placement plc1, Lecture lec2, Placement plc2)`
    `protected boolean` | ExtendedStudentConflicts.`isIgnoreClass(Lecture lecture)`
    `long` | JenrlConstraint.`jenrl(Assignment<Lecture,Placement> assignment, Lecture variable, Placement value)` Number of joined enrollments if the given value is assigned to the given variable
    `void` | GroupConstraint.`removeVariable(Lecture lecture)`
    `void` | ExtendedStudentConflicts.`variableAdded(Lecture variable)`
    `void` | ExtendedStudentConflicts.`variableRemoved(Lecture variable)`

    Method parameters in org.cpsolver.coursett.constraint with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `void` | ClassLimitConstraint.`addParentAdepts(Assignment<Lecture,Placement> assignment, Collection<Placement> adepts, Lecture parent, Placement value, Set<Placement> conflicts)`
    `void` | ExtendedStudentConflicts.`afterAssigned(Assignment<Lecture,Placement> assignment, long iteration, Placement value)`
    `void` | ExtendedStudentConflicts.`afterUnassigned(Assignment<Lecture,Placement> assignment, long iteration, Placement value)`
    `boolean` | JenrlConstraint.`areStudentConflictsDistance(Assignment<Lecture,Placement> assignment)`
    `boolean` | JenrlConstraint.`areStudentConflictsDistance(Assignment<Lecture,Placement> assignment, Placement value)`
    `boolean` | JenrlConstraint.`areStudentConflictsWorkday(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | RoomConstraint.`assigned(Assignment<Lecture,Placement> assignment, long iteration, Placement placement)`
    `void` | DiscouragedRoomConstraint.DiscouragedRoomConstraintContext.`assigned(Assignment<Lecture,Placement> assignment, Placement placement)`
    `void` | FlexibleConstraint.FlexibleConstraintContext.`assigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | GroupConstraint.GroupConstraintContext.`assigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | InstructorConstraint.InstructorConstraintContext.`assigned(Assignment<Lecture,Placement> assignment, Placement placement)`
    `void` | JenrlConstraint.JenrlConstraintContext.`assigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | MaxBreaksFlexibleConstraint.MaxBreaksFlexibleConstraintContext.`assigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | MaxConsecutiveDaysFlexibleConstraint.MaxConsecutiveDaysFlexibleConstraintContext.`assigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | MaxDaysFlexibleConstraint.MaxDaysFlexibleConstraintContext.`assigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | MaxHalfDaysFlexibleConstraint.MaxHalfDaysFlexibleConstraintContext.`assigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | MaxWeeksFlexibleConstraint.MaxWeeksFlexibleConstraintContext.`assigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | MinimizeNumberOfUsedGroupsOfTime.MinimizeNumberOfUsedGroupsOfTimeContext.`assigned(Assignment<Lecture,Placement> assignment, Placement placement)`
    `void` | MinimizeNumberOfUsedRoomsConstraint.MinimizeNumberOfUsedRoomsConstraintContext.`assigned(Assignment<Lecture,Placement> assignment, Placement placement)`
    `void` | RoomConstraint.RoomConstraintContext.`assigned(Assignment<Lecture,Placement> assignment, Placement placement)`
    `void` | SoftInstructorConstraint.SoftInstructorConstraintContext.`assigned(Assignment<Lecture,Placement> assignment, Placement placement)`
    `void` | SpreadConstraint.SpreadConstraintContext.`assigned(Assignment<Lecture,Placement> assignment, Placement placement)`
    `void` | ExtendedStudentConflicts.`beforeAssigned(Assignment<Lecture,Placement> assignment, long iteration, Placement value)`
    `void` | ExtendedStudentConflicts.`beforeUnassigned(Assignment<Lecture,Placement> assignment, long iteration, Placement value)`
    `void` | ClassLimitConstraint.`computeAdepts(Assignment<Lecture,Placement> assignment, Collection<Placement> adepts, List<Lecture> variables, Placement value, Set<Placement> conflicts)`
    `void` | ClassLimitConstraint.`computeAdepts(Assignment<Lecture,Placement> assignment, Collection<Placement> adepts, List<Lecture> variables, Placement value, Set<Placement> conflicts)`
    `void` | BreakFlexibleConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `void` | ClassLimitConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `void` | DiscouragedRoomConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `void` | ExtendedStudentConflicts.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement placement, Set<Placement> conflicts)`
    `void` | GroupConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `void` | IgnoreStudentConflictsConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `void` | InstructorConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement placement, Set<Placement> conflicts)`
    `void` | JenrlConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `void` | MaxBlockFlexibleConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `void` | MaxBreaksFlexibleConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `void` | MaxConsecutiveDaysFlexibleConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `void` | MaxDaysFlexibleConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `void` | MaxHalfDaysFlexibleConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `void` | MaxHolesFlexibleConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `void` | MaxWeeksFlexibleConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `void` | MinimizeNumberOfUsedGroupsOfTime.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement placement, Set<Placement> conflicts)`
    `void` | MinimizeNumberOfUsedRoomsConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement placement, Set<Placement> conflicts)`
    `void` | NoStudentOnlineConflicts.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement placement, Set<Placement> conflicts)`
    `void` | RoomConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement placement, Set<Placement> conflicts)`
    `void` | SoftInstructorConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement placement, Set<Placement> conflicts)`
    `void` | SpreadConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement placement, Set<Placement> conflicts)`
    `void` | GroupConstraint.`computeConflicts(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts, boolean fwdCheck)`
    `void` | GroupConstraint.`computeConflictsNoForwardCheck(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `void` | ExtendedStudentConflicts.`constraintAdded(Constraint<Lecture,Placement> constraint)`
    `void` | ExtendedStudentConflicts.`constraintRemoved(Constraint<Lecture,Placement> constraint)`
    `protected int` | SoftInstructorConstraint.SoftInstructorConstraintContext.`countConflicts(Assignment<Lecture,Placement> assignment)`
    `int` | MaxHolesFlexibleConstraint.`countHoles(Assignment<Lecture,Placement> assignment, int dayCode, Set<Placement> conflicts, Placement value, HashMap<Lecture,Placement> assignments, BitSet week)` Count number of holes (free slots) between the given classes on given day and week.
    `int` | MaxHolesFlexibleConstraint.`countHoles(Assignment<Lecture,Placement> assignment, int dayCode, Set<Placement> conflicts, Placement value, HashMap<Lecture,Placement> assignments, BitSet week)` Count number of holes (free slots) between the given classes on given day and week.
    `int` | InstructorConstraint.InstructorConstraintContext.`countPreference(Assignment<Lecture,Placement> assignment)`
    `RoomConstraint.RoomConstraintContext` | DiscouragedRoomConstraint.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `FlexibleConstraint.FlexibleConstraintContext` | FlexibleConstraint.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `GroupConstraint.GroupConstraintContext` | GroupConstraint.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `InstructorConstraint.InstructorConstraintContext` | InstructorConstraint.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `JenrlConstraint.JenrlConstraintContext` | JenrlConstraint.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `FlexibleConstraint.FlexibleConstraintContext` | MaxBreaksFlexibleConstraint.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `FlexibleConstraint.FlexibleConstraintContext` | MaxConsecutiveDaysFlexibleConstraint.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `FlexibleConstraint.FlexibleConstraintContext` | MaxDaysFlexibleConstraint.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `FlexibleConstraint.FlexibleConstraintContext` | MaxHalfDaysFlexibleConstraint.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `FlexibleConstraint.FlexibleConstraintContext` | MaxHolesFlexibleConstraint.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `FlexibleConstraint.FlexibleConstraintContext` | MaxWeeksFlexibleConstraint.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `MinimizeNumberOfUsedGroupsOfTime.MinimizeNumberOfUsedGroupsOfTimeContext` | MinimizeNumberOfUsedGroupsOfTime.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `MinimizeNumberOfUsedRoomsConstraint.MinimizeNumberOfUsedRoomsConstraintContext` | MinimizeNumberOfUsedRoomsConstraint.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `RoomConstraint.RoomConstraintContext` | RoomConstraint.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `InstructorConstraint.InstructorConstraintContext` | SoftInstructorConstraint.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `SpreadConstraint.SpreadConstraintContext` | SpreadConstraint.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `int` | ClassLimitConstraint.`currentClassLimit(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `void` | JenrlConstraint.`decJenrl(Assignment<Lecture,Placement> assignment, Student student)` Decrement the number of joined enrollments (during student final sectioning)
    `boolean` | GroupConstraint.`forwardCheck(Assignment<Lecture,Placement> assignment, Placement value, Set<GroupConstraint> ignore, int depth)`
    `void` | GroupConstraint.`forwardCheck(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts, Set<GroupConstraint> ignore, int depth)`
    `Placement` | SpreadConstraint.`getAdept(Assignment<Lecture,Placement> assignment, Placement placement, int[][] nrCourses, Set<Placement> conflicts)`
    `List<FlexibleConstraint.Block>` | MaxBlockFlexibleConstraint.`getBlocks(Assignment<Lecture,Placement> assignment, int dayCode, Set<Placement> conflicts, Placement value, HashMap<Lecture,Placement> assignments, BitSet week)`
    `List<FlexibleConstraint.Block>` | MaxBlockFlexibleConstraint.`getBlocks(Assignment<Lecture,Placement> assignment, int dayCode, Set<Placement> conflicts, Placement value, HashMap<Lecture,Placement> assignments, BitSet week)`
    `List<FlexibleConstraint.Block>` | MaxBreaksFlexibleConstraint.`getBlocks(Assignment<Lecture,Placement> assignment, int dayCode, Set<Placement> conflicts, Placement value, HashMap<Lecture,Placement> assignments, BitSet week)`
    `List<FlexibleConstraint.Block>` | MaxBreaksFlexibleConstraint.`getBlocks(Assignment<Lecture,Placement> assignment, int dayCode, Set<Placement> conflicts, Placement value, HashMap<Lecture,Placement> assignments, BitSet week)`
    `List<FlexibleConstraint.Block>` | BreakFlexibleConstraint.`getBreakBlocks(Assignment<Lecture,Placement> assignment, int dayCode, Set<Placement> conflicts, Placement value, HashMap<Lecture,Placement> assignments, BitSet week)` Creates a list of consecutive blocks with back-to-back classes.
    `List<FlexibleConstraint.Block>` | BreakFlexibleConstraint.`getBreakBlocks(Assignment<Lecture,Placement> assignment, int dayCode, Set<Placement> conflicts, Placement value, HashMap<Lecture,Placement> assignments, BitSet week)` Creates a list of consecutive blocks with back-to-back classes.
    `int` | SoftInstructorConstraint.`getConflicts(Assignment<Lecture,Placement> assignment)`
    `int` | SoftInstructorConstraint.`getConflicts(Assignment<Lecture,Placement> assignment, Placement placement)`
    `int` | GroupConstraint.`getCurrentPreference(Assignment<Lecture,Placement> assignment)` Current constraint preference (0 if prohibited or required, depends on current satisfaction of the constraint)
    `int` | GroupConstraint.`getCurrentPreference(Assignment<Lecture,Placement> assignment, Placement placement)` Current constraint preference change (if given placement is assigned)
    `double` | FlexibleConstraint.`getCurrentPreference(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)` Return the current preference of the flexible constraint, considering conflicts and new assignments.
    `double` | FlexibleConstraint.`getCurrentPreference(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)` Return the current preference of the flexible constraint, considering conflicts and new assignments.
    `int` | SpreadConstraint.`getMaxPenalty(Assignment<Lecture,Placement> assignment, Placement placement)`
    `double` | BreakFlexibleConstraint.`getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)`
    `double` | BreakFlexibleConstraint.`getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)`
    `abstract double` | FlexibleConstraint.`getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)` Return current number of violations.
    `abstract double` | FlexibleConstraint.`getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)` Return current number of violations.
    `double` | MaxBlockFlexibleConstraint.`getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)`
    `double` | MaxBlockFlexibleConstraint.`getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)`
    `double` | MaxBreaksFlexibleConstraint.`getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)`
    `double` | MaxBreaksFlexibleConstraint.`getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)`
    `double` | MaxConsecutiveDaysFlexibleConstraint.`getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)`
    `double` | MaxConsecutiveDaysFlexibleConstraint.`getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)`
    `double` | MaxDaysFlexibleConstraint.`getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)`
    `double` | MaxDaysFlexibleConstraint.`getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)`
    `double` | MaxHalfDaysFlexibleConstraint.`getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)`
    `double` | MaxHalfDaysFlexibleConstraint.`getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)`
    `double` | MaxHolesFlexibleConstraint.`getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)` Count violations, that is weekly average free time that is over the limit in hours.
    `double` | MaxHolesFlexibleConstraint.`getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)` Count violations, that is weekly average free time that is over the limit in hours.
    `double` | MaxWeeksFlexibleConstraint.`getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)`
    `double` | MaxWeeksFlexibleConstraint.`getNrViolations(Assignment<Lecture,Placement> assignment, Set<Placement> conflicts, HashMap<Lecture,Placement> assignments)`
    `int` | MinimizeNumberOfUsedRoomsConstraint.MinimizeNumberOfUsedRoomsConstraintContext.`getOverLimit(Assignment<Lecture,Placement> assignment, Placement placement)`
    `int` | SpreadConstraint.`getPenalty(Assignment<Lecture,Placement> assignment)` Department balancing penalty for this department
    `int` | SpreadConstraint.`getPenalty(Assignment<Lecture,Placement> assignment, Placement placement)` Department balancing penalty of the given placement
    `int` | SpreadConstraint.`getPenaltyEstimate(Assignment<Lecture,Placement> assignment)`
    `int` | InstructorConstraint.`getPreference(Assignment<Lecture,Placement> assignment)`
    `int` | InstructorConstraint.`getPreference(Assignment<Lecture,Placement> assignment, Placement value)` Back-to-back preference of the given placement
    `int` | InstructorConstraint.`getPreferenceCombination(Assignment<Lecture,Placement> assignment, Placement value)`
    `protected Set<Placement>` | FlexibleConstraint.`getRelevantPlacements(Assignment<Lecture,Placement> assignment, int dayCode, Set<Placement> conflicts, Placement value, HashMap<Lecture,Placement> assignments, BitSet week)` Returns placements of variables assigned to this constraint with assignment which satisfy following conditions: They must be taught in the day included in dayCode.
    `protected Set<Placement>` | FlexibleConstraint.`getRelevantPlacements(Assignment<Lecture,Placement> assignment, int dayCode, Set<Placement> conflicts, Placement value, HashMap<Lecture,Placement> assignments, BitSet week)` Returns placements of variables assigned to this constraint with assignment which satisfy following conditions: They must be taught in the day included in dayCode.
    `List<Placement>` | RoomConstraint.`getResource(Assignment<Lecture,Placement> assignment, int slot)` Lookup table getResource()[slot] → lecture using this room placed in the given time slot (null if empty)
    `Placement[]` | RoomConstraint.`getResourceOfWeek(Assignment<Lecture,Placement> assignment, int startDay)`
    `void` | JenrlConstraint.`incJenrl(Assignment<Lecture,Placement> assignment, Student student)` Increment the number of joined enrollments (during student final sectioning)
    `boolean` | ClassLimitConstraint.`inConflict(Assignment<Lecture,Placement> assignment, Placement value)`
    `boolean` | DiscouragedRoomConstraint.`inConflict(Assignment<Lecture,Placement> assignment, Placement value)`
    `boolean` | ExtendedStudentConflicts.`inConflict(Assignment<Lecture,Placement> assignment, Placement placement)`
    `boolean` | GroupConstraint.`inConflict(Assignment<Lecture,Placement> assignment, Placement value)`
    `boolean` | InstructorConstraint.`inConflict(Assignment<Lecture,Placement> assignment, Placement placement)`
    `boolean` | JenrlConstraint.`inConflict(Assignment<Lecture,Placement> assignment, Placement value)`
    `boolean` | MaxConsecutiveDaysFlexibleConstraint.`inConflict(Assignment<Lecture,Placement> assignment, Placement value)`
    `boolean` | MaxDaysFlexibleConstraint.`inConflict(Assignment<Lecture,Placement> assignment, Placement value)`
    `boolean` | MaxHalfDaysFlexibleConstraint.`inConflict(Assignment<Lecture,Placement> assignment, Placement value)`
    `boolean` | MaxWeeksFlexibleConstraint.`inConflict(Assignment<Lecture,Placement> assignment, Placement value)`
    `boolean` | MinimizeNumberOfUsedRoomsConstraint.`inConflict(Assignment<Lecture,Placement> assignment, Placement placement)`
    `boolean` | NoStudentOnlineConflicts.`inConflict(Assignment<Lecture,Placement> assignment, Placement placement)`
    `boolean` | RoomConstraint.`inConflict(Assignment<Lecture,Placement> assignment, Placement placement)`
    `boolean` | SoftInstructorConstraint.`inConflict(Assignment<Lecture,Placement> assignment, Placement placement)`
    `boolean` | SoftInstructorConstraint.SoftInstructorConstraintContext.`inConflict(Assignment<Lecture,Placement> assignment, Placement placement)`
    `boolean` | SpreadConstraint.`inConflict(Assignment<Lecture,Placement> assignment, Placement placement)`
    `boolean` | ExtendedStudentConflicts.`init(Solver<Lecture,Placement> solver)`
    `boolean` | GroupConstraint.`isChildrenNotOverlap(Assignment<Lecture,Placement> assignment, Lecture lec1, Placement plc1, Lecture lec2, Placement plc2)`
    `boolean` | JenrlConstraint.`isInConflict(Assignment<Lecture,Placement> assignment)` True if the given two lectures overlap in time
    `boolean` | DiscouragedRoomConstraint.DiscouragedRoomConstraintContext.`isOverLimit(Assignment<Lecture,Placement> assignment, Placement value)`
    `boolean` | MinimizeNumberOfUsedRoomsConstraint.MinimizeNumberOfUsedRoomsConstraintContext.`isOverLimit(Assignment<Lecture,Placement> assignment, Placement placement)`
    `boolean` | GroupConstraint.`isSatisfied(Assignment<Lecture,Placement> assignment)`
    `boolean` | GroupConstraint.AssignmentPairCheck.`isSatisfied(Assignment<Lecture,Placement> assignment, GroupConstraint gc, Placement plc1, Placement plc2)` Check whether the constraint is satisfied for the given two assignments (required / preferred case)
    `boolean` | GroupConstraint.ParametrizedConstraintType.`isSatisfied(Assignment<Lecture,Placement> assignment, GroupConstraint gc, Placement plc1, Placement plc2)`
    `boolean` | GroupConstraint.ConstraintType.`isSatisfied(Assignment<Lecture,Placement> assignment, GroupConstraint gc, Placement plc1, Placement plc2)` True if a required or preferred constraint is satisfied between a pair of placements
    `boolean` | GroupConstraint.AssignmentParameterPairCheck.`isSatisfied(Assignment<Lecture,Placement> assignment, P parameter, GroupConstraint gc, Placement plc1, Placement plc2)` Check whether the constraint is satisfied for the given two assignments (required / preferred case)
    `boolean` | GroupConstraint.`isSatisfiedPair(Assignment<Lecture,Placement> assignment, Placement plc1, Placement plc2)`
    `boolean` | GroupConstraint.AssignmentPairCheck.`isViolated(Assignment<Lecture,Placement> assignment, GroupConstraint gc, Placement plc1, Placement plc2)` Check whether the constraint is satisfied for the given two assignments (prohibited / discouraged case)
    `boolean` | GroupConstraint.ParametrizedConstraintType.`isViolated(Assignment<Lecture,Placement> assignment, GroupConstraint gc, Placement plc1, Placement plc2)`
    `boolean` | GroupConstraint.ConstraintType.`isViolated(Assignment<Lecture,Placement> assignment, GroupConstraint gc, Placement plc1, Placement plc2)` True if a prohibited or discouraged constraint is satisfied between a pair of placements
    `boolean` | GroupConstraint.AssignmentParameterPairCheck.`isViolated(Assignment<Lecture,Placement> assignment, P parameter, GroupConstraint gc, Placement plc1, Placement plc2)` Check whether the constraint is satisfied for the given two assignments (prohibited / discouraged case)
    `long` | JenrlConstraint.`jenrl(Assignment<Lecture,Placement> assignment, Lecture variable, Placement value)` Number of joined enrollments if the given value is assigned to the given variable
    `protected int` | GroupConstraint.`nrSlotsADay(Assignment<Lecture,Placement> assignment, int dayCode, BitSet week, HashMap<Lecture,Placement> assignments, Set<Placement> conflicts)`
    `protected int` | GroupConstraint.`nrSlotsADay(Assignment<Lecture,Placement> assignment, int dayCode, BitSet week, HashMap<Lecture,Placement> assignments, Set<Placement> conflicts)`
    `protected int` | GroupConstraint.`nrSlotsADay(Assignment<Lecture,Placement> assignment, int date, HashMap<Lecture,Placement> assignments, Set<Placement> conflicts)`
    `protected int` | GroupConstraint.`nrSlotsADay(Assignment<Lecture,Placement> assignment, int date, HashMap<Lecture,Placement> assignments, Set<Placement> conflicts)`
    `int` | MaxConsecutiveDaysFlexibleConstraint.MaxConsecutiveDaysFlexibleConstraintContext.`nrViolations(BitSet week, HashMap<Lecture,Placement> assignments, Set<Placement> conflicts)`
    `int` | MaxDaysFlexibleConstraint.MaxDaysFlexibleConstraintContext.`nrViolations(BitSet week, HashMap<Lecture,Placement> assignments, Set<Placement> conflicts)`
    `int` | MaxHalfDaysFlexibleConstraint.MaxHalfDaysFlexibleConstraintContext.`nrViolations(BitSet week, HashMap<Lecture,Placement> assignments, Set<Placement> conflicts)`
    `int` | MaxConsecutiveDaysFlexibleConstraint.MaxConsecutiveDaysFlexibleConstraintContext.`nrViolations(HashMap<Lecture,Placement> assignments, Set<Placement> conflicts)`
    `int` | MaxDaysFlexibleConstraint.MaxDaysFlexibleConstraintContext.`nrViolations(HashMap<Lecture,Placement> assignments, Set<Placement> conflicts)`
    `int` | MaxHalfDaysFlexibleConstraint.MaxHalfDaysFlexibleConstraintContext.`nrViolations(HashMap<Lecture,Placement> assignments, Set<Placement> conflicts)`
    `int` | MaxWeeksFlexibleConstraint.MaxWeeksFlexibleConstraintContext.`nrViolations(HashMap<Lecture,Placement> assignments, Set<Placement> conflicts)`
    `void` | ExtendedStudentConflicts.`setModel(Model<Lecture,Placement> model)`
    `void` | GroupConstraint.`setModel(Model<Lecture,Placement> model)`
    `void` | JenrlConstraint.`setModel(Model<Lecture,Placement> model)`
    `void` | MaxHalfDaysFlexibleConstraint.`setModel(Model<Lecture,Placement> model)`
    `void` | NoStudentOnlineConflicts.`setModel(Model<Lecture,Placement> model)`
    `void` | RoomConstraint.`setModel(Model<Lecture,Placement> model)`
    `void` | DiscouragedRoomConstraint.`unassigned(Assignment<Lecture,Placement> assignment, long iteration, Placement placement)`
    `void` | RoomConstraint.`unassigned(Assignment<Lecture,Placement> assignment, long iteration, Placement placement)`
    `void` | DiscouragedRoomConstraint.DiscouragedRoomConstraintContext.`unassigned(Assignment<Lecture,Placement> assignment, Placement placement)`
    `void` | FlexibleConstraint.FlexibleConstraintContext.`unassigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | GroupConstraint.GroupConstraintContext.`unassigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | InstructorConstraint.InstructorConstraintContext.`unassigned(Assignment<Lecture,Placement> assignment, Placement placement)`
    `void` | JenrlConstraint.JenrlConstraintContext.`unassigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | MaxConsecutiveDaysFlexibleConstraint.MaxConsecutiveDaysFlexibleConstraintContext.`unassigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | MaxDaysFlexibleConstraint.MaxDaysFlexibleConstraintContext.`unassigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | MaxHalfDaysFlexibleConstraint.MaxHalfDaysFlexibleConstraintContext.`unassigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | MaxWeeksFlexibleConstraint.MaxWeeksFlexibleConstraintContext.`unassigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | MinimizeNumberOfUsedGroupsOfTime.MinimizeNumberOfUsedGroupsOfTimeContext.`unassigned(Assignment<Lecture,Placement> assignment, Placement placement)`
    `void` | MinimizeNumberOfUsedRoomsConstraint.MinimizeNumberOfUsedRoomsConstraintContext.`unassigned(Assignment<Lecture,Placement> assignment, Placement placement)`
    `void` | RoomConstraint.RoomConstraintContext.`unassigned(Assignment<Lecture,Placement> assignment, Placement placement)`
    `void` | SoftInstructorConstraint.SoftInstructorConstraintContext.`unassigned(Assignment<Lecture,Placement> assignment, Placement placement)`
    `void` | SpreadConstraint.SpreadConstraintContext.`unassigned(Assignment<Lecture,Placement> assignment, Placement placement)`
    `protected void` | FlexibleConstraint.FlexibleConstraintContext.`updateCriterion(Assignment<Lecture,Placement> assignment)` Update value of FlexibleConstraintCriterion and number of violated FlexibleConstraints
    `protected void` | GroupConstraint.GroupConstraintContext.`updateCriterion(Assignment<Lecture,Placement> assignment)`
    `void` | DiscouragedRoomConstraint.`weaken(Assignment<Lecture,Placement> assignment)`
    `void` | JenrlConstraint.`weaken(Assignment<Lecture,Placement> assignment)`
    `void` | MaxBreaksFlexibleConstraint.`weaken(Assignment<Lecture,Placement> assignment)`
    `void` | MaxHolesFlexibleConstraint.`weaken(Assignment<Lecture,Placement> assignment)`
    `void` | MinimizeNumberOfUsedGroupsOfTime.`weaken(Assignment<Lecture,Placement> assignment)`
    `void` | MinimizeNumberOfUsedRoomsConstraint.`weaken(Assignment<Lecture,Placement> assignment)`
    `void` | SpreadConstraint.`weaken(Assignment<Lecture,Placement> assignment)`
    `void` | DiscouragedRoomConstraint.`weaken(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | DiscouragedRoomConstraint.DiscouragedRoomConstraintContext.`weaken(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | JenrlConstraint.`weaken(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | JenrlConstraint.JenrlConstraintContext.`weaken(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | MaxBreaksFlexibleConstraint.`weaken(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | MaxHolesFlexibleConstraint.`weaken(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | MaxHolesFlexibleConstraint.MaxHolesFlexibleConstraintContext.`weaken(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | MinimizeNumberOfUsedGroupsOfTime.`weaken(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | MinimizeNumberOfUsedRoomsConstraint.`weaken(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | MinimizeNumberOfUsedRoomsConstraint.MinimizeNumberOfUsedRoomsConstraintContext.`weaken(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | SpreadConstraint.`weaken(Assignment<Lecture,Placement> assignment, Placement value)`

    Constructors in org.cpsolver.coursett.constraint with parameters of type Lecture
    Constructor and Description
    `ClassLimitConstraint(Lecture parent, String name)`

    Constructor parameters in org.cpsolver.coursett.constraint with type arguments of type Lecture
    Constructor and Description
    `DiscouragedRoomConstraintContext(Assignment<Lecture,Placement> assignment)`
    `GroupConstraintContext(Assignment<Lecture,Placement> assignment)`
    `InstructorConstraintContext(Assignment<Lecture,Placement> assignment)`
    `JenrlConstraintContext(Assignment<Lecture,Placement> assignment)`
    `MaxBreaksFlexibleConstraintContext(Assignment<Lecture,Placement> assignment)`
    `MaxConsecutiveDaysFlexibleConstraintContext(Assignment<Lecture,Placement> assignment)`
    `MaxDaysFlexibleConstraintContext(Assignment<Lecture,Placement> assignment)`
    `MaxHalfDaysFlexibleConstraintContext(Assignment<Lecture,Placement> assignment)`
    `MaxHolesFlexibleConstraintContext(Assignment<Lecture,Placement> assignment)`
    `MaxWeeksFlexibleConstraintContext(Assignment<Lecture,Placement> assignment)`
    `MinimizeNumberOfUsedGroupsOfTimeContext(Assignment<Lecture,Placement> assignment)`
    `MinimizeNumberOfUsedRoomsConstraintContext(Assignment<Lecture,Placement> assignment)`
    `RoomConstraintContext(Assignment<Lecture,Placement> assignment)`
    `SoftInstructorConstraintContext(Assignment<Lecture,Placement> assignment)`
    `SpreadConstraintContext(Assignment<Lecture,Placement> assignment)`

  - ### Uses of Lecture in org.cpsolver.coursett.criteria

    Methods in org.cpsolver.coursett.criteria that return types with arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `PerturbationsCounter<Lecture,Placement>` | Perturbations.`getPerturbationsCounter()`

    Methods in org.cpsolver.coursett.criteria with parameters of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | StudentConflict.`applicable(Lecture l1, Lecture l2)`
    `static boolean` | StudentConflict.`committed(Lecture l1, Lecture l2)`
    `static boolean` | StudentConflict.`hard(Lecture l1, Lecture l2)`
    `static boolean` | StudentConflict.`ignore(Lecture l1, Lecture l2)`
    `boolean` | StudentCommittedConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | StudentConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | StudentDistanceConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | StudentHardConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | StudentOverlapConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | StudentWorkdayConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | StudentConflict.`isApplicable(Student student, Lecture l1, Lecture l2)`
    `static boolean` | StudentConflict.`uncommitted(Lecture l1, Lecture l2)`

    Method parameters in org.cpsolver.coursett.criteria with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `void` | StudentConflict.`bestRestored(Assignment<Lecture,Placement> assignment)`
    `protected double[]` | BackToBackInstructorPreferences.`computeBounds(Assignment<Lecture,Placement> assignment)`
    `protected double[]` | BrokenTimePatterns.`computeBounds(Assignment<Lecture,Placement> assignment)`
    `protected double[]` | DistributionPreferences.`computeBounds(Assignment<Lecture,Placement> assignment)`
    `double[]` | Perturbations.`getBounds(Assignment<Lecture,Placement> assignment)`
    `double[]` | RoomViolations.`getBounds(Assignment<Lecture,Placement> assignment)`
    `double[]` | SameSubpartBalancingPenalty.`getBounds(Assignment<Lecture,Placement> assignment)`
    `double[]` | StudentConflict.`getBounds(Assignment<Lecture,Placement> assignment)`
    `double[]` | BackToBackInstructorPreferences.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | BackToBackInstructorPreferences.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | BrokenTimePatterns.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | BrokenTimePatterns.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | DistributionPreferences.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | DistributionPreferences.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | Perturbations.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | Perturbations.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | RoomPreferences.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | RoomPreferences.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | RoomViolations.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | RoomViolations.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | SameSubpartBalancingPenalty.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | SameSubpartBalancingPenalty.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | StudentCommittedConflict.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | StudentCommittedConflict.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | StudentConflict.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | StudentConflict.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | TimePreferences.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | TimePreferences.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | TooBigRooms.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | TooBigRooms.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `void` | FlexibleConstraintCriterion.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | StudentWorkdayConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | FlexibleConstraintCriterion.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | FlexibleConstraintCriterion.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | StudentWorkdayConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | StudentWorkdayConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `double` | Perturbations.`getValue(Assignment<Lecture,Placement> assignment)`
    `double` | SameSubpartBalancingPenalty.`getValue(Assignment<Lecture,Placement> assignment)`
    `double` | BackToBackInstructorPreferences.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | BackToBackInstructorPreferences.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | BrokenTimePatterns.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | BrokenTimePatterns.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | DepartmentBalancingPenalty.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | DepartmentBalancingPenalty.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | DistributionPreferences.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | DistributionPreferences.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | FlexibleConstraintCriterion.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | FlexibleConstraintCriterion.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | Perturbations.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | Perturbations.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | SameSubpartBalancingPenalty.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | SameSubpartBalancingPenalty.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | StudentCommittedConflict.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | StudentCommittedConflict.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | StudentConflict.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | StudentConflict.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | BackToBackInstructorPreferences.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | BrokenTimePatterns.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | DepartmentBalancingPenalty.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | DistributionPreferences.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | FlexibleConstraintCriterion.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | Perturbations.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | RoomPreferences.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | RoomViolations.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | SameSubpartBalancingPenalty.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | StudentCommittedConflict.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | StudentConflict.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | TimePreferences.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | TooBigRooms.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `void` | StudentConflict.`incJenrl(Assignment<Lecture,Placement> assignment, JenrlConstraint jenrl, double studentWeight, Double conflictPriority, Student student)`
    `boolean` | Perturbations.`init(Solver<Lecture,Placement> solver)`
    `protected int` | BackToBackInstructorPreferences.`penalty(Assignment<Lecture,Placement> assignment, Placement value)`
    `protected double` | BrokenTimePatterns.`penalty(Assignment<Lecture,Placement> assignment, Placement value)`

  - ### Uses of Lecture in org.cpsolver.coursett.criteria.additional

    Methods in org.cpsolver.coursett.criteria.additional with parameters of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | ImportantStudentConflict.`important(Lecture l1, Lecture l2)`
    `boolean` | InstructorStudentConflict.`instructor(Lecture l1, Lecture l2)` True if there is at least one student teaching one of the two classes and enrolled in the other.
    `boolean` | IgnoredCommittedStudentConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | IgnoredStudentConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | ImportantStudentConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | ImportantStudentHardConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | InstructorStudentConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | InstructorStudentHardConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | QuadraticStudentConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | QuadraticStudentHardConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | StudentLuchBreak.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | StudentMinimizeDaysOfWeek.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | StudentMinimizeScheduleHoles.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | StudentOnlineConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | StudentOverLunchConflict.`isApplicable(Lecture l1, Lecture l2)`
    `boolean` | ImportantStudentConflict.`isApplicable(Student student, Lecture l1, Lecture l2)`
    `boolean` | ImportantStudentHardConflict.`isApplicable(Student student, Lecture l1, Lecture l2)`
    `static boolean` | InstructorStudentHardConflict.`oneInstructorOtherHard(Lecture l1, Lecture l2)` One of the lectures is hard, there is a joint enrollment constraint between them, and there is at least one student that is instructor for one lecture and the other lecture is singleton.

    Method parameters in org.cpsolver.coursett.criteria.additional with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | InstructorFairness.InstructorFairnessContext.`allInstructorsAssigned(Assignment<Lecture,Placement> assignment)` Return if complete solution (all variables assigned) was found in this context
    `protected void` | InstructorFairness.InstructorFairnessContext.`assigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `protected void` | InstructorLunchBreak.InstructorLunchBreakContext.`assigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | InstructorFairness.`bestSaved(Assignment<Lecture,Placement> assignment)`
    `protected double[]` | InstructorConflict.`computeBounds(Assignment<Lecture,Placement> assignment)`
    `double` | InstructorLunchBreak.InstructorLunchBreakContext.`computeLunchPenalty(Assignment<Lecture,Placement> assignment, InstructorConstraint constraint)` Method computes number of violations in days (Mo, Tue, Wed,..) considering each week in the semester separately.
    `void` | InstructorFairness.InstructorFairnessContext.`countInstructorAssignedFair(Assignment<Lecture,Placement> assignment, Placement value)` Method actualize values of instructors whose lecture was just assigned
    `boolean` | InstructorFairness.InstructorFairnessContext.`countInstructorFair(Assignment<Lecture,Placement> assignment)` This method set fairness values to all instructors
    `void` | InstructorFairness.InstructorFairnessContext.`countInstructorUnassignedFair(Assignment<Lecture,Placement> assignment, Placement value)` Method actualize values of instructors whose lecture will be unassigned
    `AbstractCriterion.ValueContext` | InstructorFairness.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `AbstractCriterion.ValueContext` | InstructorLunchBreak.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `double` | InstructorFairness.InstructorFairnessContext.`fairnessDouble(Assignment<Lecture,Placement> assignment, Placement placement)` Metod count and return time (and room) preferences in placement
    `double[]` | IgnoredCommittedStudentConflict.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | IgnoredCommittedStudentConflict.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | InstructorConflict.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double[]` | InstructorConflict.`getBounds(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `void` | InstructorFairness.`getExtendedInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | IgnoredStudentConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | ImportantStudentConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | ImportantStudentHardConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | InstructorConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | InstructorFairness.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | InstructorLunchBreak.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | InstructorStudentConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | InstructorStudentHardConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | RoomSizePenalty.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | StudentLuchBreak.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | StudentMinimizeDaysOfWeek.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | StudentMinimizeScheduleHoles.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | StudentOnlineConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | StudentOverLunchConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | IgnoredStudentConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | IgnoredStudentConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | ImportantStudentConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | ImportantStudentConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | ImportantStudentHardConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | ImportantStudentHardConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | InstructorConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | InstructorConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | InstructorFairness.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | InstructorFairness.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | InstructorLunchBreak.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | InstructorLunchBreak.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | InstructorStudentConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | InstructorStudentConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | InstructorStudentHardConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | InstructorStudentHardConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | StudentLuchBreak.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | StudentLuchBreak.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | StudentMinimizeDaysOfWeek.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | StudentMinimizeDaysOfWeek.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | StudentMinimizeScheduleHoles.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | StudentMinimizeScheduleHoles.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | StudentOnlineConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | StudentOnlineConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | StudentOverLunchConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | StudentOverLunchConflict.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `double` | InstructorFairness.`getValue(Assignment<Lecture,Placement> assignment)`
    `double` | IgnoredCommittedStudentConflict.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | IgnoredCommittedStudentConflict.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | InstructorConflict.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | InstructorConflict.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | InstructorFairness.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | InstructorFairness.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | InstructorLunchBreak.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | InstructorLunchBreak.`getValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | IgnoredCommittedStudentConflict.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | InstructorConflict.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | InstructorFairness.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | InstructorLunchBreak.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | RoomSizePenalty.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `void` | ImportantStudentConflict.`incJenrl(Assignment<Lecture,Placement> assignment, JenrlConstraint jenrl, double studentWeight, Double conflictPriority, Student student)`
    `void` | InstructorStudentConflict.`incJenrl(Assignment<Lecture,Placement> assignment, JenrlConstraint jenrl, double studentWeight, Double conflictPriority, Student student)`
    `void` | QuadraticStudentConflict.`incJenrl(Assignment<Lecture,Placement> assignment, JenrlConstraint jenrl, double studentWeight, Double conflictPriority, Student student)`
    `void` | StudentMinimizeDaysOfWeek.`incJenrl(Assignment<Lecture,Placement> assignment, JenrlConstraint jenrl, double studentWeight, Double conflictPriority, Student student)`
    `void` | StudentMinimizeScheduleHoles.`incJenrl(Assignment<Lecture,Placement> assignment, JenrlConstraint jenrl, double studentWeight, Double conflictPriority, Student student)`
    `boolean` | StudentLuchBreak.`init(Solver<Lecture,Placement> solver)`
    `protected int` | InstructorConflict.`penalty(Assignment<Lecture,Placement> assignment, Placement value)`
    `String[]` | InstructorFairness.InstructorFairnessContext.`testFairness(Assignment<Lecture,Placement> assignment)` Method for whole evaluation of fairness criteria
    `protected void` | InstructorFairness.InstructorFairnessContext.`unassigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `protected void` | InstructorLunchBreak.InstructorLunchBreakContext.`unassigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | InstructorLunchBreak.InstructorLunchBreakContext.`updateCriterion(Assignment<Lecture,Placement> assignment, InstructorConstraint instructorConstraint, Placement placement)` Method checks or sets the CompactInfo of an InstructorConstraint.
    `void` | InstructorLunchBreak.InstructorLunchBreakContext.`updateLunchPenalty(Assignment<Lecture,Placement> assignment, InstructorConstraint constraint, Placement p)` Method updates number of violations in days (Mo, Tue, Wed,..) considering each week in the semester separately.

    Constructor parameters in org.cpsolver.coursett.criteria.additional with type arguments of type Lecture
    Constructor and Description
    `InstructorFairnessContext(Assignment<Lecture,Placement> assignment)`
    `InstructorLunchBreakContext(Assignment<Lecture,Placement> assignment)`

  - ### Uses of Lecture in org.cpsolver.coursett.criteria.placement

    Fields in org.cpsolver.coursett.criteria.placement with type parameters of type Lecture
    Modifier and Type | Field and Description
    --- | ---
    `protected ConflictStatistics<Lecture,Placement>` | WeightedHardConflicts.`iStat`

    Method parameters in org.cpsolver.coursett.criteria.placement with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | AssignmentCount.AssignmentCountContext.`assigned(Assignment<Lecture,Placement> assignment, Placement value)`
    `void` | WeightedHardConflicts.`bestCleared(Solution<Lecture,Placement> solution)`
    `void` | WeightedHardConflicts.`bestRestored(Solution<Lecture,Placement> solution)`
    `void` | WeightedHardConflicts.`bestSaved(Solution<Lecture,Placement> solution)`
    `AbstractCriterion.ValueContext` | AssignmentCount.`createAssignmentContext(Assignment<Lecture,Placement> assignment)` Deprecated.
    `AbstractCriterion.ValueContext` | WeightedHardConflicts.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `void` | PlacementSelectionCriterion.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | PlacementSelectionCriterion.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | PlacementSelectionCriterion.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | WeightedHardConflicts.`getInfo(Solution<Lecture,Placement> solution, Map<String,String> info)`
    `void` | WeightedHardConflicts.`getInfo(Solution<Lecture,Placement> solution, Map<String,String> info, Collection<Lecture> variables)`
    `void` | WeightedHardConflicts.`getInfo(Solution<Lecture,Placement> solution, Map<String,String> info, Collection<Lecture> variables)`
    `double` | AssignmentCount.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)` Deprecated.
    `double` | DeltaTimePreference.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | HardConflicts.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | PotentialHardConflicts.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `double` | WeightedHardConflicts.`getValue(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `boolean` | WeightedHardConflicts.`init(Solver<Lecture,Placement> solver)`
    `void` | WeightedHardConflicts.`solutionUpdated(Solution<Lecture,Placement> solution)`
    `protected void` | AssignmentCount.AssignmentCountContext.`unassigned(Assignment<Lecture,Placement> assignment, Placement value)`

    Constructor parameters in org.cpsolver.coursett.criteria.placement with type arguments of type Lecture
    Constructor and Description
    `AssignmentCountContext(Assignment<Lecture,Placement> assignment)`
    `IterationContext(Assignment<Lecture,Placement> assignment)`

  - ### Uses of Lecture in org.cpsolver.coursett.custom

    Methods in org.cpsolver.coursett.custom with parameters of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `void` | DeterministicStudentSectioning.`resection(Assignment<Lecture,Placement> assignment, Lecture lecture, boolean recursive, boolean configAsWell)` No re-sectioning (final sectioning) during deterministic student sectioning.

    Method parameters in org.cpsolver.coursett.custom with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `void` | DeterministicStudentSectioning.`resection(Assignment<Lecture,Placement> assignment, Lecture lecture, boolean recursive, boolean configAsWell)` No re-sectioning (final sectioning) during deterministic student sectioning.
    `protected InitialSectioning.Group[]` | DeterministicStudentSectioning.`studentsToLectures(Long offeringId, Collection<Student> students, Collection<Lecture> lectures)`
    `void` | DeterministicStudentSectioning.`switchStudents(Solution<Lecture,Placement> solution, TerminationCondition<Lecture,Placement> termination)` No re-sectioning (final sectioning) during deterministic student sectioning.
    `void` | DeterministicStudentSectioning.`switchStudents(Solution<Lecture,Placement> solution, TerminationCondition<Lecture,Placement> termination)` No re-sectioning (final sectioning) during deterministic student sectioning.

  - ### Uses of Lecture in org.cpsolver.coursett.heuristics

    Methods in org.cpsolver.coursett.heuristics that return Lecture
    Modifier and Type | Method and Description
    --- | ---
    `Lecture` | FixCompleteSolutionNeighbourSelection.FixCompleteSolutionNeighbourContext.`nextElement()`
    `Lecture` | LectureSelection.`selectVariable(Solution<Lecture,Placement> solution)`

    Methods in org.cpsolver.coursett.heuristics that return types with arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `Map<Lecture,Placement>` | NeighbourSelectionWithSuggestions.SuggestionNeighbour.`assignments()`
    `Assignment<Lecture,Placement>` | NeighbourSelectionWithSuggestions.NeighbourSelectionWithSuggestionsContext.`getAssignment()`
    `Solution<Lecture,Placement>` | NeighbourSelectionWithSuggestions.NeighbourSelectionWithSuggestionsContext.`getSolution()`
    `Neighbour<Lecture,Placement>` | FixCompleteSolutionNeighbourSelection.`selectNeighbour(Solution<Lecture,Placement> solution)` Try to improve existing solution by backtracking search of very limited depth.
    `Neighbour<Lecture,Placement>` | NeighbourSelectionWithSuggestions.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | NeighbourSelectionWithSuggestions.`selectNeighbourWithSuggestions(Solution<Lecture,Placement> solution, Lecture lecture, int depth)`

    Methods in org.cpsolver.coursett.heuristics with parameters of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `Neighbour<Lecture,Placement>` | NeighbourSelectionWithSuggestions.`selectNeighbourWithSuggestions(Solution<Lecture,Placement> solution, Lecture lecture, int depth)`
    `Placement` | PlacementSelection.`selectValue(Solution<Lecture,Placement> solution, Lecture var)`

    Method parameters in org.cpsolver.coursett.heuristics with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `void` | NeighbourSelectionWithSuggestions.SuggestionNeighbour.`assign(Assignment<Lecture,Placement> assignment, long iteration)`
    `int` | NeighbourSelectionWithSuggestions.SuggestionNeighbour.`compareTo(Solution<Lecture,Placement> solution)`
    `FixCompleteSolutionNeighbourSelection.FixCompleteSolutionNeighbourContext` | FixCompleteSolutionNeighbourSelection.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `double` | TimetableComparator.`currentValue(Solution<Lecture,Placement> currentSolution)` Deprecated.
    `double` | TimetableComparator.`getBest(Solution<Lecture,Placement> currentSolution)` Deprecated.
    `Map<String,Double>` | UniversalPerturbationsCounter.`getCompactInfo(Assignment<Lecture,Placement> assignment, TimetableModel model, boolean includeZero, boolean weighted)`
    `Map<String,Double>` | UniversalPerturbationsCounter.`getCompactInfo(Assignment<Lecture,Placement> assignment, TimetableModel model, Placement assignedPlacement, boolean includeZero, boolean weighted)`
    `void` | UniversalPerturbationsCounter.`getInfo(Assignment<Lecture,Placement> assignment, TimetableModel model, Map<String,String> info)`
    `void` | UniversalPerturbationsCounter.`getInfo(Assignment<Lecture,Placement> assignment, TimetableModel model, Map<String,String> info, List<Lecture> variables)`
    `void` | UniversalPerturbationsCounter.`getInfo(Assignment<Lecture,Placement> assignment, TimetableModel model, Map<String,String> info, List<Lecture> variables)`
    `protected double` | UniversalPerturbationsCounter.`getPenalty(Assignment<Lecture,Placement> assignment, Placement assignedPlacement, Placement initialPlacement)`
    `void` | FixCompleteSolutionNeighbourSelection.FixCompleteSolutionNeighbourContext.`incPhase(Solution<Lecture,Placement> solution)`
    `void` | FixCompleteSolutionNeighbourSelection.`init(Solver<Lecture,Placement> solver)`
    `void` | LectureSelection.`init(Solver<Lecture,Placement> solver)`
    `void` | NeighbourSelectionWithSuggestions.`init(Solver<Lecture,Placement> solver)`
    `void` | PlacementSelection.`init(Solver<Lecture,Placement> solver)`
    `Neighbour<Lecture,Placement>` | FixCompleteSolutionNeighbourSelection.`selectNeighbour(Solution<Lecture,Placement> solution)` Try to improve existing solution by backtracking search of very limited depth.
    `Neighbour<Lecture,Placement>` | NeighbourSelectionWithSuggestions.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | NeighbourSelectionWithSuggestions.`selectNeighbourWithSuggestions(Solution<Lecture,Placement> solution, Lecture lecture, int depth)`
    `Placement` | PlacementSelection.`selectValue(Solution<Lecture,Placement> solution, Lecture var)`
    `Lecture` | LectureSelection.`selectVariable(Solution<Lecture,Placement> solution)`
    `boolean` | NeighbourSelectionWithSuggestions.NeighbourSelectionWithSuggestionsContext.`setSuggestionNeighbourIfImproving(Map<Lecture,Placement> assignment)`
    `double` | NeighbourSelectionWithSuggestions.SuggestionNeighbour.`value(Assignment<Lecture,Placement> assignment)`

    Constructor parameters in org.cpsolver.coursett.heuristics with type arguments of type Lecture
    Constructor and Description
    `FixCompleteSolutionNeighbourContext(Assignment<Lecture,Placement> assignment)`
    `FixCompleteSolutionNeighbourSelection(DataProperties config, NeighbourSelection<Lecture,Placement> parent)`
    `NeighbourSelectionWithSuggestions(Solver<Lecture,Placement> solver)`
    `NeighbourSelectionWithSuggestionsContext(Solution<Lecture,Placement> solution)`
    `SuggestionNeighbour(Map<Lecture,Placement> resolvedLectures, double value)`

  - ### Uses of Lecture in org.cpsolver.coursett.model

    Methods in org.cpsolver.coursett.model that return Lecture
    Modifier and Type | Method and Description
    --- | ---
    `Lecture` | FinalSectioning.Move.`firstLecture()`
    `Lecture` | Lecture.`getChild(Student student, Long subpartId)`
    `Lecture` | InitialSectioning.Group.`getLecture()`
    `Lecture` | Lecture.`getParent()`
    `Lecture` | FinalSectioning.Move.`secondLecture()`

    Methods in org.cpsolver.coursett.model that return types with arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `Map<Long,Set<Lecture>>` | Student.`canNotEnrollSections()`
    `List<Lecture>` | Lecture.`conflictLectures(Assignment<Lecture,Placement> assignment, Student student)` Lectures different from this one, where it is student conflict of the given student between this and the lecture
    `Set<Lecture>` | FinalSectioning.MoveBetweenCfgs.`firstLectures()`
    `Map<Long,List<Lecture>>` | Lecture.`getChildren()`
    `List<Lecture>` | Lecture.`getChildren(Long subpartId)`
    `Map<Lecture,Long>` | Lecture.`getInitialStudentConflicts()` Table of student conflicts caused by the initial assignment of this lecture in format (another lecture, number)
    `Set<Lecture>` | Student.`getLectures()`
    `Map<Long,Set<Lecture>>` | Configuration.`getTopLectures()`
    `Set<Lecture>` | Configuration.`getTopLectures(Long subpartId)`
    `Set<Constraint<Lecture,Placement>>` | Lecture.`getWeakeningConstraints()`
    `List<Lecture>` | Lecture.`sameStudentsLectures()`
    `List<Lecture>` | Lecture.`sameSubpartLectures()` Set of lectures of the same class (only section is different)
    `Set<Lecture>` | FinalSectioning.MoveBetweenCfgs.`secondLectures()`

    Methods in org.cpsolver.coursett.model with parameters of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `void` | Student.`addCanNotEnroll(Lecture lecture)`
    `void` | Student.`addLecture(Lecture lecture)`
    `void` | Configuration.`addTopLecture(Lecture lecture)`
    `boolean` | Student.`areAlternatives(Lecture l1, Lecture l2)`
    `boolean` | Lecture.`areStudentConflictsHard(Lecture other)`
    `boolean` | Student.`canEnroll(Lecture lecture)`
    `boolean` | Lecture.`canShareRoom(Lecture other)`
    `boolean` | Student.`canUnenroll(Lecture lecture)`
    `int` | Lecture.`compareTo(Lecture o)`
    `FinalSectioning.Move` | FinalSectioning.`createMove(Assignment<Lecture,Placement> assignment, Lecture firstLecture, Student firstStudent, Lecture secondLecture, Student secondStudent)`
    `FinalSectioning.Move` | FinalSectioning.`createMove(Assignment<Lecture,Placement> assignment, Lecture firstLecture, Student firstStudent, Lecture secondLecture, Student secondStudent, FinalSectioning.Move parentMove)`
    `protected void` | TimetableModel.`decJenrl(Assignment<Lecture,Placement> assignment, Student student, Lecture l1, Lecture l2)` Decrement `JenrlConstraint` between the given two classes by the given student
    `void` | FinalSectioning.`findAndPerformMoves(Assignment<Lecture,Placement> assignment, Lecture lecture, HashSet<Lecture> lecturesToRecompute)` Swap students between this and the same lectures (lectures which differ only in the section)
    `FinalSectioning.Move` | FinalSectioning.`findAwayMove(Assignment<Lecture,Placement> assignment, Lecture lecture)`
    `FinalSectioning.Move` | FinalSectioning.`findMove(Assignment<Lecture,Placement> assignment, Lecture lecture, Student student)`
    `protected String` | DefaultStudentSectioning.`getClassLabel(Lecture lecture)` Class label
    `Double` | Student.`getConflictingPriorty(Lecture l1, Lecture l2)`
    `double` | Student.`getJenrlWeight(Lecture l1, Lecture l2)`
    `Double` | Student.`getPriority(Lecture lecture)`
    `protected void` | TimetableModel.`incJenrl(Assignment<Lecture,Placement> assignment, Student student, Lecture l1, Lecture l2)` Increment `JenrlConstraint` between the given two classes by the given student
    `boolean` | Lecture.`isToIgnoreStudentConflictsWith(Lecture other)` Returns true if there is `IgnoreStudentConflictsConstraint` between the two lectures.
    `JenrlConstraint` | Lecture.`jenrlConstraint(Lecture another)` All JENRL constraints of this lecture
    `void` | Student.`removeLecture(Lecture lecture)`
    `void` | DefaultStudentSectioning.`resection(Assignment<Lecture,Placement> assignment, Lecture lecture, boolean recursive, boolean configAsWell)` Perform sectioning on the given lecture
    `void` | FinalSectioning.`resection(Assignment<Lecture,Placement> assignment, Lecture lecture, boolean recursive, boolean configAsWell)` Perform sectioning on the given lecture
    `void` | StudentSectioning.`resection(Assignment<Lecture,Placement> assignment, Lecture lecture, boolean recursive, boolean configAsWell)` Perform sectioning on the given lecture
    `Set<Student>` | Lecture.`sameStudents(Lecture lecture)` List of students enrolled in this class as well as in the given class
    `void` | Lecture.`setParent(Lecture parent)`
    `int` | FinalSectioning.`test(Assignment<Lecture,Placement> assignment, Student student, Lecture lecture)`
    `void` | OnFlySectioning.`variableAdded(Lecture variable)`
    `void` | OnFlySectioning.`variableRemoved(Lecture variable)`

    Method parameters in org.cpsolver.coursett.model with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `Set<JenrlConstraint>` | Lecture.`activeJenrls(Assignment<Lecture,Placement> assignment)` Active jenrl constraints (active mean that there is at least one student between its classes)
    `void` | Lecture.`addActiveJenrl(Assignment<Lecture,Placement> assignment, JenrlConstraint constr)` Add active jenrl constraint (active mean that there is at least one student between its classes)
    `void` | Student.`addCanNotEnroll(Long offeringId, Collection<Lecture> lectures)`
    `void` | TimetableModel.`addConstraint(Constraint<Lecture,Placement> constraint)`
    `void` | Lecture.`addContstraint(Constraint<Lecture,Placement> constraint)`
    `void` | TimetableModel.`addCriterion(Criterion<Lecture,Placement> criterion)`
    `void` | Lecture.`addStudent(Assignment<Lecture,Placement> assignment, Student student)` Add an enrolled student
    `void` | OnFlySectioning.`afterAssigned(Assignment<Lecture,Placement> assignment, long iteration, Placement value)` `FinalSectioning.resection(Assignment, Lecture, boolean, boolean)` is called when given iteration number is greater than zero.
    `void` | OnFlySectioning.`afterUnassigned(Assignment<Lecture,Placement> assignment, long iteration, Placement value)`
    `void` | OnFlySectioning.`beforeAssigned(Assignment<Lecture,Placement> assignment, long iteration, Placement value)`
    `void` | OnFlySectioning.`beforeUnassigned(Assignment<Lecture,Placement> assignment, long iteration, Placement value)`
    `int` | Lecture.`classLimit(Assignment<Lecture,Placement> assignment)`
    `int` | Lecture.`classLimit(Assignment<Lecture,Placement> assignment, Placement value, Set<Placement> conflicts)`
    `List<Placement>` | Lecture.`computeValues(Assignment<Lecture,Placement> assignment, boolean allowBreakHard)` Domain -- all combinations of room and time locations
    `List<Lecture>` | Lecture.`conflictLectures(Assignment<Lecture,Placement> assignment, Student student)` Lectures different from this one, where it is student conflict of the given student between this and the lecture
    `Set<Student>` | Lecture.`conflictStudents(Assignment<Lecture,Placement> assignment)` List of students of this class which are in conflict with any other assignment
    `Set<Student>` | Lecture.`conflictStudents(Assignment<Lecture,Placement> assignment, Placement value)` List of students of this class in conflict with the given assignment
    `Set<Placement>` | TimetableModel.`conflictValuesSkipWeakeningConstraints(Assignment<Lecture,Placement> assignment, Placement value)` Returns the set of conflicting variables with this value, if it is assigned to its variable.
    `void` | OnFlySectioning.`constraintAdded(Constraint<Lecture,Placement> constraint)`
    `void` | OnFlySectioning.`constraintRemoved(Constraint<Lecture,Placement> constraint)`
    `int` | Lecture.`countCommittedStudentConflicts(Assignment<Lecture,Placement> assignment, Placement value)`
    `int` | Lecture.`countCommittedStudentConflictsOfTheSameProblem(Assignment<Lecture,Placement> assignment, Placement value)`
    `int` | Lecture.`countDistanceStudentConflicts(Assignment<Lecture,Placement> assignment, Placement value)`
    `int` | Lecture.`countDistanceStudentConflictsOfTheSameProblem(Assignment<Lecture,Placement> assignment, Placement value)`
    `int` | Lecture.`countHardStudentConflicts(Assignment<Lecture,Placement> assignment, Placement value)`
    `int` | Lecture.`countHardStudentConflictsOfTheSameProblem(Assignment<Lecture,Placement> assignment, Placement value)`
    `int` | Lecture.`countStudentConflicts(Assignment<Lecture,Placement> assignment, Placement value)` Number of student conflicts caused by the given assignment of this lecture
    `int` | Lecture.`countStudentConflictsOfTheSameProblem(Assignment<Lecture,Placement> assignment, Placement value)`
    `Lecture.LectureContext` | Lecture.`createAssignmentContext(Assignment<Lecture,Placement> assignment)`
    `FinalSectioning.MoveBetweenCfgs` | FinalSectioning.`createMove(Assignment<Lecture,Placement> assignment, Configuration firstConfig, Student firstStudent, Configuration secondConfig, Student secondStudent)`
    `FinalSectioning.Move` | FinalSectioning.`createMove(Assignment<Lecture,Placement> assignment, Lecture firstLecture, Student firstStudent, Lecture secondLecture, Student secondStudent)`
    `FinalSectioning.Move` | FinalSectioning.`createMove(Assignment<Lecture,Placement> assignment, Lecture firstLecture, Student firstStudent, Lecture secondLecture, Student secondStudent, FinalSectioning.Move parentMove)`
    `protected void` | TimetableModel.`decJenrl(Assignment<Lecture,Placement> assignment, Student student, Lecture l1, Lecture l2)` Decrement `JenrlConstraint` between the given two classes by the given student
    `void` | FinalSectioning.`execute(Solution<Lecture,Placement> solution, TerminationCondition<Lecture,Placement> termination)`
    `void` | FinalSectioning.`execute(Solution<Lecture,Placement> solution, TerminationCondition<Lecture,Placement> termination)`
    `void` | FinalSectioning.`findAndPerformMoves(Assignment<Lecture,Placement> assignment, Configuration configuration, HashSet<Lecture> lecturesToRecompute)`
    `void` | FinalSectioning.`findAndPerformMoves(Assignment<Lecture,Placement> assignment, Configuration configuration, HashSet<Lecture> lecturesToRecompute)`
    `void` | FinalSectioning.`findAndPerformMoves(Assignment<Lecture,Placement> assignment, Lecture lecture, HashSet<Lecture> lecturesToRecompute)` Swap students between this and the same lectures (lectures which differ only in the section)
    `void` | FinalSectioning.`findAndPerformMoves(Assignment<Lecture,Placement> assignment, Lecture lecture, HashSet<Lecture> lecturesToRecompute)` Swap students between this and the same lectures (lectures which differ only in the section)
    `FinalSectioning.Move` | FinalSectioning.`findAwayMove(Assignment<Lecture,Placement> assignment, Lecture lecture)`
    `FinalSectioning.MoveBetweenCfgs` | FinalSectioning.`findMove(Assignment<Lecture,Placement> assignment, Configuration config, Student student)`
    `FinalSectioning.Move` | FinalSectioning.`findMove(Assignment<Lecture,Placement> assignment, Lecture lecture, Student student)`
    `Map<String,String>` | TimetableModel.`getBounds(Assignment<Lecture,Placement> assignment)`
    `double` | FinalSectioning.Move.`getDelta(Assignment<Lecture,Placement> assignment)`
    `double` | FinalSectioning.MoveBetweenCfgs.`getDelta(Assignment<Lecture,Placement> assignment)`
    `Map<String,String>` | TimetableModel.`getInfo(Assignment<Lecture,Placement> assignment)` Global info
    `Map<String,String>` | TimetableModel.`getInfo(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `Map<String,String>` | TimetableModel.`getInfo(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `void` | DefaultStudentSectioning.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info)`
    `void` | DefaultStudentSectioning.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `void` | DefaultStudentSectioning.`getInfo(Assignment<Lecture,Placement> assignment, Map<String,String> info, Collection<Lecture> variables)`
    `int` | Placement.`getMaxSpreadPenalty(Assignment<Lecture,Placement> assignment)`
    `String` | Placement.`getNotValidReason(Assignment<Lecture,Placement> assignment)` Deprecated.
    `String` | Placement.`getNotValidReason(Assignment<Lecture,Placement> assignment, boolean useAmPm)`
    `String` | Lecture.`getNotValidReason(Assignment<Lecture,Placement> assignment, Placement placement)` Deprecated.
    `String` | Lecture.`getNotValidReason(Assignment<Lecture,Placement> assignment, Placement placement, boolean useAmPm)`
    `int` | Lecture.`getSpreadPenalty(Assignment<Lecture,Placement> assignment)`
    `int` | Placement.`getSpreadPenalty(Assignment<Lecture,Placement> assignment)`
    `double` | TimetableModel.`getTotalValue(Assignment<Lecture,Placement> assignment)`
    `double` | TimetableModel.`getTotalValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `double` | TimetableModel.`getTotalValue(Assignment<Lecture,Placement> assignment, Collection<Lecture> variables)`
    `boolean` | Configuration.`hasConflict(Assignment<Lecture,Placement> assignment, Student student)`
    `protected void` | TimetableModel.`incJenrl(Assignment<Lecture,Placement> assignment, Student student, Lecture l1, Lecture l2)` Increment `JenrlConstraint` between the given two classes by the given student
    `boolean` | OnFlySectioning.`init(Solver<Lecture,Placement> solver)` Initialization
    `void` | DefaultStudentSectioning.`initialSectioning(Assignment<Lecture,Placement> assignment, Long offeringId, String courseName, Collection<Student> students, Collection<Configuration> configurations)` Enroll students into the given offering during the initial data load using `InitialSectioning`.
    `void` | StudentSectioning.`initialSectioning(Assignment<Lecture,Placement> assignment, Long offeringId, String courseName, Collection<Student> students, Collection<Configuration> configurations)` Enroll students into the given offering during the initial data load.
    `static void` | InitialSectioning.`initialSectioningCfg(Assignment<Lecture,Placement> assignment, Progress p, Long offeringId, String courseName, Collection<Student> students, List<Configuration> configurations)`
    `protected void` | DefaultStudentSectioning.`initialSectioningLectures(Assignment<Lecture,Placement> assignment, Long offeringId, String courseName, Collection<Student> students, Collection<Lecture> lectures)` Enroll students into the given classes during the initial data load using `InitialSectioning`.
    `protected void` | DefaultStudentSectioning.`initialSectioningLectures(Assignment<Lecture,Placement> assignment, Long offeringId, String courseName, Collection<Student> students, Collection<Lecture> lectures)` Enroll students into the given classes during the initial data load using `InitialSectioning`.
    `boolean` | Placement.`isHard(Assignment<Lecture,Placement> assignment)`
    `int` | Lecture.`isInConflict(Assignment<Lecture,Placement> assignment, Student student)` True if this lecture is in a student conflict with the given student
    `boolean` | FinalSectioning.Move.`perform(Assignment<Lecture,Placement> assignment)`
    `boolean` | FinalSectioning.MoveBetweenCfgs.`perform(Assignment<Lecture,Placement> assignment)`
    `void` | Lecture.`removeActiveJenrl(Assignment<Lecture,Placement> assignment, JenrlConstraint constr)` Remove active jenrl constraint (active mean that there is at least one student between its classes)
    `void` | TimetableModel.`removeConstraint(Constraint<Lecture,Placement> constraint)`
    `void` | Lecture.`removeContstraint(Constraint<Lecture,Placement> constraint)`
    `void` | TimetableModel.`removeCriterion(Criterion<Lecture,Placement> criterion)`
    `void` | Lecture.`removeStudent(Assignment<Lecture,Placement> assignment, Student student)` Remove an enrolled student
    `void` | DefaultStudentSectioning.`resection(Assignment<Lecture,Placement> assignment, Lecture lecture, boolean recursive, boolean configAsWell)` Perform sectioning on the given lecture
    `void` | FinalSectioning.`resection(Assignment<Lecture,Placement> assignment, Lecture lecture, boolean recursive, boolean configAsWell)` Perform sectioning on the given lecture
    `void` | StudentSectioning.`resection(Assignment<Lecture,Placement> assignment, Lecture lecture, boolean recursive, boolean configAsWell)` Perform sectioning on the given lecture
    `void` | TimetableModel.`restoreBest(Assignment<Lecture,Placement> assignment)`
    `void` | TimetableModel.`saveBest(Assignment<Lecture,Placement> assignment)`
    `void` | Lecture.`setSameSubpartLectures(List<Lecture> sameSubpartLectures)` Set of lectures of the same class (only section is different)
    `protected InitialSectioning.Group[]` | DefaultStudentSectioning.`studentsToLectures(Long offeringId, Collection<Student> students, Collection<Lecture> lectures)` Section students into lectures.
    `void` | TimetableModel.`switchStudents(Assignment<Lecture,Placement> assignment)` Student final sectioning (switching students between sections of the same class in order to minimize overall number of student conflicts)
    `void` | TimetableModel.`switchStudents(Assignment<Lecture,Placement> assignment, TerminationCondition<Lecture,Placement> termination)` Student final sectioning (switching students between sections of the same class in order to minimize overall number of student conflicts)
    `void` | TimetableModel.`switchStudents(Assignment<Lecture,Placement> assignment, TerminationCondition<Lecture,Placement> termination)` Student final sectioning (switching students between sections of the same class in order to minimize overall number of student conflicts)
    `void` | DefaultStudentSectioning.`switchStudents(Solution<Lecture,Placement> solution, TerminationCondition<Lecture,Placement> termination)` Run student final sectioning (switching students between sections of the same class in order to minimize overall number of student conflicts).
    `void` | DefaultStudentSectioning.`switchStudents(Solution<Lecture,Placement> solution, TerminationCondition<Lecture,Placement> termination)` Run student final sectioning (switching students between sections of the same class in order to minimize overall number of student conflicts).
    `void` | StudentSectioning.`switchStudents(Solution<Lecture,Placement> solution, TerminationCondition<Lecture,Placement> termination)` Run student final sectioning (switching students between sections of the same class in order to minimize overall number of student conflicts).
    `void` | StudentSectioning.`switchStudents(Solution<Lecture,Placement> solution, TerminationCondition<Lecture,Placement> termination)` Run student final sectioning (switching students between sections of the same class in order to minimize overall number of student conflicts).
    `int` | FinalSectioning.`test(Assignment<Lecture,Placement> assignment, Student student, Lecture lecture)`
    `double` | Placement.`toDouble(Assignment<Lecture,Placement> assignment)`
    `List<Placement>` | Lecture.`values(Assignment<Lecture,Placement> assignment)` All values

    Constructors in org.cpsolver.coursett.model with parameters of type Lecture
    Constructor and Description
    `Group(Lecture lecture)`
    `Placement(Lecture lecture, TimeLocation timeLocation, List<RoomLocation> roomLocations)`
    `Placement(Lecture lecture, TimeLocation timeLocation, RoomLocation roomLocation)` Constructor

  - ### Uses of Lecture in org.cpsolver.coursett.neighbourhoods

    Methods in org.cpsolver.coursett.neighbourhoods that return types with arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `Neighbour<Lecture,Placement>` | RoomChange.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | RoomSwap.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | Suggestion.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | TimeChange.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | TimeSwap.`selectNeighbour(Solution<Lecture,Placement> solution)`

    Method parameters in org.cpsolver.coursett.neighbourhoods with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `void` | RoomSwap.`init(Solver<Lecture,Placement> solver)`
    `void` | TimeSwap.`init(Solver<Lecture,Placement> solver)`
    `Double` | RoomSwap.`resolve(Solution<Lecture,Placement> solution, double total, long startTime, Map<Lecture,Placement> assignments, List<Placement> conflicts, int index)`
    `Double` | RoomSwap.`resolve(Solution<Lecture,Placement> solution, double total, long startTime, Map<Lecture,Placement> assignments, List<Placement> conflicts, int index)`
    `Double` | TimeSwap.`resolve(Solution<Lecture,Placement> solution, double total, long startTime, Map<Lecture,Placement> assignments, List<Placement> conflicts, int index)`
    `Double` | TimeSwap.`resolve(Solution<Lecture,Placement> solution, double total, long startTime, Map<Lecture,Placement> assignments, List<Placement> conflicts, int index)`
    `Neighbour<Lecture,Placement>` | RoomChange.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | RoomSwap.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | Suggestion.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | TimeChange.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | TimeSwap.`selectNeighbour(Solution<Lecture,Placement> solution)`

  - ### Uses of Lecture in org.cpsolver.coursett.sectioning

    Methods in org.cpsolver.coursett.sectioning that return types with arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `Map<Lecture,Placement>` | StudentSwap.`assignments()`
    `Neighbour<Lecture,Placement>` | StudentSwapGenerator.`generateSwap(TimetableModel model, Assignment<Lecture,Placement> assignment, Student student, Configuration config)`
    `Assignment<Lecture,Placement>` | SctModel.`getAssignment()` Current assignment
    `List<Lecture>` | SctStudent.`getInstructingLectures()` List of lectures of the given course that the student is instructing (if he/she is also an instructor, using `Student.getInstructor()`)
    `List<Lecture>` | SctEnrollment.`getLectures()` List of classes of this enrollment
    `Map<Long,Set<Lecture>>` | SctModel.`getSubparts(Configuration configuration)` List of scheduling subparts and their classes of the given configuration
    `Neighbour<Lecture,Placement>` | StudentSwapGenerator.`selectNeighbour(Assignment<Lecture,Placement> assignment, Lecture lecture)`
    `Neighbour<Lecture,Placement>` | RandomStudentSwap.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | StudentSwapGenerator.`selectNeighbour(Solution<Lecture,Placement> solution)`

    Methods in org.cpsolver.coursett.sectioning with parameters of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | SctModel.`decJenrl(Assignment<Lecture,Placement> assignment, Student student, Lecture l1, Lecture l2)` Decrement `JenrlConstraint` between the given two classes by the given student
    `protected void` | StudentSwap.`decJenrl(Assignment<Lecture,Placement> assignment, Student student, Lecture l1, Lecture l2)` Decrement `JenrlConstraint` between the given two classes by the given student
    `double` | SctStudent.`getJenrConflictWeight(Lecture l1, Lecture l2)` Conflict weight of a lecture pair
    `protected void` | SctModel.`incJenrl(Assignment<Lecture,Placement> assignment, Student student, Lecture l1, Lecture l2)` Increment `JenrlConstraint` between the given two classes by the given student
    `protected void` | StudentSwap.`incJenrl(Assignment<Lecture,Placement> assignment, Student student, Lecture l1, Lecture l2)` Increment `JenrlConstraint` between the given two classes by the given student
    `void` | SctSectioning.`resection(Assignment<Lecture,Placement> assignment, Lecture lecture, boolean recursive, boolean configAsWell)`
    `void` | StudentSwapSectioning.`resection(Assignment<Lecture,Placement> assignment, Lecture lecture, boolean recursive, boolean configAsWell)`
    `Neighbour<Lecture,Placement>` | StudentSwapGenerator.`selectNeighbour(Assignment<Lecture,Placement> assignment, Lecture lecture)`

    Method parameters in org.cpsolver.coursett.sectioning with type arguments of type Lecture
    Modifier and Type | Method and Description
    --- | ---
    `void` | StudentSwap.`assign(Assignment<Lecture,Placement> assignment, long iteration)`
    `protected void` | SctModel.`decJenrl(Assignment<Lecture,Placement> assignment, Student student, Lecture l1, Lecture l2)` Decrement `JenrlConstraint` between the given two classes by the given student
    `protected void` | StudentSwap.`decJenrl(Assignment<Lecture,Placement> assignment, Student student, Lecture l1, Lecture l2)` Decrement `JenrlConstraint` between the given two classes by the given student
    `Neighbour<Lecture,Placement>` | StudentSwapGenerator.`generateSwap(TimetableModel model, Assignment<Lecture,Placement> assignment, Student student, Configuration config)`
    `static double` | StudentSwapSectioning.`gp(Solution<Lecture,Placement> solution)` Student group percentage of a solution
    `static double` | StudentSwapSectioning.`gp(TimetableModel model, Collection<Lecture> variables)` Student group percentage of a solution subset
    `double` | StudentMove.`group(List<StudentConflict> criteria, Assignment<Lecture,Placement> assignment)` Student group weight change
    `double` | StudentSwap.`group(List<StudentConflict> criteria, Assignment<Lecture,Placement> assignment)`
    `protected double` | StudentSwapSectioning.`group(Neighbour<Lecture,Placement> n, Assignment<Lecture,Placement> assignment)` Student group weight change of a student swap
    `protected double` | StudentSwapSectioning.`group(Neighbour<Lecture,Placement> n, Assignment<Lecture,Placement> assignment)` Student group weight change of a student swap
    `protected void` | SctModel.`incJenrl(Assignment<Lecture,Placement> assignment, Student student, Lecture l1, Lecture l2)` Increment `JenrlConstraint` between the given two classes by the given student
    `protected void` | StudentSwap.`incJenrl(Assignment<Lecture,Placement> assignment, Student student, Lecture l1, Lecture l2)` Increment `JenrlConstraint` between the given two classes by the given student
    `void` | RandomStudentSwap.`init(Solver<Lecture,Placement> solver)`
    `void` | StudentSwapGenerator.`init(Solver<Lecture,Placement> solver)`
    `protected boolean` | StudentSwap.`initSwap(Assignment<Lecture,Placement> assignment, Long offeringId)` Compute student swap and its validity
    `protected double` | StudentSwapSectioning.`objective(Neighbour<Lecture,Placement> n, Assignment<Lecture,Placement> assignment)` Student conflict weight change of a student swap
    `protected double` | StudentSwapSectioning.`objective(Neighbour<Lecture,Placement> n, Assignment<Lecture,Placement> assignment)` Student conflict weight change of a student swap
    `protected double` | StudentSwapSectioning.`objective(Solution<Lecture,Placement> solution)` Student conflict weight of a solution
    `void` | SctSectioning.`resection(Assignment<Lecture,Placement> assignment, Lecture lecture, boolean recursive, boolean configAsWell)`
    `void` | StudentSwapSectioning.`resection(Assignment<Lecture,Placement> assignment, Lecture lecture, boolean recursive, boolean configAsWell)`
    `Neighbour<Lecture,Placement>` | StudentSwapGenerator.`selectNeighbour(Assignment<Lecture,Placement> assignment, Lecture lecture)`
    `Neighbour<Lecture,Placement>` | RandomStudentSwap.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `Neighbour<Lecture,Placement>` | StudentSwapGenerator.`selectNeighbour(Solution<Lecture,Placement> solution)`
    `protected InitialSectioning.Group[]` | SctSectioning.`studentsToLectures(Long offeringId, Collection<Student> students, Collection<Lecture> lectures)`
    `protected InitialSectioning.Group[]` | StudentSwapSectioning.`studentsToLectures(Long offeringId, Collection<Student> students, Collection<Lecture> lectures)`
    `void` | SctSectioning.`switchStudents(Solution<Lecture,Placement> solution, TerminationCondition<Lecture,Placement> termination)`
    `void` | SctSectioning.`switchStudents(Solution<Lecture,Placement> solution, TerminationCondition<Lecture,Placement> termination)`
    `void` | StudentSwapSectioning.`switchStudents(Solution<Lecture,Placement> solution, TerminationCondition<Lecture,Placement> termination)`
    `void` | StudentSwapSectioning.`switchStudents(Solution<Lecture,Placement> solution, TerminationCondition<Lecture,Placement> termination)`
    `double` | StudentSwap.`value(Assignment<Lecture,Placement> assignment)`
    `double` | StudentMove.`value(List<StudentConflict> criteria, Assignment<Lecture,Placement> assignment)` Student conflict weight change
    `double` | StudentSwap.`value(List<StudentConflict> criteria, Assignment<Lecture,Placement> assignment)`
    `protected double` | StudentSwapSectioning.`value(Neighbour<Lecture,Placement> n, Assignment<Lecture,Placement> assignment)` Combined weight change of a student swap
    `protected double` | StudentSwapSectioning.`value(Neighbour<Lecture,Placement> n, Assignment<Lecture,Placement> assignment)` Combined weight change of a student swap
    `protected double` | SctSectioning.`value(Solution<Lecture,Placement> solution)` Student conflict weight for the given solution
    `protected double` | StudentSwapSectioning.`value(Solution<Lecture,Placement> solution)` Combined weight of a solution

    Constructor parameters in org.cpsolver.coursett.sectioning with type arguments of type Lecture
    Constructor and Description
    `SctEnrollment(int id, SctStudent student, Collection<Lecture> lectures)`
    `SctEnrollment(int id, SctStudent student, Collection<Lecture> lectures, double conflictWeight)`
    `SctModel(TimetableModel model, Assignment<Lecture,Placement> assignment)` Constructor
    `StudentSwap(TimetableModel model, Assignment<Lecture,Placement> assignment, Student student, Collection<Lecture> lectures)` Move a student into some other lectures of the offering.
    `StudentSwap(TimetableModel model, Assignment<Lecture,Placement> assignment, Student student, Collection<Lecture> lectures)` Move a student into some other lectures of the offering.
    `StudentSwap(TimetableModel model, Assignment<Lecture,Placement> assignment, Student firstStudent, Student secondStudent, Long offeringId)` Create a swap of two students of an offering.