From UBC Wiki

Course Recommender Chat Bot

Authors: Raghav Thakur and Matthew Siu.

What is the problem?

State the general problem. If applicable, tell us what information you will use, e.g., a link to some web site that provides the information you used. What will you do?

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?

What is the in-depth aspect you will do? If the problem is related to some other group's project, tell us how they fit together. If in doubt, include the information.

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?

(This should be written after you have done the work.) What is the bottom-line? Is logic programming suitable for (part-of) the task? Make sure you include the evidence for your claims.

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.

Source Code