Degree Audit User Training | Coding For Efficiency

Why does efficiency matter?

As with any large, complex automated system, you want to strike a balance between the automation, and some hand manipulation of records. This is called the rule of 80/20, where you want the system to perform 80% of the work for you, and you manage 20% of it.

There is never going to be a way to code a degree plan to reduce the need to manage 20% of the work you perform in the system. Therefore, a balance must be struck by coding for the maximum number of cases possible and handling the outliers on a case-by-case basis.

The more complex the system is, the longer each audit runs. The more time each audit needs to run, the heavier the demand on the system resources and the greater the extent to which audits are backed up.

What can be done to increase efficiency?

Some simple coding steps that can be done to improve efficiency are:

Smarter course lists:
Order the filters in your course lists in a way that will minimize the number of hits performed by the system in determining if any classes can meet a given requirement.
Smarter Restrictions:
When possible, choose scope or subset restrictions over specifications within the requirement itself to limit the types of classes allowed to count.
Minimize branches:
Use branching only as a last resort and keep branching sequences as short as possible.
Course relations:
Take advantage of course relations to simplify and combine course lists.
Scope Reuse:
Set scope reuse conditions for requirements rather than complicating restrictions or course lists.

What do you mean smarter course lists?

When the system is processing course lists, it builds the sequence of the course list and applies each individual filter to the student’s record. These filters are then applied one by one to the list of courses available for the requirement.

Example 1 

Course List Example 1
Sequence Field of Study Course Nbr Title CCYYS Course Level
1 E   N/A   Upper Division
2 E   N/A    
3 E 3SLIT N/A    

In this course list there are three filters, and each filter is processed in the order in which it is sequenced. In filter #1,  any upper-division English courses will be considered first. This is a legitimate use of prioritization. If not enough upper-division English courses can be found to satisfy the requirement (or option), then all English courses are considered in filter #2. However, since E 3SLIT is logically included in both the preceding filters, filter #3 would cause us to make an extra, unnecessary search of the student's coursework and should be eliminated.

Example 2 

Course List Example 2
Sequence Field of Study Course Nbr Title CCYYS Course Level
1 HIS 350L N/A   Upper Division

In this course list there is only one filter, but it is over-coded. HIS 350L is upper-division by definition. Therefore the reference to course level adds to processing overhead unnecessarily.

What do you mean smarter restrictions?

IDA 2.0 processes restrictions before requirements.Therefore, it is more efficient to let the restrictions remove as many courses as possible before the requirements are evaluated.

Courses not Counting
Sequence Field of Study Course Nbr Title CCYYS Grade(s) Course Type
1     N/A   CR In-Residence
2     N/A   CR Online Extension
1     N/A   CR Classroom Extension
1     N/A   CR Study Abroad

If you have a rule that prohibits pass/fail of any type from counting towards requirements of a particular scope, or a group of scopes, it is better to remove pass/fail courses by using either a scope restriction or a subset restriction.

Take the hypothetical case of a student who has the following coursework (12 classes, 6 of which are pass/fail).

Student Courses
Course Grade Course Grade Course Grade
GOV ABC CR PHY ABC CR GOV XYZ C
HIS ABC A- M 123 CR HIS XYZ B
HMN ABC C HDO 587 CR HMN XYZ A
LAS ABC B LAS 456 CR F A XYZ CR
 

If the CR courses were excluded by one subset restriction (applying to major requirements as a group), then at most 48 hits would be needed to prohibit those courses from counting toward all major requirements (12 courses x 1 restriction x 4 course list filters). On other hand, if the restrictions were connected to 10 individual major requirements, the number of hits could add up to 480 or more (12 courses x 10 restrictions x 4 course list filters). In general, it is better to state restrictions separately whenever possible and attach them to specific requirements only when they apply to those requirements exclusively. More detailed recommendations are given immediately below.

  1 Scope Restriction vs 10 Requirement Restrictions 
