Skip to content

Resolve "Fix professor course allocation"

Overview of changes

Changes in CourseSize and StudentGroup

  • added boolean flags for English groups.

Changes in CourseServiceImpl

  • fixed teachers who are both professors and assistants to be allocated to the same groups.
  • enabled English groups to be allocated simultaneously.
  • changed allocation algorithm to behave differently when subjects contain STUDENT_GROUPS or TOPICS lecture sharing. Please review the notes on implementation for this change.
  • refactoring.

Changes in CourseServiceImplTest

  • provided unit tests for calculateGroupsForSubject method and other methods.

Possible breaking changes in FieldFilterSpecification

  • attempted to fix raw use of generics. Please check whether JoinedSubjectServiceImpl.filter works correctly when filtering based on lastUpdateTime (or CourseServiceImpl.calculateGroups with field numberOfGroups greater than zero).

Notes on implementation

This section gives a brief overview how teachers are allocated in STUDENT_GROUPS and TOPICS subjects.

If the subject has lecture sharing by TOPICS, all professors are equally allocated to all groups.

If the subject has lecture sharing by STUDENT_GROUPS, one group should be taught by only 1 teacher. However, some STUDENT_GROUPS subjects have a subset of teachers who share lectures/exercises. If only one shared group exists, the algorithm should allocate those teachers correctly. If multiple shared groups exist, the algorithm does not guarantee correct allocation (as there might not be a way to uniquely determine the shared lecture/exercise groups of a teacher).

Edited by Георгиев Пеце

Merge request reports