Looping Question Banks (Any takers?)

Before we talk javascript options...

Here's the scenario:

You have a question bank of 20 questions - displayed randomly.

If you get a question wrong, you move on to the next question in the bank. Makes sense.

After the 20th question, you loop back into the same question bank ... but this time it only contains questions you got wrong ... and you continually loop back into your randomly displayed question bank, which shows the dwindling down of questions (assuming you're getting some right.)

From my tests, a Question Bank can't handle looping back to itself (it's not smart enough I guess). Some funky stuff happens. (Maybe if a Question bank had a reset to initial state it would be okay?)

I've tried "looping" instead to a ghost slide first, which then jumps to the Question Bank when timeline starts. Figured that may be more subtle approach; but to no avail.

Further details: Each question in the bank has a T/F variable. True means it has been answered correctly and it should loop back to the question bank when timeline starts. On each loop, the question bank would only show questions that have a False value. Another variable I'm testing for is a Question Bank "score" if equal to 20 (all questions have been answered correctly), jump to "success/overall feedback slide"

Will probably look at a solution outside of the Question Bank option.

Onward.

Ryan

 

14 Replies
Ryan Martin

While making my scrambled eggs I thought of instead of using a Question Bank, I use a ghost slide that simply runs ye ol' Javascript random num.

Whatever the number equals I send them to that question (1, 2, 3 ... 20). I run some more logic on each question slide (if it has already been answered go back to the ghost slide. And, on the ghost slide I have another "listener" that is testing to see if all questions are answered (Q1=T, Q2=T,... Q20=T).

Note: as of right now, this is just a theory. Back to my scrambled eggs.

Ryan Martin

Wendy. Test a variable: varSkipQ1 = 0

If I'm on question 1, varSkipQ1 is zero. I hit "a skip button" (a custom next button called "Skip") and we set that variable to 1

At the end of the quiz you now have a variable that tells you which questions were skipped: Change State of "Hey you skipped question #1" If varSkipQ1 = 1 for example.

You can also display a button to take them back to Question one. You could also use just one button and have it jump to the first Skipped question based on whether varSkipQ1 = 1, varSkipQ2 = 1, varSkipQ3 = 1, etc.

Then on each question slide, when the learner went back a second time, show a "Next Skipped Question" button (if varSkipQ1 = 1). This button will go to the next slide ... here's the thing:... on the next slide Question Slide 2 (for example) we have a "Jump to Next Slide when Timeline starts If varSkipQ2 = 2) ...

Right before the learner submits an answer, add a Trigger that changes varSkipQ# = "2" ... This tells us that that question has been answered. And if we go back to that slide, we have a variable number to test against and jump to then next slide until we get to a Slide that was Skipped, varSkip# = 1 (again)...

That would probably work. But while I type this I keep thinking there's got to be a more elegant way. Tis' my nature though.

Steve Flowers

Really wish QB's had a little more utility. The way questions are answered is stored in a Javascript object. But I don't think this'll help with the question bank. 

Using JavaScript to randomize your pool is a novel idea. I'm thinking generating an array of questions, then using the array to drive navigation could do it. But, golly that would be a trigger salad on the Storyline side. 

I'm almost thinking using a Web Object with a custom built HTML quiz might be a better choice in this case. Storyline seems to get wobbly when forced too far off the rails.

Nikki Berry

Hi Ryan,

I am trying to do a similar thing to you (I think). I have built 36 quizzes where the client has now requested for the course to pool the incorrect quizzes, and at the end of the course the incorrect quizzes can be revisited so the user so the user can get 100% to complete the hole course.

Do you have any advice on how I could make this happen?

Thanks, Nikki.

Ryan Martin

So far: My Ghost Slide with Random Num is handling this like a champ. Nothing breaking, loop is seamless, and fast.

Currently testing with 3 questions ... Probably see 20 questions being a real world target.

Damn.

/Pats self on back.
/Deserves a beer.
/Probably getting ahead of myself before something here breaks ha!

Ryan Martin

And yes, it's rejecting slide numbers already pulled, which is CRAZY.

Considering if I have 20 questions, it may need to loop 100 or so times before it equals the last questions and sends you to it (if that makes sense). Even with 3 questions I'm impressed with the speed. However, it is programming which we often forget how lightning quick loops can be.