CurricularAnalytics / CurricularAnalytics.jl

CurricularAnalytics.jl is a toolbox for studying and analyzing academic program curricula.
GNU Affero General Public License v3.0
23 stars 19 forks source link

validate curricula on requisite constrains #126

Closed haydenfree closed 3 years ago

haydenfree commented 3 years ago

There should be a test on requisite contrains. Extend isvalid_curriculum to handle this.

Example:

    Course A   --- PREREQ --> Course C
      |                          |
     COREQ                   STRICT-CO
      |                          |
      V                          V
    Course B                   Course B

Course A lists Course B as a corequisite (may be taken prior to or at the same time as Course A). Course A is a prerequisite of Course C (Course A must be taken before Course C) Course B is listed as a strict corequisite of Course C (MUST be taken at the same time as Course C) These three cannot all be true. This locks Course B to be taken after Course A, but that violates the first corequisite constraint.