# 4. Programs of Study and Subject Requirements

The program of study (plan) record must be linked to a grade\_span record. There can be only one grade\_span per program plan as programs plans can not cross over a grade\_span.

However, a plan may cover a period less than the grade span, for example there may be a 6th grade Remedial Plan that covers just one year of the 6th-8th grade span. After that plan is complete, the student is re-evaluated and placed in a new plan.

#####   


### Auto Enter Start and End Grade based on related Grade Span

When entering a new Program of Study, the user must select a grade span. The grade span has a start grade and end grade, covering the entire span. Default the start grade fields and end grade fields in the program of study to the same as the grade span, then let the user override them.

<table border="1" id="bkmrk-calendar-functions-n-1" style="width: 100%; height: 329.391px;"><colgroup><col style="width: 11.6193%;"></col><col style="width: 12.6056%;"></col><col style="width: 75.7752%;"></col></colgroup><tbody><tr style="height: 70.4219px;"><td style="height: 70.4219px;">[Programs of Study](https://bsa.lynops.com/books/personal-education-management-system/page/4-programs-of-study-and-subject-requirements-tbd)</td><td style="height: 70.4219px;"><span style="color: rgb(224, 62, 45);">Not started</span></td><td style="height: 70.4219px;">#### 4.1 **Auto-enter start and end grade**


</td></tr><tr style="height: 63.3906px;"><td style="height: 63.3906px;">  
</td><td style="height: 63.3906px;">*Purpose*</td><td style="height: 63.3906px;">*The user will select the grade span for the plan. The grade span has start and end grade levels. Auto enter the same start and end grade levels into the plan when the grade span is selected to reduce user workload.*</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">*Trigger*</td><td style="height: 29.7969px;">*A change in grade span in the plan record.*</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">*Conditions*</td><td style="height: 29.7969px;">*Grade spans are created.*</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">*Sequence*</td><td style="height: 46.5938px;">*After the record is created, when ever the grade span changes.*</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">Step 1</td><td style="height: 29.7969px;">Set [Plan](https://cs.studianova.org/admin/plans) start grade equal to [Grade Span](https://cs.studianova.org/admin/gradespans) start grade</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">Step 2</td><td style="height: 29.7969px;">Set [Plan](https://cs.studianova.org/admin/plans) end grade equal to [Grade Span](https://cs.studianova.org/admin/gradespans) end grade</td></tr><tr><td>  
</td><td>Step 3</td><td>The user can then update the grade levels, so do not allow save if

[Plan](https://cs.studianova.org/admin/plans) start grade is greater than end grade,

[Plan](https://cs.studianova.org/admin/plans) end grade &gt;[Grade Span](https://cs.studianova.org/admin/gradespans) end grade

[Plan](https://cs.studianova.org/admin/plans) start grade &lt; [Grade Span](https://cs.studianova.org/admin/gradespans) start grade

Show the message "Error in plan grade levels"

</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">END</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;"> </td></tr></tbody></table>

<table border="1" id="bkmrk-programs-of-study-no" style="width: 100%; height: 449.891px;"><colgroup><col style="width: 11.6193%;"></col><col style="width: 10.5039%;"></col><col style="width: 77.8768%;"></col></colgroup><tbody><tr style="height: 70.4219px;"><td style="height: 70.4219px;">[Programs of Study](https://bsa.lynops.com/books/personal-education-management-system/page/4-programs-of-study-and-subject-requirements-tbd)</td><td style="height: 70.4219px;"><span style="color: rgb(224, 62, 45);">Not started</span></td><td style="height: 70.4219px;">#### 4.2 **Auto-enter total terms**


</td></tr><tr style="height: 63.375px;"><td style="height: 63.375px;">  
</td><td style="height: 63.375px;">*Purpose*</td><td style="height: 63.375px;">*The program plan stores the total terms of the plan, this may be calculated from the start and end grade. However, the user may change the values.*</td></tr><tr style="height: 35.3906px;"><td style="height: 35.3906px;">  
</td><td style="height: 35.3906px;">*Trigger*</td><td style="height: 35.3906px;">*Any change to the [Plan](https://cs.studianova.org/admin/plans) start or end grade fields* </td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">*Conditions*</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">*Sequence*</td><td style="height: 46.5938px;">  
</td></tr><tr style="height: 52.1875px;"><td style="height: 52.1875px;">  
</td><td style="height: 52.1875px;">Step 1</td><td style="height: 52.1875px;">Set [Plan](https://cs.studianova.org/admin/plans) total terms equal to ([Plan](https://cs.studianova.org/admin/plans) end grade - [Plan](https://cs.studianova.org/admin/plans) start grade + 1) x [School Configuration](https://cs.studianova.org/admin/crmfields) terms\_per\_year</td></tr><tr style="height: 35.3906px;"><td style="height: 35.3906px;">  
</td><td style="height: 35.3906px;">Step 2</td><td style="height: 35.3906px;">Set [Plan](https://cs.studianova.org/admin/plans) end grade equal to [Grade Span](https://cs.studianova.org/admin/gradespans) end grade</td></tr><tr style="height: 86.9375px;"><td style="height: 86.9375px;">  
</td><td style="height: 86.9375px;">Step 3</td><td style="height: 86.9375px;">The user can then update the grade levels, so do not allow save if

[Plan](https://cs.studianova.org/admin/plans) total terms &gt; [Grade Span](https://cs.studianova.org/admin/gradespans) total terms

Show the message "Error in total terms"

</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">END</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;"> </td></tr></tbody></table>

### Subject Requirements

The subject requirement records specify how many units of the subject a student must take under that specific plan. They relate the subjects to the programs in a many to many relationship. There will be multiple subject requirement records for each plan, but each subject requirement only applies to one plan. Multiple subject requirement records will be related to a single subject record.

For example, under the honors program, the requirements for English are 40 units ( four years, two terms). But under the basic diploma, the subject requirements for English is only three years, or 30 units.

The user creates subject requirements records when making a plan of study, then selects the classes that fulfill that requirement by creating template records.

<table border="1" id="bkmrk-programs-of-study-co" style="width: 100%; height: 443.109px;"><colgroup><col style="width: 11.6193%;"></col><col style="width: 12.3587%;"></col><col style="width: 76.0221%;"></col></colgroup><tbody><tr style="height: 70.4219px;"><td style="height: 70.4219px;">[Programs of Study](https://bsa.lynops.com/books/personal-education-management-system/page/4-programs-of-study-and-subject-requirements-tbd)</td><td style="height: 70.4219px;"><span style="color: rgb(22, 145, 121);">Completed</span></td><td style="height: 70.4219px;">#### 4.3 **Concatenate Subject Requirement Name**


</td></tr><tr style="height: 63.375px;"><td style="height: 63.375px;">  
</td><td style="height: 63.375px;">*Purpose*</td><td style="height: 63.375px;">*Ensure a unique record name that reflects all relevant information and avoid confusing subject requirements with subjects.*</td></tr><tr style="height: 35.375px;"><td style="height: 35.375px;">  
</td><td style="height: 35.375px;">*Trigger*</td><td style="height: 35.375px;">*Any change fields used to create the name*</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;">*Conditions*</td><td style="height: 29.7969px;">  
</td></tr><tr style="height: 46.5938px;"><td style="height: 46.5938px;">  
</td><td style="height: 46.5938px;">*Sequence*</td><td style="height: 46.5938px;">  
</td></tr><tr style="height: 52.1875px;"><td style="height: 52.1875px;">  
</td><td style="height: 52.1875px;">Step 1</td><td style="height: 52.1875px;"><span style="font-weight: 400;">Concatenate: [Subject Requirement](https://cs.studianova.org/admin/subjectrequirement) Subject Name “.” Plan Name “.U” Units Required : Example: “English.Standard 23.U20”</span></td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">END</td><td style="height: 29.7969px;">  
</td><td style="height: 29.7969px;"> </td></tr></tbody></table>