Skip to content

Materials for the Technica 2022 Tech+Research "course assistant" project

Notifications You must be signed in to change notification settings

mariapasaylo/technica-2022

 
 

Repository files navigation

An Automated Assistant for Course Management

A Python algorithm that utilizes Z3-Solver to automatically assign the appropriate time slot and location for a given course

Background 💡

Course scheduling is a real problem at many universities, as it is difficult to account for multiple factors like instructor availability, room sizes, etc., while making sure that all classes are eventually scheduled. Since much of this process is still done manually for departments at UMD, we wanted to come up with an automated solution to satisfy scheduling requirements with less intensive manual effort.

Current progress 🏃

  • Add in code to read input from a file instead of editing the program
  • Add in code to schedule classes in different days (MWF or TT) and durations (50-minute intervals on MWF or 75-minute intervals in TT)
  • Increase the parameters to include professor who will teach the course
  • Add in code to make separate schedules for lectures and discussions
  • Visualize results onto Google Calendar
  • Add in code to automate importing the calendar.csv to Google Calendar (Ongoing)

What's next 🧩

  • Add in code to schedule time slots for longer courses (i.e. labs that are over 75 minutes long)
  • Add in code to schedule other day patterns (i.e. Monday and Wednesday, any other day)
  • Add in code to prevent putting small classes in big lecture halls
  • Add in code to allow multiple lectures and multiple discussions for one class to happen at different classes and buildings
  • Add in a Professor class to account for professor's time and location preferences
  • Deploy the algorithm as a function onto a functioning web app
  • Reconfigure input cell to enable program to accept CSV, JSON, and text file

Technologies used so far 🛠️

  • Google Colab
  • Python
  • SAT Modulo Theories
  • Z3-Solver
  • Pandas
  • Javascript
  • Google App Script
  • Google Calendar

About

Materials for the Technica 2022 Tech+Research "course assistant" project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 97.2%
  • Python 2.0%
  • JavaScript 0.8%