Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Detailed Grade Calculations

Source
# import os
# from datetime import date,timedelta
# import calendar
# import pandas as pd
# import numpy as np
# import seaborn as sns

# from myst_nb import glue
# import plotly.express as px
# learning complexities

from cspt import grade_constants, grade_calculation

Grade cutoffs for total influence are:

Source
grade_constants.letter_df
Loading...

The total influence of each badge is as follows:

Source
# display
grade_constants.influence_df
Loading...

Bonuses

In addition to the weights for each badge, there also bonuses that will automatically applied to your grade at the end of the semester. These are for longer term patterns, not specific assignments. You earn these while workng on other assignments, not separately.

Name

Definition

Influence

type

Participation

22 experience badges

18

auto

Lab

12 lab checkouts

18

auto

Breadth

If review + practice badges >=18:

32

auto

Git-ing unstuck

fix large mistakes your repo using advanced git operations and submit a short reflection (allowable twice; instructor must approve)

9

event

Early bird

(review + practice) submitted by 02/21 >=5

9

event

Descriptive commits

all commits in KWL repo and build repos after penalty free zone have descriptive commit messages (not GitHub default or nonsense)

9

event

Curiosity

at least 15 experience reports have questions on time (before notes posted in evenings; instructor will log & award)

9

event

Community Star

10 community badges

18

auto

Hack the course - Contributor - Build

1 build that contributes to the course infrastructure/website +1 community or review

18

event

Hack the course - Contributor - Explore

1 explore that contributes to the course infrastructure/website + 2 community, with at least 1 review

18

event

Hack the course - Critic

5 total community badge, at least 2 reviews of other course contributions

9

event

Auto bonuses will be calculated from your other list of badges. Event bonuses will be logged in your KWL repo, where you get instructions when you meet the criteria.

Bonus Implications

Attendance and participation is very important:

Missing one thing can have a nonlinear effect on your grade. Example 1:

Example 2:

The Early Bird and Descriptive Commits bonuses are straight forward and set you up for success. Combined, they are also the same amount as the participation and lab bonuses, so getting a strong start and being detail oriented all semester can give you flexibility on attendance or labs.

Early Bird, Descriptive commits, Community Star, and Git-ing Unstuck are all equal to the half differnce between steps at a C or above. So earning any two can add a + to a C or a B for example:

in these two examples, doing the work at the start of the semester on time and being attentive throughout increases the grade without any extra work!

If you are missing learning badges required to get to a bonus, community badges will fill in for those first. If you earn the Participation, Lab, and Breadth bonuses, then remaining community badges will count toward the community bonus.

For example, at the end of the semester, you might be able to skip some the low complexity learning badges (experience, review, practice) and focus on your high complexity ones to ensure you get an A.

The order of application for community badges:

To calculate your final grade at the end of the semester, a script will count your badges and logged event bonuses. The script can output as a yaml file, which is like a dictionary, for an example here we will use a dictionary.

see cspt docs for CLI version

example_student = {'experience' :22, 'lab': 13, 'review': 0,'practice': 24,
                   'explore': 0,
                   'build' :0,
                 'community': 0,
                 'hack':0,
                 'unstuck': 0,
                 'descriptive': 0,
                 'early': 0,
                  'question':0 }
badges_comm_applied = grade_calculation.community_apply(example_student)
badges_comm_applied
{'experience': 22, 'lab': 13, 'review': 0, 'practice': 24, 'explore': 0, 'build': 0, 'community': 0, 'hack': 0, 'unstuck': 0, 'descriptive': 0, 'early': 0, 'question': 0}
grade_calculation.calculate_grade(badges_comm_applied)
'A-'
grade_calculation.calculate_grade(badges_comm_applied,True)
282