Thuật toán sắp xếp lịch giảng dạy dự kiến:
Bước 1: Xét môn có duy nhất 1 giảng viên dạy => ưu tiên xếp trước
Bước 2: Xét các lớp khóa mới ưu tiên xếp trước, Các môn có nhiều giảng viên dạy thì theo tỉ lệ trọng số để chia lớp, vẫn tính lớp ghép = 2x lớp đơn (Chuẩn hóa tỉ lệ và kiểm tra bộ số theo tỉ lệ có tổng đúng bằng tổng số lượng lớp của học phần - phân biệt lớp ghép và lớp đơn, giảm/tăng 1 lớp cho 1 số trong bộ nếu tổng bộ số bị vượt quá tổng số lượng lớp - ưu tiên không bị trùng lịch đối với các lịch đã được sắp xếp và tiếp đến thường ưu tiên cho hệ số alpha cao hơn để tinh chỉnh, sao cho không có lớp học phần nào bị trống giảng viên)
Lưu ý khác cần chú ý:
UPDATE schedule_detail SET WEEK_STUDY = ' 5 78 ' AND WEEKS = '[15,17,18]' WHERE CLASS_CODE = 471752 AND ENROLL_CLASS = '64PM2' AND DAY_STUDY = 7
) (Do không khớp lịch của 2 lớp này do được ghép chung vào 1 lớp, chỉ khác đúng 1 tuần) Issues 1UPDATE schedule_detail SET SESSION = 1 WHERE CLASS_CODE = 471791 AND ENROLL_CLASS IN ('65PM5', '65PM6') AND START_DATE = '2023-04-11'
> (Do bị trùng lịch, môn này chỉ có 1 giảng viên nhưng dạy tất cả các lớp trong cùng 1 ca, 1 ngày) Issues 2UPDATE schedule_detail SET SESSION = 1 WHERE CLASS_CODE = 471791 AND ENROLL_CLASS IN ('65PM3', '65PM4') AND START_DATE = '2023-02-22'
> (Do bị trùng lịch, môn này chỉ có 1 giảng viên nhưng dạy tất cả các lớp trong cùng 1 ca, 1 ngày) Issues 2