code: @ProblemFactCollectionProperty
      private List<CourseConflict> calculateCourseConflictList() {
          List<CourseConflict> courseConflictList = new ArrayList<>();
          for (Course leftCourse : courseList) {
              for (Course rightCourse : courseList) {
                  if (leftCourse.getId() < rightCourse.getId()) {
                      int conflictCount = 0;
                      if (leftCourse.getTeacher().equals(rightCourse.getTeacher())) {
                          conflictCount++;
                      }
                      for (Curriculum curriculum : leftCourse.getCurriculumList()) {
                          if (rightCourse.getCurriculumList().contains(curriculum)) {
                              conflictCount++;
                          }
                      }
                      if (conflictCount > 0) {
                          courseConflictList.add(new CourseConflict(leftCourse, rightCourse, conflictCount));
                      }
                  }
              }
          }
          return courseConflictList;
      }
docs: ************************************************************************