Competitive/Cooperative learning with H5P?
I was thinking about H5P lately, and I think there's still some potential to be tapped. The software is great for creating interactive content - well, that's what it has been designed for :-) Still, I feel the interaction is fairly limited to non-cooperative interaction. For example, it is not possible for students to jointly interact with content, neither at the same time nor serially. Competitive or cooperative/collaborative settings are not supported. Maybe some examples will shed some light on what I'm thinking of:
- Store the "highscore" of interactions such as the memory game or question set (competitive, asynchronous)
- Annotate videos, see https://h5p.org/node/51396 for an older idea (cooperative, asynchronous)
- Pick up a puzzle (to be created :-)) where a different user left it (cooperative, asynchronous)
The latter example could hint to synchronous examples, too, but that'd be a whole different story for the code of H5P. Let's stick with asynchronous interaction. Do you all (I'm addressing all the H5P users here) think this is something that's worth looking into?
If yes, let's dive into H5P under the hood. I really appreciate the distinction between content (in H5P) the host system (Drupal, Wordpress, moodle and who knows what in the future) and other systems (e.g. Learning Locker) -- and the communication via xAPI. H5P is not intended to become another learning management system. It is not an all-in-one device suitable for every purpose. I like that. So, one could argue that the host system should do the "competition/cooperation" job. I think that's a valid point! Why shouldn't moodle or another plugin collect the scores and present them to the students? However, things might be a little more complicated with the other two examples. I am not sure where the line should be drawn exactly.
I wonder if just giving H5P content the option to storing some information about its state would be enough to pave the way for some interesting new content types. I am thinking of adding an interface like the Options API in Wordpress to the H5P core. It is basically used for storing and retrieving variables and could add some more data to an H5P file. Given that, you could (easily) implement highscores, annotations or other information that could be passed to other users. Of course, coders could probably work out something on their own, e.g. using the hidden semantic property "extraAttributes", but I'd prefer an official documented solution even if it just offered something like "H5P.storeData(json)" and "H5P.retrieveData(json)". What's your (now I am addressing code oriented people) opinion about that? Worth some more thoughts? Or is this already possible and I totally missed it?
And yes, I know that there are probably way more things to keep in mind such as "What happens if two people use the content at the same time?", "Should the variables be downloaded as well or should people get a clean slate content?", "Should there be an (automatic) option for resetting?", ... First things first :-)