- 1 Course Recommender Chat Bot
- 1.1 What is the problem?
- 1.2 What is something extra?
- 1.3 What did we learn from this?
- 1.4 Source Code
Course Recommender Chat Bot
Authors: Raghav Thakur and Matthew Siu.
What is the problem?
Are you a Computer Science student who is unsure about the courses you need or want to take? Are you looking to sub-stream into a particular field of Computer Science but are overwhelmed by the number of different courses the faculty at UBC offers? It can be difficult to create a schedule when you have many options and limited number of credits available. Our goal is to create a natural language interface that can answer questions a student might have about the courses they should take. For example, "Which Computer Science courses should I take if want to specialize in AI?" or "I want to learn more about data mining what courses would you recommend?" or "I want to take CPSC 322 what are the prerequisites?".
The general problem is to provide the user with information on relevant courses to take based on their interests or sub-field. To determine any information regarding those courses offered in Fall of 2017. We will be using Prolog's logical capabilities to solve these problems. We will be using UBC's SSC to provide information of the course logistics and add them to our database. We will also be using the Computer Science website to determine the courses required for each sub-field.
What is something extra?
We plan on making a mock application that requires a user to login with their account details. It will authenticate the user and ask them to select their interests within Computer Science. It will be an interactive application where the user can find courses and ask which courses are relevant to their sub-field ex. AI or Software Engineering. Based on their interests they can select which courses to take and schedule their times.
What did we learn from this?
Based on our research and experience with our project we found, logic programming and in particular Prolog, is suitable for asking the user questions, finding courses from the knowledge base, and scheduling courses with given constraints. We found Prolog to be very straight forward and logical in building our queries and database, given our database is not too complex.
Using Prolog for Logic Programming is feasible and convenient for our application. It allows us to streamline the process of implementing databases and multiple queries to a simple assistant.