<p><div><div><div><div data-show-faces="false" data-height="21" data-width="100" data-layout="button_count" data-send="true" data-href="https://www.r-bloggers.com/dynamic-online-tests-with-blackboard-and-r-exams/"></div></div><div></div></div><div></div></div>
<div>
(This article was first published on <strong><a href="http://www.r-exams.org/tutorials/exams2blackboard/"> R/exams</a></strong>, and kindly contributed to <a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers)</a> </div>
<p>Step-by-step guide to generating, importing, and conducting online tests and quizzes generated by exams2blackboard() in R/exams.</p>
<p><img alt="Dynamic Online Tests with Blackboard and R/exams" src="https://i2.wp.com/www.r-exams.org/images/seminar.title.jpg?w=456" data-recalc-dims="1"></p>
<p>Online tests and quizzes conducted in learning management systems are a highly useful tool for students to practice course and materials and for teachers to monitor the progress students make while working on their exercises. However, to allow for enough variation and avoid cheating among students, it is often necessary to generate a large number of variations of exercises for such online tests.</p>
<p>In the following it is demonstrated how <a rel="nofollow" href="http://www.r-exams.org/" target="_blank">R/exams</a> and its <code>exams2blackboard()</code> function can be used to create “dynamic” online tests and quizzes as well as large item pools for the learning management system <a rel="nofollow" href="http://www.blackboard.com/" target="_blank">Blackboard</a>. The discussion is based on experiences at the University of Amsterdam, in the Bachelor programme Child Development and Education, where Blackboard testing facilities are used extensively in courses in methods and statistics: Students make formative tests in their preparation of practicals, and teachers use student results to optimize the content of those practicals.</p>
<p><img alt="Display of a Blackboard exercise (as rendered by Firefox)." src="https://i0.wp.com/www.r-exams.org/assets/posts/2018-04-16-exams2blackboard/display_of_relfreq_exercise.png?w=456" data-recalc-dims="1"></p>
<h2>Testing in Blackboard</h2>
<p>In the Blackboard system, the <em>Tests, Surveys and Pools</em> section can be accessed from the <em>Control Panel</em> under <em>Course Tools</em>.</p>
<p>If an exam created with R/exams is imported into Blackboard, the material will appear both in the ‘Tests’ module and ‘Pools’ module. Tests are sets of questions that make up an exam. Once an exam is created here, it may be deployed within a content folder for administering it to students. Test results appear in the Grade Centre, which is a spreadsheet-like database for storing student results. Pools are sets of questions that can be added to any Test, and are useful for storing questions in the system. So, R/exams may be used to either construct a full exam that can be readily deployed in Blackboard, or to create item pools that can be used as input for exams created within the Blackboard system itself. For documentation by Blackboard on its testing facilities, see the <a rel="nofollow" href="https://help.blackboard.com/Learn/Instructor/Tests_Pools_Surveys" title="Visit the Blackboard Help pages" target="_blank">Blackboard Help pages</a>.</p>
<h2>Exercise types</h2>
<p>In its testing facilities, Blackboard employs the international QTI 1.2 (question &amp; test interoperability) standard. However, as Blackboard created its own special flavor of QTI 1.2, it was not possible to simply use <code>exams2qti12()</code> from R/exams but it was necessary to create a separate function <code>exams2blackboard()</code>. This supports four types of R/exams exercises to be included in the Blackboard testing system:</p>
<table>
<thead>
<tr>
<th>R/exams name</th>
<th>Blackboard type</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>num</code></td>
<td>Calculated numeric</td>
</tr>
<tr>
<td><code>schoice</code></td>
<td>Multiple choice</td>
</tr>
<tr>
<td><code>mchoice</code></td>
<td>Multiple answer</td>
</tr>
<tr>
<td><code>string</code></td>
<td>Fill in the blank</td>
</tr>
</tbody>
</table>
<p>The R/exams <code>cloze</code> type is part of the QTI 1.2 standard but not officially supported in Blackboard. Hence this type of item is not supported in the current version of <code>exams2blackboard()</code> either as no workaround for implementation in Blackbard has been found (yet).</p>
<p>For an overview of question types in Blackboard’s testing module, see <a rel="nofollow" href="http://help.blackboard.com/Learn/Instructor/Tests_Pools_Surveys/040_Question_Types" target="_blank">Question types</a>.</p>
<h2>Creating a first exam</h2>
<p>The first step in creating an exam is to construct its constituting questions; for an introduction into designing exercises using R/exams, see the <a rel="nofollow" href="http://www.r-exams.org/tutorials/first_steps/" target="_blank">First Steps</a> tutorial. Next, the exercises are gathered into an exam. To that end, in R, after loading the R/exams package, a list of the exercise file names is created:</p>
<pre><code>library(&quot;exams&quot;)
myexam &lt;- list(
  &quot;tstat.Rnw&quot;,
  &quot;tstat2.Rnw&quot;,
  &quot;relfreq.Rnw&quot;,
  &quot;anova.Rnw&quot;,
  &quot;boxplots.Rnw&quot;
)</code></pre>
<p>Here, we use a collection of one <code>num</code> (<a rel="nofollow" href="http://www.r-exams.org/templates/tstat/" target="_blank">tstat</a>), one <code>schoice</code> (<a rel="nofollow" href="http://www.r-exams.org/templates/tstat2/" target="_blank">tstat2</a>), and three <code>mchoice</code> (<a rel="nofollow" href="http://www.r-exams.org/templates/relfreq/" target="_blank">relfreq</a>, <a rel="nofollow" href="http://www.r-exams.org/templates/anova/" target="_blank">anova</a>, <a rel="nofollow" href="http://www.r-exams.org/templates/boxplots/" target="_blank">boxplots</a>) questions, respectively, that are a part of the package. Above, the items have a .Rnw format, but all of the examples are also available in .Rmd format, leading to virtually identical output.</p>
<p>Next, as a first check of the exam and its questions, it is easier to create one HTML version on-the-fly in the browser before importing one or more versions into Blackboard. (Alternatively or additionally, a PDF version can be easily used.)</p>
<pre><code>exams2html(myexam)
exams2pdf(myexam)</code></pre>
<p>After a thorough inspection, the exam may be converted to Blackboard format. Let’s start with the simple case of using a single copy per exercise:</p>
<pre><code>set.seed(1234)
exams2blackboard(myexam)</code></pre>
<p>As the five exercises have a dynamic nature (i.e., numbers are drawn randomly), a random seed is set to make the generated exams exactly reproducible for you (or ourselves at some point in the future). In the working directory a zip file named <a rel="nofollow" href="http://www.r-exams.org/assets/posts/2018-04-16-exams2blackboard//blackboard.zip" target="_blank">blackboard.zip</a> is created which contains an exam consisting of five item pools, each containing a single copy of an exercise.</p>
<h2>Uploading exams into Blackboard</h2>
<p>Next, the exam <code>blackboard.zip</code> is imported in Blackboard using <em>Import Test</em> in the <em>Tests</em> menu. Below, it can be seen that importing was successful: It now appears as <em>blackboard-test</em> in the menu along with three other exams.</p>
<p><img alt="Display of the exams available in the Tests menu (as rendered by Firefox)." src="https://i2.wp.com/www.r-exams.org/assets/posts/2018-04-16-exams2blackboard/test_collection.png?w=456" data-recalc-dims="1"></p>
<p>The exam may be inspected, and exercises may be editted and saved:</p>
<p><img alt="Display of the exercises of _blackboard-test_ (as rendered by Firefox)." src="https://i0.wp.com/www.r-exams.org/assets/posts/2018-04-16-exams2blackboard/test_canvas.png?w=456" data-recalc-dims="1"></p>
<p>The preview that is available in this menu <em>does not</em> provide an accurate impression of what exercises look like during the actual administration of the test. Therefore, it is advised to activate the exam (for instructors only) and inspect it in an actual administration. Below your see an example of a test administration:</p>
<p><img alt="Display of exercise 4 (anova) in the administration of _blackboard-test_ in Blackboard (as rendered by Firefox)." src="https://i0.wp.com/www.r-exams.org/assets/posts/2018-04-16-exams2blackboard/display_of_anova_exercise.png?w=456" data-recalc-dims="1"></p>
<h2>Setting options</h2>
<p>Several arguments may be specified to adapt the exam to meet one’s preferences. For example, the name of the zip file may be set, and the number of copies drawn for each exercise may be changed:</p>
<pre><code>set.seed(1234)
exams2blackboard(myexam, n = 3, name = &quot;myexam&quot;)</code></pre>
<p>This code results in a zip file named <a rel="nofollow" href="http://www.r-exams.org/assets/posts/2018-04-16-exams2blackboard//myexam.zip" target="_blank">myexam.zip</a> in the working directory with three copies for each exercise.</p>
<h2>Some more details</h2>
<h3>Decimal marks</h3>
<p>When a non-integer numerical answer is required for <code>num</code> exercises, it is important that the correct decimal mark is used when typing the number in the answer box in Blackboard’s testing environment. The decimal mark depends on the language settings of the <em>individual</em> student in Blackboard. For example, if the language options are either English or Dutch, English requires a point (“.”) as decimal mark and Dutch requires a comma (“,”). For student level language settings, see <a rel="nofollow" href="https://help.blackboard.com/Learn/Student/About_You/Personal_Settings" target="_blank">Personal settings</a>. It is advised that students be extensively informed about which decimal mark to use in their tests, because using an inappropriate decimal mark will lead to an incorrect answer. Alternatively, one may <a rel="nofollow" href="https://help.blackboard.com/Learn/Instructor/FAQ/Language_FAQ" target="_blank">Enforce the Language Pack</a>, forcing students to use a given language (and matching decimal sign). It is stressed that this issue is specific to Blackboard and has nothing to do with how exercises are created with R/exams; it is simply an issue we experienced at the University of Amsterdam while deploying online tests.</p>
<h3>Internet browser</h3>
<p>By default <code>exams2blackboard()</code> converts mathematical symbols to <a rel="nofollow" href="https://en.wikipedia.org/wiki/MathML" target="_blank">MathML</a>. Hence, it is advised that Blackboard tests are administered in a web browser that supports MathML such as Mozilla Firefox and Safari. Of these two the former shows the best performance and the latter does a fairly decent job. Therefore students should be instructed to open their tests in either one of them. Note that Chrome does not support MathML.</p>
<p>Alternatively, <code>exams2blackboard(..., converter = &quot;pandoc-mathjax&quot;)</code> would allow to embed mathematical formulas for the <a rel="nofollow" href="https://www.mathjax.org/" target="_blank">MathJax</a> plugin that would need to be available in the Blackboard system. As we did not have access to a MathJax-enabled Blackboard system, we were not able to test this option, though.</p>
<h3>Evaluation policies</h3>
<p>Evaluation of <code>num</code>, <code>schoice</code>, and <code>string</code> item types generated by R/exams is relatively straightforward: Answers can either be correct or wrong. However, for <code>mchoice</code> exercises there is more flexibility: Either all parts of an answer have to be exactly correct or partial credits can be assigned. The <code>exams2blackboard()</code> function allows for specifying evaluation policies and passing them to Blackboard. For more details, see <code>?exams_eval</code>.</p>
<h3>Mix of exercises</h3>
<p>If the test constructor develops exercises for the purpose of creating Blackboard <em>item pools</em> (as opposed to <em>exams</em>), it is advised not to mix exercises into one pool, as is done with <code>regression</code> and <code>anova</code> in:</p>
<pre><code>library(&quot;exams&quot;)
myexam &lt;- list(
  &quot;boxplots&quot;,
  &quot;tstat&quot;, 
  c(&quot;regression&quot;, &quot;anova&quot;),
  &quot;scatterplot&quot;,
  &quot;relfreq&quot;
)</code></pre>
<p>When combining two or more different exercise types, the name and type of the exercise that is first drawn (in the random sampling) will appear as the respective name and type of the item pool in Blackboard, which may lead to administrative issues in the system.</p>
<p>For creating <em>exams</em>, however, mixing is no issue.</p>
<h3>Importing Blackboard material into other learning systems</h3>
<p>Various other learning management systems allow for importing tests and item pools created in Blackboard. Thus, in principle, exams created using <code>exams2blackboard()</code> maybe uploaded in those systems as well We did some limited trials with <em>Desire2Learn (D2L)</em> and <em>Canvas</em> suggesting that this route for import works. However, more trials and possibly further finetuning may be needed for things to work properly.</p>
	<p>
