A homework scheduler based on evolutionary genetics.
One of the most challenging tasks about college is scheduling. Between classes, extra-curriculars, sleep, and time with friends, figuring out how and when you need to complete your assignments becomes an enourmous task. To help mitigate some of that stress, we designed and implemented an intelligent homework scheduling application. Accepting students’ weekly schedules and a list of their assignments, Let’s HW It makes use of a homebrew genetic algorithm to find and suggest an agenda that works for a user.
If you want to read more about the design process and implementation details, feel free to skim through (or read) our more comprehensive report here.
By design, Let’s HW It is cross-platform and environment independent. There are only two prerequisites before you can get it up and running on your local machine:
Once you’ve installed the prerequisites, simply clone this repository, install the dependencies, and run the program. You can do all of that via:
$ git clone https://github.com/lemoment/letshwit.git
$ cd letshwit/src
$ poetry install
$ poetry run python cli.py
You can adjust the schedule and assignment inputs by adjusting the CSVs in the data
directory. In the future, inputting your own data will be as simple as syncing with Google Calendar or Outlook Calendar.
If you’re finding that your proposed solutions could be better, feel free to tweak the algorithmic paramters in src/tunables.py
. Make sure you know what you’re doing though! Changing things like TOURAMENT_SIZE
can have unintended (and often negative) consequences.
This work is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License by Elias Gabriel and Dieter Brehm. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.