Aktiv Learning

Logo

View the Project on GitHub Aktiv-Learning/Aktiv-Help

Home > Guides > LMS

Gradebook FAQ

  1. Which columns (headers) will appear in the Preview, CSV and when syncing to the LMS?
  2. Which assignments will be included in calculating the gradebook Preview, CSV and when syncing to the LMS?
  3. Which fields other than the name of the column do we sync to the LMS?
  4. What description is set for the columns when synced to the LMS?
  5. What due date is set for the columns when synced to the LMS?
  6. In which order will the columns appear?
  7. What happens to columns that were previously synced, but no longer wanted?

1. Which columns (headers) will appear in the Preview, CSV and when syncing to the LMS?

There are three types of gradebook columns.

  1. Individual: This is essentially a representation of an individual assignment. For e.g an assignment named Quiz 3 will take up one column as Quiz 3 in the Preview, CSV and LMS.

  2. Summary: This type of column is based on its assignment type. So we have Attendance Summary, In Class Summary, Homework Summary, Quiz Summary and Practice Summary. This column is made up of an accumulation of the assignments matched for that type. For e.g the Quiz Summary will include only quiz assignments and thus the column’s possible points will be made up of a sum of the possible points for each of the included quiz assignments.

  3. Single Score (aka Aktiv Score): This is a column that accumulates ALL assignments. This is pretty much identical to v1 single-column scoring.

Which of these column types end up in the output columns (for Preview, CSV or LMS) depends on the gradebook configuration that is defined in the Aktiv App for that course (this is defined by course.gradebook in the DB, see also CourseGradebook).

Now that we understand the three types of columns that may appear in the Preview, CSV and LMS, we can now think about filtering the assignments that should be included in the process of producing the above columns. For e.g do we want draft assignments, or only published assignments to show up in the CSV etc?

The gradebook configuration (course.gradebook) also determines if certain assignment types should be completely excluded (course.gradebook.assignmentTypeSettings[].included != true). This is considered a pre-filter to the additional filtering as defined below.

2. Which assignments will be included in calculating the gradebook Preview, CSV and when syncing to the LMS?

There are two types of “Inclusion” strategies.

The first being, a header inclusion strategy and the second being a grade inclusion strategy.

We define these strategies on a per course basis, and they are set on the course’s gradebook configuration.

The specific field that these relate to these strategies are course.gradebook.headerInclusions and course.gradebook.gradeInclusions. Each one is a map which can thus be defined for each gradebook process type (PREVIEW, REPORT or SYNC). These can be changed in the Admin Site under the Edit Course.

Header Inclusion Strategy (Level 1)
  1. AVAILABLE: This is all the assignments that are available in the course. i.e the only requirement for the assignment to be included is that it must be available (i.e not archived and not deleted). So this will include draft assignments as well as published assignments etc.
    • assignment.archived != true
    • assignment.deleted != true
  2. AVAILABLE_PUBLISHED: This includes all assignments that must be both available AND published (i.e no draft assignments).
    • assignment.archived != true
    • assignment.deleted != true
    • assignment.states != DRAFT
  3. AVAILABLE_PUBLISHED_ASSIGNED: This includes all assignments that must be available, published AND have been assigned/live (i.e the assigned date is in the past).
    • assignment.archived != true
    • assignment.deleted != true
    • assignment.states != DRAFT
    • assignment.dateAssigned.isPast()
  4. AVAILABLE_PUBLISHED_ASSIGNED_DUE: This includes all assignments that must be available, published, assigned AND due (i.e the due date has passed).
    • assignment.archived != true
    • assignment.deleted != true
    • assignment.states != DRAFT
    • assignment.dateAssigned.isPast()
    • assignment.dueDate.isPast()

The default is AVAILABLE_PUBLISHED.

So as you can see each header strategy is more restrictive than the previous.

If Individual Columns are to be output, then only those assignments that are included in the strategy will end up being an indivudal column in the Preview, CSV or LMS.

