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,

Design Document link

Share this project:

Updates