Branch aware feature appeared with Captivate 6. I created a blog post to explain it, but I regularly meet users who are still unaware of its existence, or its possibilities. So I decided to refurbish that old post, and create a new example movie with CP2019. You have seen a first version of that movie in my recent post about localisation with CSV import. That post discusses the workflow to create quiz slides in different languages in the same project. The example did use the Branch aware feature, but some of the features were not fully localised: the score slide was the default score slide which is in English since I am using a version in that tongue.
In this post I will also talk a lot about the quizzing system variables. If you didn’t download my explanatory table yet, please do so. You’ll find a link in this blog post: Creative with Quizzing variables.
What is Branch Aware?
Look at the Advanced Interaction panel of the example movie. It gives you a lot of information, not only about the events and the triggered actions, but also about all scored objects, including question slides.
You see that the total score is set at 60 points, result of the 9 graded questions in the file. For each of those graded slides both the individual score and the penalty are shown. There are also 3 Survey slides, without a score. Those values are also stored in quizzing system variables:
- Total score in cpQuizInfoTotalQuizPoints
- Score per question in cpQuizInfoPointsPerQuestionSlide (reusable variable)
- Penalty per question in cpQuizInfoNegativePointsOnCurrentQuestionSlide (reusable variable)
If you don’t activate the option ‘Branch Aware in Quiz Preferencesn Settings (see screenshot later on), the default score slide will show 60 as maximum score. If the learner takes only one branch (language) of the quiz, the percentage (cpInfoPercentage) will be calculated as the obtained score (cpQuizInfoPointsscored) divided by that maximum score of 60. Same with the number of correct answers and total number of answers. This means the learner would be very confused, and never succeeds in that case. Reason is that those system variables are fixed when the course starts, I label them as being ‘static’.
When turning on Branch Aware, the system variables become ‘dynamic’, they will be changed on runtime based on the branch, thse slides visited by the learner. In this example movie that has been my choice: if the learner succeeds in one branch (maybe Dutch) the maximum possible score will be changed to 20, the percentage will be calculated with that maximum and the obtained score and the learner will see correct data on the score slide, can reach the passing score. No problem if a trilingual learner did visit the three branches, since the variables are dynamic, he will be judged on the maximum score of 60. This is the setup of Quiz Preferences, Setting for the example movie:
The project has 16 slides: Title slide, Dashboard slide, 3 groups each with 4 questions, the default score slide and a custom score slide. This is the Filmstrip, I expanded the group ‘Dutch questions’:
Dashboard slide (slide 2)
I will not explain the effects on the dashboard slide, where I used a loop action (While) triggered by the On Enter event.
I created a user variable v_all The four buttons on this slide trigger a shared action which has two parameters: which value has to be assigned to the variable (1=All, E=English, D=Dutch, F=French) and the slide to jump to. Here is the instance for the button ‘Nederlands’ (Dutch):
Start slide of question groups Dutch/French
On all quiz slides a shape is displayed with info about the obtained score and correct answers so far. That shape, labeled SS_Info is a multistate object. In the Normal state the English version is displayed, there are two more states: Dutch and French. Switching to the appropriate state is done with the On Enter event of the start slide of the Dutch and the French group. It is a simple action:
Because the project is pure linear, and there is no opportunity to go back, this setup is sufficient.
Last slide of each group (Survey slide)
The event ‘After Survey’ is used to navigate to the appropriate score slide. For the learners who did take the three branches, the default score slide (ScoreDefault = slide 15) is used, for the others the custom score slide 16. The same advanced action ‘LastAct’ can be used for the last slide in each group. If that last slide was a normal quiz slide, not a Survey slide, the same action could be used but for both Success and Last Attempt events.
Custom Score slide (16)
On this slide I used several multistate objects: where I added two states (Dutch/French) to the Normal state which has the English text. The On Enter event of this slide is used to trigger this action which will take care of showing the correct language information, and of the appearance of the Tropy image if the learner has passed.
One warning: the maximum score on the custom score slide is not created by using a system variable, but typed in (can also be calculated, as I explained in an older post about intermediate score slides). The variable cpQuizInfoTotalQuizPoints will not have changed from the original 60 points which took into account all quiz slides. It is strange because cpInfoPercentage where that maximum score is used, is correctly displayed as is cpQuizInfoPointsscored.
I know that more improvements are possible, but blog post is already pretty long. If you really want to show a custom progress indicator on the quiz slides, maybe you’ll find some inspiration in this old post.
If you allow backwards navigation, even give the opportunity to choose another branch on the dashboard, there will be some more editing needed. This article was meant to explain what happens when using the Branch Aware feature. Hope it helps some people.
Some time before the release of CP2017 I published a blog post, where I explained how I use the GIFT import for localising projects. Time to check if a similar solution is possible with the new CSV import. I used the provided template file, an Excel spreadsheet with macros. ‘CSVQuestionsCreationMacro.xlsm’. You find this worksheet in the GalleryQuiz. That may be a problem for users who don’t have administrator rights, because the installation folder is not always accessible for them. That is one of the reasons that a lot of folders are duplicated in the Public documents (Windows) or Shared documents.
You can watch this movie, which I’ll also be using to explain the Branch aware functionality in a future post. After the title slide, you have a choice slide: you can opt to take the quiz in one of three languages. Or, if you are trilingual, why not choose the option ‘ALL’?
Workflow CSV import
I used the provided Excel worksheet to create these questions. I first double checked the Quiz Preferences for the Default labels, and the master slides. I took out the option to show the Progress. Reason: contrary to all other labels, when you change the Preferences to have another language, the labeling of the Progress will not remain on the existing slides. That is an annoying small bug. The progress text will always be converted to the last used language.
After importing the questions some manual work has to be done, because not everything can be set up in the CSV file:
- The positive score for each question is imported, but if you want a penalty, you will have to add it manually. Refer to the Advanced Interaction panel shown below
- For the MCQ slide with multiple correct answers, you need to set up the individual scores manually for each of the answers. With GIFT import it is possible to insert already the positive partial scores, not with CSV for what I detected.
It is very easy to set up the Matching slides, the Help documentation is not updated: you do not have to insert the pipe sympbol, there is a matching field. Nicely done!
Dutch and French questions
The third sheet of the Excel worksheet has the fields for the to be exported CSV file. However you are not allowed to edit those fields. You don’t have access to the questions as they were defined in the second sheet, so that is not a workaround.
My workflow was to use the exported CSV file with the English questions, and open it in Excel as a copy. That file can be translated to any language. You can save it as a CSV file from Excel and import in Captivate.
Before importing such a translated file, I set the Quiz Preferences to the correct language. Especially the Default labels need to be translated. For that purpose I have always a Preferences file ready that can be imported. Only newly created quiz slides will take on those new labels (also for the buttons), with the exception of the Progress mentioned above: it will also override the progress on existing quiz slides.
At this moment, I still have a slight preference to use GIFT files for import, especially if I need to translate questions for the same project or for other projects. Translating a GIFT file, that is already set up correctly is a quicker workflow. Being able to define partial score in that file is another plus.
In a next blog post, I will explain the ins and outs, and the setup of the Branch aware feature which has been used in the example file.