me

Project Background

In the beginning of every academic year, a course timetable is designed by every department in the University. Problem arises since the number of courses being offered is less than the number of timetable slots available in a week. There are several conflicts to be considered. A course can be classified into two categories: core and elective. Core courses within a department should not have overlapping class sessions. Classes taught by the same course instructor should also not overlap. Moreover, some students may also take courses from other departments as an elective, minor or double major requirement. Therefore, some courses from across departments should also not overlap.

Aside from solving these conflicts, this project aims to create an intelligent timetable based on the students’ preferences on what courses and how the courses should be scheduled. This is done by using constraint satisfaction algorithm and other AI techniques to produce a conflict list.

Project Supervisor: HF Ting

Team:

Felicia Chen

Teresa Gracia Lukito

Project Objective

1. A website to gather information from the students and the department


A website is created for students and department to input their preferences. Students can select what courses to be taken in the upcoming semesters. Then, how the courses are to be scheduled are indicated using drag-and-drop. Department indicates their preferences on the courses instructors for each course.


2. A standalone intelligent timetabling system


Constraint satisfaction algorithm is implemented based on the information gathered. The final timetable will be displayed, along with a downloadable PDF file.

Methodology

Phase 1

Input


Department Website
The department is currently in charge of allocating teachers to courses and ensuring that the time slots assigned to them do not clash with their personal schedule, and that core courses do not overlap with one another. 

Student Website
Students will be given the opportunity to enter which courses they will be interested in taking for both the first and second semester, and this will serve as one of the input Key Performance Indicators (KPI) for the AI Model to be built. 

Constraint Satisfaction


The main bulk of this project will focus on finding the most efficient and accurate constraint satisfaction algorithm to implement such that the schedule produced will have minimal conflicts.
These constraints include, but are not limited to, the following:
  • Core Courses
  • Prerequisites
  • Pre-defined Timetable Patterns
  • Student Preferences

Output


Given the input and different constraints, the system will ultimately produce a downloadable PDF file consisting of a proposed timetable and a conflict list of classes that cannot occur simultaneously.

Phase 2

Once the system is able to produce an effective timetable, the department will submit this proposed schedule to HKU’s Room Booking Unit. The Room Booking Unit is in charge of allocating rooms to these classes, depending on the availability and capacity of classrooms at HKU for that specific time slot. A recurring issue that the department has faced is that the time slots of the revised timetable from the Room Booking Unit may cause clashes with the constraints in the CS department. Hence, Phase 2 will consist of a tool that checks the constraints against the revised timetable; it will notify the user of any clashes the new timetable has with the constraints used to construct the original timetable. 

Technology

To build the front-end of this Intelligent Timetabling Solution, Bootstrap will be used along with CSS and JavaScript. The backend will be built on Python, which consists of many libraries that can be leveraged such as producing PDF files, implementing various AI techniques, et cetera. 

Timeline

Week 1 - 4 (September 1 - 29, 2019)

  • Algorithm Research and Planning
    • Research on existing off-the-shelf timetabling solutions
    • Research on potential constraint-satisfaction algorithms to be implemented
    • Understand the current system
    • Research on related works
  • Software Design and Setup
    • Determine the software to be used to build the system
  • Phase 1 Deliverables (29 September, 2019)
    • Submission of Detailed Project Plan
    • Deploy Project Webpage

Week 5 - 9 (September 30 - November 30, 2019)

  • Software Implementation
    • Implement UI for both Department and Student Users
      • Receive timetable and teaching constraints from Department Users as input for the algorithm
      • Receive preferred classes from Student Users as input for the algorithm
    • Implement constraint-satisfaction algorithm & unit-test for correctness and effectiveness
    • Link front-end and back-end to be able to produce PDF output of constraint list
    • Prototype Deployment

Week 10 - 19 (December 1, 2019 - February 2, 2020)

  • Phase 2 Deliverables (2 February, 2020)
    • Prepare interim report document
    • Prepare presentation documents and first demo
  • Integration Testing
    • Test the front-end against the backend to ensure flow of data in the software is correct

Week 20 - 31 (February 3 - April 19, 2020)

  • Implement additional requirements
    • Convenient system to update the timetable for maintenance purposes
    • Notification system to update users on any constraints of schedule given by the University Room Booking Unit
    • Unit Testing
  • Phase 3 - Construction Deliverables (19 April 2020)
    • Finalize project and test cases
    • Produce Final Report

Week 32 - 35 (April 20 - May 5, 2020)

  • Final Presentation
  • Project Exhibition (May 5, 2020)