Competitive/Cooperative learning with H5P?

otacke's picture

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 :-)

tomaj's picture

Hi Oliver,

I like you thoughts. I defintatly think more can be done to get up the endorphin rush when doing a good job. And I know that particularly boys are very motivated by competition (I think it's a testosteron thing).

But enought talk about hormons...

I think a technical solution to this would involve a layered approach.

Some sort of api for content to store the data. But this has to be secure from injection attachs and such. And also stop a content type from flooding the database. But on top of that some specific tooling to make e.g. score boards easier to make in JS, maybe with an already prepared view for showing the high score list.

I'll think a bit on what you suggested...

- Tom

otacke's picture

Highscores were just one example, and they're hardly motivating for everyone as you already mentioned. See e.g. the Bartle taxonomy for more details. I think that cooperative scenarios that I touched on in my other two examples are more interesting. Hey, all you teachers, what do you think?

Instead of storing data in the host system's database, I was thinking of simply storing them alongside the content within an H5P file. This way, the content type's state could be downloaded for backup or sharing as well (a reset option might be good though in that case). I guess there are pros and cons for both approaches.

tomaj's picture

Yea, the cooperative aspect is also very interresting. It would be cool to make something that required input from both parties to be able to submit.

Regarding storing:

The h5p-file can be concidered a bundeled version of something already in the database. So it's not so much the one, or the other. But it shouldn't be too difficult to find a technical soution to the "multiplayer" functionality.

- Tom

otacke's picture

Note to myself :-) Just came across https://ant.umn.edu which is similar to what I had in mind when mentioning video annotation - but I guess other (sequencial) content types might work, too. Annotating slides of a course presentation or tasks of a question set (basically that's what Duolingo uses to let users help each other) will be useful in some cases, too.

I have migrated from Hot Potato quizzes to H5P as it looks like its natural successor although I realise H5P is much more than an assessment tool. In Moodle,  HP scores can be stored in the gradebook and this is useful for my feedback as a teacher. I was hoping that this would eventually be possible with H5P.

otacke's picture

Hey paddywack!

I'm not sure if I misunderstood your post, but scores from H5P actually can be stored in the moodle gradebook. There's a list of content types that have this functionality here: https://h5p.org/comment/9856#comment-9856

Thankyou so much Otake; that's really good news.