The Egregious Process:
Before the start of every semester, the Academics department has to perform the following tasks:- An Excel workbook for the current semester is created, that contains all the faculty, courses and sections that are present in each department.
- The courses, faculty and sections that will be available in the upcoming semester are listed on separate sheets.
- A sparse matrix for the current semester is created on a separate sheet, with faculty names on the left column and course short names on the table header.
- The current courses are assigned to the teachers while manually updating their assigned and unassigned loads.
- After courses are assigned to faculty, their sections are created, and faculty are decided for teaching each section.
Problems faced due to this process:
Needless to say, this manual process is the root of many problems being faced by the university. A non-exhaustive list of the problems is as follows:
-
Our FYP supervisor, the Head of Department for CS, showed us the sparse matrix he
had built for the current semester (Fall 2023). Just for an idea, 80 faculty and
200 courses (at least), created a sparse matrix of
200 courses x 80 faculty = 16,000 cells
- Timetable clashes: This process results in clashes for students from all departments. As a result, the academics department keeps tweaking and sometimes outright scraps the time table. This process stops only after the first 6 weeks (sometimes earlier) of the semester passes.
- Teacher preferences: They are not catered in the current system. If a faculty member specifically asks for teaching a course, then they may be accommodated.
- Teacher history: Similarly, the teaching history of the faculty may not play any role in the assignment.
- Over and under assignment: Some faculty members may be assigned courses over or under the threshold. This is fixed afterwards when faculty member notifies the Academics department.
Solution Design:
After extensively understanding this problem, we came to the conclusion that the problem was present in the university's business process, but as we cannot change it, we decided to create a solution to mitigate the problem as much as we could.
Our solution contains 2 systems. A web app (using React, Express, Node JS, and MySQL) and a desktop app (C# and Unity Engine). They both serve different purposes and as their design is modular, they can also be used individually.
Web Application
The purpose of the Web App is management of information and creation of course allotments for the faculty members. This web app also streamlines the problematic manual process currently in place.
The web app performs the following functions:- Management of faculty, courses, and sections.
- Assignment of faculty based on status (on campus or on leave).
- Easier course assignment considering faculty preferences and history.
- Customizable course loads for faculty.
- Bulk data addition through CSV files.
Desktop Application
The purpose of the Desktop App is solely timetable management, which is no mean feat. Clash resolution has become increasingly difficult as number of students, sections and courses have grown.
Therefore, we developed a knowledge-based system that follows rules/constraint that we define for the system. The custom rules are defined in a text file in easy to use and understand format. Some default constraints present in the system are:
- Same faculty member cannot have more than 1 class in the same time slot.
- Same section cannot have more than 1 class in the same time slot.
- Specific courses cannot be adjacent to each other
- Specific courses cannot be in a certain time slot
- Certain faculty members cannot have classes in certain time slots