<div>
<div>To <strong>leave a comment</strong> for the author, please follow the link and comment on their blog: <strong><a href="http://www.r-exams.org/tutorials/exams2blackboard/"> R/exams</a></strong>.</div>
<hr>
<a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers.com</a> offers <strong><a rel="nofollow" href="https://feedburner.google.com/fb/a/mailverify?uri=RBloggers">daily e-mail updates</a></strong> about <a rel="nofollow" href="https://www.r-project.org/" title="The R Project for Statistical Computing">R</a> news and <a rel="nofollow" href="https://www.r-bloggers.com/search/tutorial" title="R tutorials">tutorials</a> on topics such as: <a rel="nofollow" href="https://www.r-bloggers.com/search/data%20science" title="Data science">Data science</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Big%20Data" title="Big Data">Big Data, <a rel="nofollow" href="https://www.r-users.com/" title="R jobs">R jobs</a>, visualization (<a rel="nofollow" href="https://www.r-bloggers.com/search/ggplot2" title="ggplot and ggplot2 tutorials">ggplot2</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/boxplot" title="Boxplots using lattice and ggplot2 tutorials">Boxplots</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/map" title="Maps and gis">maps</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/animation" title="Animation in R">animation</a>), programming (<a rel="nofollow" href="https://www.r-bloggers.com/search/RStudio" title="RStudio IDE for R">RStudio</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/sweave" title="Sweave and literate programming">Sweave</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/LaTeX" title="LaTeX in R">LaTeX</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/SQL" title="SQL and databases">SQL</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/eclipse" title="Eclipse IDE for R">Eclipse</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/git" title="git and github, Version Control System">git</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/hadoop" title="Large data in R using Hadoop">hadoop</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/Web+Scraping" title="Web Scraping of google, facebook, yahoo, twitter and more using R">Web Scraping</a>) statistics (<a rel="nofollow" href="https://www.r-bloggers.com/search/regression" title="Regressions and ANOVA analysis tutorials">regression</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/PCA" title="principal component analysis tutorial">PCA</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/time+series" title="Time series">time series</a>, <a rel="nofollow" href="https://www.r-bloggers.com/search/trading" title="finance trading">trading</a>) and more...
<img width="1" alt="" src="http://feeds.feedburner.com/~r/RBloggers/~4/f0MIkFVDp6M" height="1"></a></div>