Exclude questions in a Quiz Bank when used multiple times - Demo and .story file

Hi all,

I was presented with a question recently on how to exclude a previously used question from a Quiz Bank when that Quiz Bank is used multiple times.

This example is one Quiz Bank used four (4) times once in different Scenes. The Quiz Bank has 20 questions and is set to randomly present 5 of the 20 at a time. In normal usage, a question presented in the first Scene may show up again in later Scenes. 

This does not use Javascript, rather just a few variables to track when a question is presented. Then, when the Quiz Bank is deployed 2 or more times, the question previously used is evaluated. If a question was used, a trigger jumps to the next question in the bank and evaluates again. The logic loops through until if finds an unused question.

Aside from the four system variables for each Results Slide and a few extras for display purposes, there are only as many variables needed as there are questions. In this example there are 20 questions, so only 20 T/F variables initially set to FALSE and respectively named are needed.

Each variable is only used 3 times on each of the Question Slides in the bank. Triggers are:

  • set question variable to TRUE on Correct feedback layer when timeline starts
  • set question variable to TRUE on the Incorrect feedback layer when the timeline starts.
  • Jump to next slide when the timeline starts *IF* that question variable is equal to TRUE

The logic works like this:

The first time the Quiz Bank is launched, all question variables are FALSE. When the learner makes a choice whether Correct or Incorrect, that question variable is set to TRUE.

On the second and subsequent times the Quiz Bank is launched, the "Jump to next slide when timeline starts..." is evaluated. This trigger is looking to see if that question's variable is TRUE. If that question was presented in a previous instance of the Quiz Bank, the trigger simply jumps to the next slide. The Quiz Bank is automatically handling the randomness for you!

Note: there are several other variables in this example for question counting, totals, quiz names, and for resetting counts. Disregard those as they have nothing to do with the logic.

You'll also notice a legend of sorts to visually "see" the variables in action as they track question usage. The legend is resting on the Master Slide so if you repurpose this in a project, simply delete the text box.

The best part? It's totally scalable! If you add more questions, simply add more variables per question. Change how many are presented? Just adjust the Quiz Bank settings. The logic is simply tracking usage whether it's 5 of 20, 10 of 30, or 50 of 200!

I'm sure there are other ways to approach this, but this works and it's simple to edit and update. 

DEMO

STORY FILE attached

Enjoy!

 

4 Replies
Kevin Thorn

Hey Mathew,

Thanks! I *think* it's completely flexible and scalable. This is as far as I built it out but the logic seems that it could be scaled in various ways.

Let's say you have these four Scenes/Quiz Banks. The next logical path would be a conclusion or summary with a results collected from all previous results slides. At that point you can either reset all the variables or end the course.

Or, let's say a learner did not pass one of the Quiz Banks. You could branch them to remedial information (send back to original content or condensed content in another Scene), and/or recycle them back through the Quiz Bank. Simply reset the variables again.

Now that I say that out loud, there may be a need for a tracking mechanism to only reset variables of questions used in most recent Quiz Bank appearance if there's a retry.

Basically, it's a fun starter model. 

Kevin Thorn

You're welcome Matt!

Honestly, I have not had the need in any instructional design to have the same Quiz Bank used more than once. With more complex assessment models, I create separate Quiz Banks per lesson content or category.

What I'd really like to see is another level of hierarchy where Quiz Banks themselves can be randomly pulled from a higher bucket.

  1. Randomly pull Quiz Bank
  2. Randomly pull questions from within the bank
  3. Randomly display choices per question. 

Currently we can do #2 and #3. #1 would be nice in some certification designs.