FMCorz / moodle-availability_xp

Moodle plugin to restrict access to an activity by experience level.
8 stars 8 forks source link

Feature request: Spending XP to make activities accessable #7

Closed Famondir closed 3 years ago

Famondir commented 3 years ago

Hi, I'ld be happy to have the possibility to link access restriction by XP or Level with actually spending XP to access an activity.

I would like to give students a mechanism that allows to buy second chances for assignments. An unspent XP account could do the trick. And I like the idea that students can work hard to get another possibility to have a second assignment (in another activity). They might do an extra task or repeat randomized STACK quizzes for practise issues.

Also I think that these points should be local in a course and not global (so you have to practice on this very course instead of farming XP in a course with topics you are already good at).

This idea came to my mind reading the book on specification grading. There was written about giving students tokens to get second chances. However these tokens should be implemented in a LMS and not managed on an extra spread sheet or on paper by teachers.

I came across the credit credit plugins that could be linked to the Level Up! plugin making it possible to earn credits and XP and then spend credits to access activities. But the credits are not local (in a course) but global. (Having local credits would be another possible solution.)

I'm still not totaly sure if it would be better to actually substract the XP directly or have a second account of unspend XP. Spending XP could make your Level drop and someone might not access a helping activity because he does not want to fall back on the leader board or something like that. On the other hand it might encourage students to think twice before investing the points. But that might be the case with the unspend account as well.

Overall I think it would be great being able to invest XP instead of just gathering them and show of. It gives them more value and lets students make their own decisions on what to spend these for. Autonomy is aid to motivate people even further.

FMCorz commented 3 years ago

Hi @Famondir,

What a fantastic idea! We love the idea that students can take ownership of their learning and decide where they want to spend their credit to get better, or even to gain access to VIPs zones.

As you pointed out, there are considerations to be had when it comes to spend one's experience points to access certain activities. At its core, the XP represents your learning and how involved you have been in your learning/course. We have always felt that we should never take away XP from students. In the case of students who need to retake activities multiple times, they would typically spend more XP than others, and thus be penialised by dropping in the leaderboard, or by leveling down.

You suggested to create a separate "wallet" in which they receive the same amount as they do in XP, except that they can spend those. This would indeed work as they wouldn't be penalised, but we feel that the story about these experience points would be blurred. While Level up! does have a mechanism to acquire points, those are presented as XP, and we feel that they should be kept separated from a currency. Besides, it is unlikely that the value for XP would be the same as the value of a currency, as least in the long run.

Perhaps this opens the door for the development of another plugin, because there is definitely a great idea and tons of potential behind the suggestion you've made, we just don't feel that Level up! fits the mold. Have you heard of Mootivated? While I do not believe they support opening access to an activity with coins, they do award coins to students.

Thank you for your enthiuasm!

Famondir commented 3 years ago

Hi, thanks for the link to the Mootivated plugin. I installed it and asked for a trial account for the servers. It seems that they - indeed - don't have access restriction plugins for their coins yet. But they showed the possibility to by second chances in the store (which probably are granted by the teacher manually). Maybe the framework can be used.

I agree that spending your XP for non permanent benefits might be a little bit troublesome. Especially if you use the overall XP to limit access to activities as well. You could loose access that way. That would be bad.

Most RPGs don't reduce your XP you earened and you are not spending them for a second chance. Most of the time there exist some extra tokens for this reason (like FATE points). And I don't realy see (yet) what could be implemented for usage with XP. What skill tree should you have in a learning scenario? Are there classes? Super powers? Like precognition to know one final exam item? That would totally get out of control. (Linked with an avatar in a game it might be feasable. But do we want to force our students playing Skyrim, WoW and so on instead of encouraging using their time for learning?)

FMCorz commented 3 years ago

Have you considered using Stash plugin? While it is not a currency, you could give items (e.g. gold bars) to students, and those could be used to access specific sections. With the "Trade" feature, students could exchange these items for a "key" that unlocks a specific activity or section.

Famondir commented 3 years ago

Thanks for recommanding me the Stash plugin. You have made quite some cool stuff. This plugin brings the functionallity you can use for my scenario. I can get tokens from quizzes with high grades via feedback and trade them for keys that unlock a second chance assignment (which is a copy of an original assignment).

But it is not optimally fitting because I have to make a unique key for each second assignment activity in the course. The problem that a student has to gain the right key we can overcome by implementing the trade button into the text of the feedback of the failed assignment or the info text of the assignment. So the problem is more on the teachers side because he has to create a lot of keys and manage them. Not an impossible task.

It would be easier if the accessability plugin could work not only by checking if an item is in the inventory of a student right now but by taking the item from the inventory but being accessible from now on forever. In this scenario it would be enough to have one key for all second attemt assignments. With one key you can unlock one activity and then you have to get a new key. You could use this mechanism for many other purposes as well. Would be cool to see this functionallity in future there. Should I make a feature request in the corresponding git repo?

A more specific functionality would be to trade an item for a Moodle interaction like reopening for the second attempt (which otherwise would have be done by the teacher manually from the feedback view). This would make the copied assignment activities unnecessary. But this would be definitly worth another plugin. And a lot of thoughts about security und usability on what and how to choose the interactions with the Moodle site are possible.

And of course you can get rid of the copied activities if the teacher is willing to grant the second attempt manually after having a look into the students inventory. But the student would have to contact the teacher. And not all teachers are willing to invest more time (thus automatisation would be great).

FMCorz commented 3 years ago

Sure, you can file a feature request here: https://github.com/abgreeve/moodle-block_stash/issues One way the use of keys could be implemented could be by setting a shortcode that takes away a certain quantity of something when rendered (only the first time). So for an activity that is hidden behind a "needs a key" condition, once the activity is accessed the shortcode would "use a key". Although this is not bulletproof, this could be a good start.

There may be other ways for the availability plugin to manage it all, but I'm not quite sure how if we want to let the student decide which activity to unlock.

Famondir commented 3 years ago

Thanks. I'll make a request there since it seems to be the better basis for my idea.