Course:CPSC312-2023/Course-Schedule-Recommendation-Tool

From UBC Wiki

Authors: Laura, Steven, Caden

What is the problem?

We have created our own database based on the UBC CPSC Course Schedule and have utilized Prolog in order to provide different functionality that someone trying to schedule their classes would need, such as suggesting a course based on user inputs like timings, a search feature where the user can explore the courses on offer, a filtering feature where the user can filter out courses by year or by words such as "Algorithms". We have also added a timetabling feature which will display the courses the user has inputted and will also notify the user on output if any courses cause conflicts.

What is the something extra?

Calendar Feature

We have utilized Prolog's ability to create and write to files to allow the user to input the course code and a corresponding section, which will then write these courses and their matching information (start, finish, term) to a txt file. This is meant to mimic adding your courses to your calendar from the UBC SSC.

What did we learn from doing this?

We learned that we had to think differently as Prolog is an unusual language to what we were all used to. However for the purpose of our program Prolog was very useful in terms of setting up database and querying our data. We did find it challenging trying to use external packages for Prolog such as for web scraping and we learned that Prolog is not very well supported compared to more popular languages.

Overall for our program, Prolog was very useful and worked well.

Links to code etc.

https://github.com/lkim07/Course-schedule-recommendation-tool