Functions
Titling this section “functions” is a little abitious. These are just rules that look like programming language functions. They still have to be written and added to the programs that process plan specifications.
Functional requirements are usually included in an all-of rule
and often reflect faculty-level requirements. Here’s an example:
all of "UMA10 Computer Science Honours Coop" using all passedCourses {
minPassedUnits(20.0)
minPassedUnits(5.0, nonMathCourses)
maxFailedUnits(2.0)
minAverage(CAV, 60)
maxUnits(5.0, unusableCourseAttempts)
maxUnits(25.0, usableCourseAttempts)
minFullTimeTerms(8)
hasMilestone(UENGLPROF)
}- Minimum Units:
minUnits(<A>, <B>): Require at least<A>units in the set of courses,<B>.minPassedUnits(<A>): Require at least<A>units in the setpassedCourses. It is an error ifpassedCourseshas not been previously defined.minPassedUnits(<A>, <B>): Require at least<A>units in the set<B> /\ passedCourses.
That is,<B>is implicitly intersected with the set ofpassedCourses; it is an error ifpassedCourseshas not been previously defined.
- Maximum Units:
maxUnits(<A>, <B>): Require no more than<A>units in the set of courses,<B>.maxFailedUnits(<A>): Require no more than<A>units in the setfailedCourses. It is an error iffailedCourseshas not been previously defined.maxFailedUnits(<A>, <B>): Require no more than<A>units in the set<B> /\ failedCourses.
That is,<B>is implicitly intersected with the set offailedCourses; it is an error iffailedCourseshas not been previously defined.
minAverage(<TYPE>, <A>): Require a minimum average of<A>for the given average type. Allowed types are the ones defined in Quest and are typically one ofCAV,MAV,FAV.- Degree Audit consults Quest for these values. It’s calculated when grades are released. If
it’s not available for the most recent term, it falls back to a previous term.
If a student has switched plans since the averages were last calculated, you’ll get something
like
Manual check: MAV for CSHC not available. Check for a minimum average of 60.You’ll need to either do the check manually or wait for Quest to calculate it.
- Degree Audit consults Quest for these values. It’s calculated when grades are released. If
it’s not available for the most recent term, it falls back to a previous term.
If a student has switched plans since the averages were last calculated, you’ll get something
like
minFullTimeTerms(<N>): Require at least<N>full time terms where a full time term is defined as taking at least 1.5 units (excluding Coop-related courses).hasMilestone(<M>): Student has earned milestone<M>.transferCredit(<BOOLEAN>):true: include courses with transfer credit; exclude others (grading basis code isTRN).false: exclude transfer credits.
inProgress(<BOOLEAN>):true: include in-progress courses (taken in the current term or just passed term; no mark recorded).false: exclude in-progress courses.
These kinds of requirements are relatively easy to add. This list is expected to grow over time.
Best Practices
It is reccomended to use the clause minPassedUnits(<A>,<B>) whenever possible, instead of minUnits(<A>, <B> /\ passedCourses).
We are currently unable to add averages for Minors and Options.