adlnet / xAPI-Spec

The xAPI Specification describes communication about learner activity and experiences between technologies.
https://adlnet.gov/projects/xapi/
899 stars 405 forks source link

Suggestion: including statements when students do NOT do something #1090

Open Billzuber opened 5 years ago

Billzuber commented 5 years ago

Hi all,

I would like to propose that XAPI statements include when students do NOT do something. For example, I would like to know if a student did not attend class, did not submit an assessment, did not complete an activity and so on.

The reason is so that can get a clearer idea of students/learners so that they can be identified and appropriate intervention strategies can be implemented. I believe this would be beneficial in many aspects.

At this stage, I have not seen this in the XAPI spec but correct me if I'm wrong.

Cheers

garemoko commented 5 years ago

I've seen a number of implementations that record a statement when a learner failed to do something. This only works when there is a specific deadline - it doesn't make sense to record an event that the learner has not done something yet, but could still do it, and also statements need to have a timestamp stating specifically when the thing that didn't happen didn't happen.

You can use the state to keep track of things that currently haven't happened but might still happen.

It's also possible to handle this at the reporting end, by filtering people who do not have a matching statement.

Billzuber commented 5 years ago

That's an interesting view of a student not doing something. In my role in education management, knowing when a student does not attend class or complete an assessment is vital to tracking and monitoring so that we can implement intervention stragegies. I would argue that recording when something is not done is just as important as when it's done.

I can see there are methods to filtering the data to determine when something is not done but I find it very odd that this is not part of XAPI at all.

garemoko commented 5 years ago

I think we may have had a miscommunication. I'm not saying that this should not be part of xAPI, I'm saying that this is already possible with xAPI and then offering you suggestions of how you could implement it.

In both scenarios of a class and completing an assessment, there would normally be as deadline since classes have deadlines by their very nature (you can't go back and attend something in the past) and assignments normally have deadlines. In those cases it would be ok to recorded that the student failed to attend or failed to submit the assignment by the deadline.

For actions that do not have a specific deadline (e.g. watching a video or completing an online course), it does not make sense to record that the student has not done the thing yet as an interaction statement, but you can still keep track of this with xAPI using the state resource.

FlorianTolk commented 5 years ago

In order to do this, you just need to generate a profile to track this data.

If you are unfamiliar with xAPI Profiles, you can find information here.

We also have examples here.

Hope this helps!

DataBeeGood commented 4 years ago

@Billzuber I feel your frustration. I am a designer using xAPI in systems I am building. Perhaps I can reframe your thinking about designing and using xAPI activity statements in education management. It may also be useful for others who are frustrated about practical applications of this specification.

An xAPI-style system has 3 parts. The first captures information about an entity that engaged in an activity. A recorder can't record what wasn't there. It records what happened, like a motion activated camera recording wildlife or a timeclock in a factory or a Clicker in a Lecture Hall. The second part stores the statements and the third part consumes them. It is a one way process... with a timestamp and no editing!

To address your case of needing to know "WHO -- DID NOT DO -- SOMETHING" …Analytics handles this very efficiently in the third part (AKA Learning Management System) because it can compare the list of all students to the list of students who DID something to determine who DID NOT do something. Stored xAPI statements just witness and have no way to compare anything. However, because they can never be changed, they provide excellent evidence!

Reframing the case

In most real world cases, the instructor is responsible for Recording the Roll regarding student attendance. The instructor would report that the student was or was not there. If you wish to measure the performance of the instructor carrying out this activity, and student attendance, then an xAPI Profile (customization) per @FlorianTolk is useful.

Here are stubs which could be polished up to create xAPI-style statements & class attendance profile:

InstructorX - recorded the attendance for - StudentZ - Timestamp - Result="Unexcused"

InstructorX - recorded the attendance for - StudentA - Timestamp - Result="Tardy"

If you need to understand a Result for the activity, then a property of "present" "excused" "unexcused" "tardy" etc.... can be included in the statement for use in your consumer analytics.

These xAPI statements are immutable and timestamped, so they would be an excellent method of recording attendance or lack thereof! Overriding the activity information in a student account for attendance would be a privilege in the consumer system, and never affect the original statements in storage. The process is one way only.

So consider the one way nature of the processing, the ability to audit an LMS database to the activity record and the fact that it can track anything you design it to witness... you might appreciate the power of xAPI compliant systems over the systems you use today.