Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Grading Enhancement: default grade designations configurable from settings #281

Open
2 of 7 tasks
jmakowski1123 opened this issue Aug 25, 2023 · 11 comments
Open
2 of 7 tasks
Assignees
Labels
product review complete PR has gone through product review

Comments

@jmakowski1123
Copy link

jmakowski1123 commented Aug 25, 2023

Abstract

For Contributing Author:

This is the Primary Product Ticket for the following community contribution: Make the default grade designations configurable from Studio settings

Checklist prior to undergoing Product Review:

The following information is required in order for Product Managers to be able to review your pull request:

  • Explanation of the problem being solved
  • Description of how users will be impacted, and which users will be impacted
  • Screenshots or video showing the functionality or fix, before and after
  • Reproduction steps and/or testing steps

Only if necessary:

  • If necessary, links to corresponding configuration changes
  • If necessary, links to corresponding enablement changes, particularly waffle/toggle status details

Related PRs

For Product Manager doing the review:

What criteria should be analyzed from Product to approve a PR?

  • The problem being solved by the feature or fix is clear.
  • There is clarity on how the change or fix will impact the end user.
  • It is clear that the change will not negatively impact users or other areas of the platform.
  • The change is implemented comprehensively.
  • Any changes to UI use the current, standard Paragon Design System: https://paragon-openedx.netlify.app/
@jmakowski1123 jmakowski1123 converted this from a draft issue Aug 25, 2023
@github-actions
Copy link

Thanks for your submission, @openedx/open-edx-project-managers will review shortly.

@jmakowski1123
Copy link
Author

Currently a maximum of 5 grade cutoffs are configurable from the Grading Settings in Studio.
However, some universities might require more that 5 cutoffs depending on their grading policy.

Also, when a new grade cutoff is added, a default grade desgination is assigned to this cufoff. These default grade designations are hard coded in the javascript code. This means, if the maximum number of grade cutoff are to be increased, more default grade designations also need to be defined.

This PR address this issue.

In this PR, a new setting DEFAULT_GRADE_DESIGNATIONS is introduced which can be used to define the pass grade designations. This has a default value of ['A', 'B', 'C', 'D'], which is the current default.

The maximum number of grade cutoffs is now dependent on the length of the grade designations list, instead of being hard-coded to 5.

As before, the failure grade designation is always set to F which cannot be changed and is not to be included in the DEFAULT_GRADE_DESIGNATIONS list.

Ex. If there is a need to configure 7 grade cutoffs instead of the default 5, the following setting can be used:

DEFAULT_GRADE_DESIGNATIONS = ['A+', 'A', 'B+', 'B', 'C', 'D']
The DEFAULT_GRADE_DESIGNATIONS list must have more than 1 desginations, otherwise the default grade designations falls back to ['A', 'B', 'C', 'D'].

Supporting information
Link to other information about the change, such as Jira issues, GitHub issues, or Discourse discussions.
Be sure to check they are publicly readable, or if not, repeat the information here.

Testing instructions
Default Scenario
Start studio in devstack using the PR branch
Open an exisiting course or create a new one.
Go to Settings --> Grading
Click on the + button repeatedly to add new grade cutoffs
Verify that maximum 5 grade cutoff designations are configurable with the values 'A', 'B', 'C', 'D' and 'F'
Modify Grade Designations
Add this to cms\envs\devstack.py : DEFAULT_GRADE_DESIGNATIONS = ['A+', 'A', 'B+', 'B', 'C', 'D']
Start studio in devstack using the PR branch
Open an exisiting course or create a new one.
Go to Settings --> Grading
Click on the + button repeatedly to add new grade cutoffs
Verify that maximum 7 grade cutoff designations are configurable with the values 'A+', 'A', 'B+', 'B', 'C', 'D' and 'F'
Grade Designations Fallback
Add this to cms\envs\devstack.py : DEFAULT_GRADE_DESIGNATIONS = ['A+']
Start studio in devstack using the PR branch
Open an exisiting course or create a new one.
Go to Settings --> Grading
Click on the + button repeatedly to add new grade cutoffs
Verify that maximum 5 grade cutoff designations are configurable with the values 'A', 'B', 'C', 'D' and 'F'

@jmakowski1123
Copy link
Author

@spencertiberi , I believe you currently own the instructor reports correct? If not, who would own this?

@jmakowski1123
Copy link
Author

Thanks for this contribution, @kaustavb12.

I'm having a little trouble groking how this looks in practice. Is there an upper limit to how many cutoffs can be set? For example, I'm having trouble imagining more than 12, ie

DEFAULT_GRADE_DESIGNATIONS = ['A+', 'A', 'A-, 'B+', 'B', 'B-', 'C+' 'C', 'C-', 'D+, 'D', 'D-']

Is the intent to limit grade cutoffs to 12? Or is there a pathway for further customization?

@kaustavb12
Copy link

@jmakowski1123 Thank you creating this ticket.

The intention here was simply to remove the existing hard limitation of 5 grade cutoffs and make it customizable.

The Grading UI in Studio still limits the number of grade cutoffs to the size of DEFAULT_GRADE_DESIGNATIONS. So, a course instructor/creator cannot set an arbitrarily large number of cut-offs and this needs to be a deliberate choice by the instance operator and needs to be configured during instance deployment.

I agree with you that more than 12 cut-offs might not be useful in practice(our client required 12 cut-offs too), but I was not sure what the upper-limit should be or if we should have a hard limit at all. I am open to your suggestion here.

The downside, though, of having an arbitrarily large number of cut-offs is that the grade range UI in Studio does become too clutered and unusable.

@mphilbrick211
Copy link

Hi @jmakowski1123 and @kaustavb12! Following up on this.

@kaustavb12
Copy link

Hi @jmakowski1123

I noticed this has been moved to "Need more information". I was wondering if anything is required from my end for this issue.

@jmakowski1123
Copy link
Author

I think there's value in expanding the cut-off to 12, given the examples above. I would not open it to any arbitrary number now, but rather see if there are any further client requests indicating that 12 doesn't meet the need. This has product approval, pending no red flags on the eng side. @ormsbee do you want to weigh in?

@ormsbee
Copy link

ormsbee commented Dec 14, 2023

@jmakowski1123: I believe that limiting the number of grade designations is just about showing a reasonable looking UI to authors and students, and is not the result of any technical limitations on the backend.

@kaustavb12
Copy link

@jmakowski1123 @ormsbee

Thanks a lot for the product approval.
As advised, I have now modified my PR, to restricted the default grade cut-offs to 12.

@ali-hugo
Copy link

ali-hugo commented Feb 5, 2024

@jmakowski1123 Just a heads up - from the thread above, it looks like this ticket might be ready to be moved to "product review done".


EDIT:
I updated the status. Please move it back if necessary. 🙂

@jmakowski1123 jmakowski1123 moved this from Feature Tickets - Product Pull Requests to [Prod Review] Done in Open edX Roadmap Mar 7, 2024
@jmakowski1123 jmakowski1123 moved this from [PR Review] Done to Being Developed in Open edX Roadmap Mar 28, 2024
@jmakowski1123 jmakowski1123 added product review complete PR has gone through product review and removed product review done labels Mar 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
product review complete PR has gone through product review
Projects
Status: Being Developed
Status: Needs more information
Development

No branches or pull requests

6 participants