Inspiration
We are a group of third-year computer science and engineering students trying to find our most optimal schedule with factors like early/late graduation, quarterly workload, and elective/concentration interests. We wanted to make this process a lot easier for those who come after us and provide a service that can develop the optimal schedule with various factors such as quarterly workload, choice of electives, the difficulty of individual courses, and quarters offered for courses.
What it does
The main algorithm for finding optimal schedules is the directional graph with nodes featuring a unique class (as an object with properties such as professors, credits, department, and course number). The algorithm keeps in mind the user's preference of preferred workload range of hours per week, preferred course unit range per quarter, and prerequisites of every class. As the algorithm traverses through the graph, the algorithm will find an ideal set of classes for a quarter append it, and move forward to the next quarter.
How we built it
Attached is our architecture: link
We split the tasks as evenly as we could, giving each team member an equal share of work. We then researched and planned our individual tasks out and after we each had our own finished projects we combined them into a finished final project.
Challenges we ran into
A major challenge for us was getting accurate course information to input into the algorithm we built. We attempted to web-scrape the course catalog to get all the necessary course information, but the way the course catalog was developed made it extremely challenging to do so. We ended up having to manually input course information, but hopefully, in the future, we'd love to work with UCSC to automate that process entirely.
Accomplishments that we're proud of
Creating the algorithm for the project was a very difficult and complex task, as we had to design a custom algorithm from the ground up. We implemented a directed polytree and then took elements from BFS to make our own custom search algorithm.
What we learned
Making projects that work on a large scale such as the one we created, can be very difficult because of the need to connect different working parts. Having all team members be on the same page about what their code should do is essential for making all these small parts come together
What's next for SlugAdviser
As stated previously, we want to work with UCSC to automate the class selection process so we can make our web service accessible to all majors. Furthermore, the project is far from perfect, there are plenty of tweaks to pre-existing features as well as new features to add. We want to add more features to avoid class conflicts,
Log in or sign up for Devpost to join the conversation.