For Summary Columns such as say Quiz Summary then only the quiz assignments that are included in the strategy will form part of the quiz summary column. So for e.g if say there are two quizzes, one quiz with 10 points (but still draft), and one quiz with 50 points (published) and the AVAILABLE_PUBLISHED is used as the strategy, then the Quiz Summary column will be out of 50 points only, since the first quiz is not included.

For Single Score columns then the inclusion strategy defines which assignments will be in the accumulation for this single column. So a draft assignment will not be included if the AVAILABLE_PUBLISHED is the strategy for e.g.

See also GradebookHeaderInclusion for the model that represents this.

Grade Inclusion Strategy (Level 2)

This is a second level inclusion strategy that is applied after the first.

  1. COMPLETED_OR_DUE: All assignments in which the student has either completed the assignment (i.e answered all problems) or the assignment is due (i.e expired for the student and thus can’t answer any more problems).

  2. DUE: Only assignments that are due (i.e expired for the student and thus can’t answer any more problems). Even if the student has completed the assignment but still has time, the assignment/grade will not be included/synced.

The default is COMPLETED_OR_DUE.

If Individual Columns are to be output, then the header inclusion strategy basically defines which of those assignments will be created as columns. The grade inclusion strategy will define if the score for this assignment-column will appear as a - (dash) or actual calculated value.

For Type Summary or Single Score columns, the header inclusion strategy acts as a level 1 filter, and the grade inclusion strategy as a level 2 filter. So for e.g. say the header inclusion strategy is AVAILABLE_PUBLISHED and the grade inclusion strategy is DUE, then only due assignments will be effectively included in the calculation of these columns.

Note that if for e.g you have set this grade inclusion strategy to be COMPLETED_OR_DUE but the header inclusion strategy is the most restrictive AVAILABLE_PUBLISHED_ASSIGNED_DUE, then the grade inclusion strategy essentially functions as DUE since ONLY due assignments are included columns, so the grades for excluded columns are never synced.

See also GradebookGradeInclusion for the model that represents this.

3. Which fields other than the name of the column do we sync to the LMS?

When we sync (create/update) a column to the LMS we use the Willo Grade Sync API. They provide the following fields which we can provide for each column.

  1. ID: This is the id field.
    • for Individual Column types this will be the ID of the assignment in Aktiv.
    • for Summary Column the id will be in a specific format by type for e.g chem101quizsummary.
    • for Single Score the id will always be chem101score.
  2. Name: The name of column.
    • for Individual Column types this will be the name of the assignment in Aktiv. Except for Attendance which is in the format “Attendance (Dec 10 2020)”. Also if the name is too long for the LMS, the name is concatenated. Also if two assignments have the same name, then an additional suffix is added to distinguish between the two.
    • for Summary Column the name will be in a specific format by type for e.g Quiz Summary.
    • for Single Score the name will always be Aktiv Score.
  3. Description: The description of the column (Note that we only ever set the description on column creation, never on update).
    • for Individual Column, the default for this is “Go to https://app.aktiv.com or open your Aktiv app to complete your assignment”, but configurable in course.gradebook.initDescriptions for each course by column type.
    • for Summary Column, the default for this is “Go to https://app.aktiv.com or open your Aktiv app to complete your assignment”, but configurable in course.gradebook.initDescriptions for each course by column type.
    • for Single Score, the default for this is “Go to https://app.aktiv.com or open your Aktiv app to complete your assignment”, but configurable in course.gradebook.initDescriptions for each course by column type.
  4. Possible Points: This is the maximum possible points that is achievable for this column.
    • This is determined and calculated by various fields such as assignment.grading.pointsPerProblem and problem.points, as well as the course gradebook settings for weights etc. For type summaries and single score columns then this will be a sum of all possible points of the scoped assignments.
  5. Due Date: The due date of the column.
    • for Individual Column, this depends on the due date inclusion strategy that is set, see below.
    • for Summary Column None.
    • for Single Score None.

