UBC Degree Requirement System

From UBC Wiki

Authors: Heidi Cai, Yanli Qiu

What is the problem?

We will implement a program that takes in a student's transcript and determines if the students has fulfilled the CPSC major requirement. We will use a csv file to represent a student's transcript where the first column of the file will be the course code, the second column of the file will be the course number, the third column of the file will be the grade, and the name of the file will be the student number. The file will be stored in a folder called "transcript".

What is the something extra?

We covered all courses provided by UBC by using web-scrapping to read information for UBC's website directly. We uses functions like "atomic_list_concat", or "downcase_atom" to change the information we read from website to the information we need.

What did we learn from doing this?

We learned that Prolog is a very suitable language for Rules. However when we did web-scrapping in Prolog, the program gave us the answer two minutes after we entered a query for a course information. Therefore, we ended up scraping all courses information and saving them to a file instead of doing web-scraping every time we do a query on course information. We find that even though Prolog is really convenient language for Rules, the running time might be very slow when we need to scrap a large amount of information from internet. Also, when we do web-scrapping, we learned how to only read the information we need by finding the commonality of them. In addition, we learned how to read/write to a file using prolog.

Links to code etc