This project aims to optimize university timetable scheduling using a genetic algorithm. The goal is to prioritize back-to-back schedules and select e-learning lectures to minimize the number of days students need to attend in-person classes. The project reads timetable data from a JSON file and visualizes the resulting optimized schedule.
- Selenium: Selenium to scrape data from NUS ECE website.
- Genetic Algorithm: Utilizes a genetic algorithm to find the optimal timetable.
- Back-to-Back Scheduling: Prioritizes back-to-back classes to reduce gaps between lectures.
- E-Learning Selection: Selects e-learning lectures to minimize the number of days with in-person classes.
- Visualization: Provides a visual representation of the optimized timetable.
-
Clone the repository:
git clone https://github.com/JosephBiefed1/NUS-modreg-optimizer.git cd NUSMODS -
Install the required dependencies:
pip install -r requirements.txt
- Select your timetable according to the format in select_mods.txt.
- Run the optimization script:
python main.py
- View the resulting optimized timetable.