Skip to main content

Activities Validation

The main goal of an activity is to offer assignments (tasks to do) to students, automatically evaluate their work, and provide feedback. Once completed, they validate it, allowing them to move on to the next task.

In order to create activities, it is necessary to establish:

  • Assignment Navigation: How a student can move from an assignment to another (i.e. choose their next thing to do)
  • Activity Validation: How the entire activity is validated. This includes deciding whether students must fully complete all assignments, meet a certain quota of completed assignments, or adhere to a specific order in completing assignments.

Assignment and Groups

An activity is structured as a node hierarchy, with assignmentGroups containing assignments and other assignmentGroups. This allows for the specification of properties at both the root level and within sub-nodes, with a need to consult the reference for overriding or summing patterns. Assignments represent units, such as exercises, while assignment groups are collections of these units with dependencies defined by precedence, forming hierarchies often represented as graphs (project steps).

Assignments Properties

Assignments and assigmnentGroups contains following properties:
name: A Pretty name displayed on the intranet
slug: The slug is a unique identifier composed with alphanumeric characters and hyphens.

slug: hello-world
name: Hello World
info

Assignments (not assigmnentGroups) contain a third required property that we will see later: Submission. For optional properties, please refer to PaCv2 Reference.

For instance, we can create the following "flat" activity with no specific order restrictions, allowing students to access assignments in any sequence. This simplicity is suitable for straightforward activities without intricate interactions between assignments.

slug: activity-example
tenantSlug: tenant-slug
name: My First Activity

# ...

assignments:
- slug: hello_world
name: Hello World!
required: true

- slug: simple_maths
name: Simple Maths

Validation modes

Each assignmentGroup must specify a validation mode that can impact parent/child nodes within the hierarchy.

Validation modes consider both assignment groups and assignments in their logic. For example, the ALL validation mode will only validate the group if all assignments and assignment groups within it are validated, while the ANY validation mode will validate the group if any of its assignments or assignment groups are validated.

Consider an activity or an assignment group X with various children (assignments or assignment groups). The following validation modes are available:

  • ALL: Validates if all children within X (including assignment groups and individual assignments) are validated
  • ANY: Validates if at least one child within X (either an assignment group or an individual assignment) is validated
  • THRESHOLDS: Validates if all notions within X have been successfully validated. In other words, it checks if the student has validated enough bounties to reach the predefined thresholds for all notions associated with X.
  • NODES: Validates if all direct children of X (including assignment groups and assignments) marked as required: true are validated.
  • THRESHOLD_AND_NODES THRESHOLD_AND_NODES: Validates if both conditions for NODES and THRESHOLDS are met. This means that all direct children of X marked as required: true are validated, and the student has also met the thresholds for all notions associated with X.

In the next section, we will explore advanced validation modes.