Scope Requirements
40 classes = 160 hits 40 classes = 160 hits
  160 X 10 = 1600 hits

Selecting the best restriction

When you are creating or revamping your degree plan, it is important to maximize your time and the audit's efficiency by selecting the most appropriate restriction type.

What does the restriction apply to and when to use:

Whole degree plan: Use a degree plan restriction.

One or more scopes: Use a scope restriction.

Some (but not all) requirements for a particular scope: Use a subset restriction.

One requirement: Use a requirement restriction.

One option of a requirement: Use an option restriction.

 

Ordering your restrictions this way will make the audit more efficient. You will only have the one restriction to override that controls how a course might count toward the degree.

What do you mean minimize branches?

While most requirements are single requirements where the whole requirement can be coded without a branch, there are those that will not fit the simple requirement structure. These more complex requirements are called “branched requirements", and should only be used as a last resort. If you must use a branched requirement, build as few branches as possible. One way to determine if you can code the requirement without a branch is to map it out and see what courses/section/options can be paired together.

The Foreign Language requirement for some degree plans in the College of Natural Sciences is a good example of a branched requirement. The requirement contains option A, the two-semester course requirement; and option B or C, the language/culture course combination with the 2 course culture combination. Option A will not show as met until the student has taken all the required courses. If option A is not satisfied, then it checks option B or C. If there is at least one course that satisfies option B or C, it will show as partially satisfied.

The fewer branches you, have the less time the system takes to process the connected requirements. Combining the branches in a requirement does not equate to limiting the options a student has to meet the requirement.

What do you mean course relations?

When you are building course lists and requirements, you should use the course relations system to guide you. For example, if there are two courses in an inventory-same-as relationship in your course list, IDA 2.0 processing will automatically accept the other as a match, such as in the example below.

Course Relation Example 1
Sequence Field of Study Course Number Title
1 HIS 350L 33-Heresy and the Inquisition
2 R S 357 1-Heresy and the Inquisition

Adding both HIS 350L.33 and R S 357.1 to the course list is redundant. Only one of the two is needed.

Conversely, if you need to create a sequence of courses, such as physics, you should rely on the duplicate relationship to your advantage. The degree plan statement for PHY 303K is (Only one of the following may be counted without prior approval of the department: Physics 301, 302K, 303K, 309K, 317K.) The degree plan statement for PHY 303 L is (Only one of the following may be counted without prior approval of the department: Physics 302L, 303L, 309L, 316, 317L.) Therefore, if you require 6 hours of physics you can place all of these courses into one course list with the assurance that if a student were to take, say, both PHY 302K and 303K, one of those courses would be removed as a duplicate. The only reason to break them into different course lists is to ensure that students take the proper sequence of physics courses (PHY 303K & PHY 303L...).

 

Course Relation Example 2
Sequence Field of Study Course Nbr Title CCYYS-Unique
1 M 408C Differen and integral calculus    
1 M 808A Calculus I    

M 808A was retired and replaced with M 408C. Replacement relations are not time bound, so updating the course list with either one of these courses will allow the other course to be picked up as an alias. It is recommended that you use the most recently offered course for this purpose.

Scope Reuse

When the system starts to process a requirement, the first thing it pulls in are courses based on the reuse selection. If you have set your coursework reuse correctly and are sequenced to maximize the effect, then you do not need to restrict the courses that you are not allowing to count for a requirement. Below are two core requirements and one major requirement:

 

Sequence/Reuse Example 1
Sequence ID Level Scope Description
1 10 U Core E 316K is required
2 15 U Core RHE 306 is required
3 20 C Major 3 more hours of RHE or E

In this example, the major requirement's scope reuse does not allow core courses to count. RHE 306 and E 316K are core requirements that are processed before major rules based on how they are sequenced, but they will not count towards the major because core is not listed under major scope reuse. As a result, no restriction is needed to keep these core courses from counting toward this requirement.

Need More Information?

See a basic overview of how the core processor works.