4. What description is set for the columns when synced to the LMS?

By default we send the following for the three different column types:

  1. for Individual Column
    • “Go to https://app.aktiv.com or open your Aktiv app to complete your assignment”.
  2. for Summary Column
    • “Go to https://app.aktiv.com or open your Aktiv app to complete your assignment”
  3. for Single Score
    • “Go to https://app.aktiv.com or open your Aktiv app to complete your assignment”.

However, this is configurable (overridable) on a course by course basis.

To override this default text, change the course.gradebook.initDescriptions(type) field on the course. This should also be configurable in the Admin Site.

Note that this description (whether default or overriden) is only ever sent to the LMS upon column creation (i.e first time round). It is never sent on updates (i.e when the column already exists). This is due to the fact that the instructor may have changed this manually after it was created and we don’t want to reset this.

5. What due date is set for the columns when synced to the LMS?

The due date for Summary and Single Score columns are not set at all, i.e they will appear as empty/null in the LMS.

For Individual type columns, a particular strategy is defined which is configurable.

You can define the strategy for each assignment type. For e.g a strategy defined for the Quiz type will mean all quiz assignments/columns will have the due date set under the same strategy.

The possible strategies are:

  1. NONE: No due date is set.
  2. DEFAULT_DUE_DATE: The assignment default due date. The default due date is the due date set in general for the assignment, without taking into account the extensions that certain students may have. For quizzes this will essentially be the default/general last moment in time that a student can hit “start” quiz (although some students with extensions will be able to start the quiz later).

The default strategy for assignments/columns of the following types are:

The corresponding field is course.gradebook.assignmentTypeSettings[].dueDateInclusion.

See GradebookDueDateInclusion.

This should also be configurable in the Admin Site.

6. In which order will the columns appear?

The gradebook columns (headers) will appear in a specific/predictable order.

Generally the columns are ordered by type:

  1. ATTENDANCE
  2. IN_CLASS
  3. HOMEWORK
  4. QUIZ
  5. PRACTICE

So attendance assignments/columns always appear before In Class assignments/columns.

Similarly an Individual assignment/column of type ATTENDANCE will appear before Type Summary for IN_CLASS.

Now ordering within a specific type is done depending on the configurable GradebookWithinTypeOrder (see course.gradebook.withinTypeOrder).

  1. FOLDER_AND_DATE
    • assignments in a higher up folder come first (ROOT folder always comes first).
    • if both within same folder, then the earliest assignment.dueDate comes first (or earliest dateAssigned if dueDate is null for both).
  2. FOLDER_AND_POSITION
    • assignments in a higher up folder come first (ROOT folder always comes first)
    • if both within same folder, then the position of the assignment in the folder comes first (if it root folder then then the assignment position in course is used).

7. What happens to columns that were previously synced, but no longer wanted?

At any moment in time, the gradebook settings for a course (course.gradebook), determines the output columns that will appear in the Preview, CSV (Report) and LMS.

Thus changing these settings will potentially change the columns produced. It could very well be that a column that was previously being output, is no longer being output. For e.g let’s say that initally the Quiz Summary was enabled in the settings, a sync was then performed and this Quiz Summary column now appears in the LMS. However, let’s say the settings are then changed to include Homework Summary only (i.e the quiz summary has been disabled), thus the LMS will be synced with this new column Homework Summary, but the old column Quiz Summary still shows up in the LMS.

Unfortunately Aktiv is limited by what the Willo Labs Grade Sync API can do. At this moment in time they do not provide a delete option, so we cannot delete any previously synced columns. The LMS instrcutor will have to delete these manually in the LMS (if posible, otherwise hide them).

As a workaround, there is a gradebook setting in Aktiv called Cleanup Enabled (course.gradebook.cleanupEnabled). This will essentially rename/append any old columns with a prefix of “(Deleted in Aktiv)”. So one can use this as an indication that Aktiv is no longer syncing those columns and thus have been “deleted” from the output columns.