Looping Question Banks (Any takers?)
Apr 14, 2015
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
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.
Above worked. No longer theory.
Ryan
"Easily create any interactive course you can imagine with Articulate Storyline 2..."
Sounds great Ryan - thanks for sharing the sample .story file and js when you have finished your breakfast ;-)
As elegant as I'm attempting to make my Story file (limited triggers, custom masterslide, etc.) ... curious to know if my learning activity can be replicated with an out-of-the-box solution? Anything close?
Funny this - I was working on a very basic example yesterday with 3 slides (no QBank yet!) that would allow users to skip a question then come back to it at the end of the quiz...still on the drawing board...Happy to share where I'm at if you want it
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.
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.
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.
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!
Is it rejecting slide numbers that have already been pulled by the randomizer? Mind posting your experiment?
I'll clean it up and have something for you tomorrow Steve. Would like you to break it. It's probably far from client ready. I'm skeptical, but I've done crazier things with SL that are still holding up...
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.
Loving that you were able to work it out, Ryan. I'm trying to do something similar, but with the order of the banks being random. Do you think the ghost slide would still work? Would love to see what you hammered out.
Hi Virginia! In case Ryan is not still subscribed to this thread, you are welcome to utilize the 'Contact Me' option on his user profile if needed.
This discussion is closed. You can start a new discussion or contact Articulate Support.