There is a script that can scrape the CSE department of UCSD for courses,
their names, number of unites, descriptions, and requirements. After
scraping, a database is created. The scraping is implemented in the file
scrape.pl
and can be run as a script from the command line:
$ swipl -s builddb.pl
This creates a "database" file, db.pl
, used by the backend.
At the moment, the backend exposes one predicate, courses/1
. It can
be used to get a list of all courses. The result is a list with one
element per course. Each element is a term course/5
, with arguments:
- Course ID, an atom
- Course Title, an SWI7-style string
- Units, a term (see below)
- Text description, an SWI7-style string
- Prerequisites, an atom (for now)
Units are represented as one of three terms:
exactly(Units)
: a course is worthUnits
units (an integer)from_to(From, To)
: a course is worth anything fromFrom
toTo
unitsone_of(List)
: a course is worth one of the integer values inList
The user should decide how to represent these for a human reader.