# Align Assessments to Competencies

The functional alignment of assessment data to competency data requires the following:

  1. A unique identifier for the assessment
  2. A competency to be aligned to
  3. A data pipeline that emits results from the assessment system
  4. An alignment between the assessment and the competency
  5. An adapter that listens for or watches the assessment system for new data and converts it into assertions

With all requirements satisfied, the following should happen:

  • The assessment system assesses a learner.
  • The assessment system emits a record (xAPI or otherwise) that identifies the learner, identifies the assessment or question, and provides a success/failure or score metric.
  • The assessment adapter receives the record.
  • The assessment adapter looks for alignments in CaSS by the assessment or question identifier.
  • The assessment adapter looks up the student in CaSS by the learner’s identifier.
  • The assessment adapter creates an assertion on behalf of the assessment system that asserts that the assessment system believes the learner holds or does not hold the aligned competency, and optionally provides a confidence based on the score. The assessment system’s record may or may not be attached as evidence.

Let's dive deeper into each of these requirements.

# 1. A unique identifier for the assessment

This unique identifier may come from the originating system or may be generated by an intermediate system. For instance, in Moodle, a question emitted via an xAPI statement has an identifier similar to

https://moodle.eduworks.com/question/question.php?cmid=4&id=2

and an assessment emitted via an xAPI statement has an identifier similar to

https://moodle.eduworks.com/mod/quiz/view.php?id=4

# 2. A competency to be aligned to

This competency should reasonably map to the assessment or assessment question. An assessment competency may have multiple competencies underneath it. This means that the assessment will implicitly make a statement about all of the competencies underneath the competency aligned.

# 3. A data pipeline that emits results from the assessment system

The data pipeline should emit, as a single record:

  • The assessment or question ID
  • An identifier for the individual
  • A score, which represents pass, fail, or that can be bounded between 0-1

As an example, here is an xAPI statement that does the above:

{
    "authority": {
        "objectType": "Agent",
        "name": "Eduworks",
        "mbox": "mailto:cass@eduworks.com"
    },
    "stored": "2019-10-25T15:34:33.406Z",
    "actor": {
        "name": "Fritz Ray",
        "mbox": "mailto:fritz.ray@eduworks.com",
        "objectType": "Agent"
    },
    "timestamp": "2019-10-25T16:33:34+01:00",
    "version": "1.0.0",
    "id": "9f110754-817f-4207-a015-26044c78f436",
    "result": {
        "score": {
            "raw": 0.33333,
            "min": 0,
            "max": 4,
            "scaled": 0.0833325
        },
        "completion": true,
        "success": true,
        "duration": "PT33S"
    },
    "verb": {
        "id": "http://adlnet.gov/expapi/verbs/completed",
        "display": {
            "en": "completed"
        }
    },
    "object": {
        "id": "https://moodle.eduworks.com/mod/quiz/view.php?id=4",
        "definition": {
            "type": "http://adlnet.gov/expapi/activities/assessment",
            "name": {
                "en": "Headset Use"
            }
        },
        "objectType": "Activity"
    }
}

# 4. An alignment between the assessment and the competency

A resource or assessment alignment in CaSS looks like this:

{
    "@type": "CreativeWork",
    "educationalAlignment": [
        {
            "@context": "http://schema.org/",
            "@type": "AlignmentObject",
            "alignmentType": "assesses",
            "targetUrl": "https://sandbox.credentialengineregistry.org/resources/ce-24aae5e7-868a-4cdc-a5ad-a857bf864590"
        }
    ],
    "@id": "https://dev.cassproject.org/api/data/schema.org.CreativeWork/ca22e231-0dc9-4368-85c7-4e37e96c710d/1525956177976",
    "@context": "http://schema.org/",
    "url": "https://moodle.eduworks.com/mod/quiz/view.php?id=4"
}

and is created using the following code:

var c = new CreativeWork();
c.generateId(repo.selectedServer); // (Ensure you have a repo defined in your code)
c.url = "https://moodle.eduworks.com/mod/quiz/view.php?id=4";
c.educationalAlignment = [new AlignmentObject()];
c.educationalAlignment[0].alignmentType = "assesses";
c.educationalAlignment[0].targetUrl = "https://sandbox.credentialengineregistry.org/resources/ce-24aae5e7-868a-4cdc-a5ad-a857bf864590";
EcRepository.save(c, console.log, console.error);

TIP

The CaSS Dashboard (cass-vlrc) can do this. Navigate to the competency, click Resources, and use the URL of the assessment or question to create a new Resource.

# 5. An adapter that listens for or watches the assessment system for new data and converts it into assertions

The CaSS xAPI Adapter does this.

Other CaSS adapters could be created that do this, as well as other code that can use the CaSS Library. To see details about how the CaSS xAPI Adapter does this, you can read the code here (opens new window).