exams2moodle(file, n = 1L, nsamp = NULL, dir = ".",
name = NULL, quiet = TRUE, edir = NULL,
tdir = NULL, sdir = NULL, verbose = FALSE,
resolution = 100, width = 4, height = 4, encoding = "",
iname = TRUE, stitle = NULL,
testid = FALSE, zip = FALSE, num = NULL, mchoice = NULL,
schoice = mchoice, string = NULL, cloze = NULL,
points = NULL, rule = NULL, pluginfile = TRUE, ...) make_question_moodle(name = NULL, solution = TRUE,
shuffle = FALSE, penalty = 0, answernumbering = "abc",
usecase = FALSE, cloze_mchoice_display = "MULTICHOICE",
truefalse = c("True", "False"), enumerate = TRUE,
eval = list(partial = TRUE, negative = FALSE, rule = "false2"))
file
.file
. Sampling without replacement is used
if possible. (Only if some element of nsamp
is larger than
the length of the corresponding element in Sweave
?file
are stored (see also below).tempdir
. Note that this
is cleaned up and potentially temporary files are deleted.tempdir
.Sweave
.Sweave
.name
be included in the path in the
tag in the final XML file? This option may be useful when questions should be added to
certain already existing question banks, i.e. iname = TR
file
, additional section
titles may be set. The section titles will then be added to the
tag in the final XML file (see also argument iname
), i.e.name
.num
)
questions. If num
is a function, num
will be used
for generating the item body of the question, see function make_itembody_qti12()
.
mchoice
, schoice
,
string
, and cloze
), respectively. See argument num
for mo"expoints{}"
tag
in the .Rnw
file. The vector of points supplied is expanded texams_eval
. Note that the default using cloze exercises is rule = "none"
.FALSE supplements like graphics and data are includ2.5).>
mchoice
and schoice
exercises, if set to TRUE
will
force Moodle to additionally shuffle the provided answer list.cloze
type questions, the user may set the
visual appearance of choice questions in either a drop down menue (default)
"MULTICHOICE"
, vertical alignment "MULTICHOICE_V"
or horizontal
"
cloze
questions,
the user may specify the possible options shown.cloze
questions, if set to TRUE
, the answerlist and
solutionlist will be enumerated.exams_eval
.make_exercise_transform_html
.exams2moodle
produces an XML file that may be uploaded into Moodle. It proceeds by (1)
calling Sweave
on each exercise, (2) reading the resulting LaTeX code, (3)
transforming the LaTeX code to HTML, and (4) embedding the HTML code in a XML file using the
Moodle standards for exams/quizzes. For steps (1) and (2) the standard drivers in xexams
are used. In step (3), a suitable
transformation function is set up on the fly using make_exercise_transform_html
, see also
the details section in exams2html
.
For step (4), the function will cycle through all questions and exams to generate the final XML
file in Moodle standard. The structure of the resulting XML file is such that one category
will be set for the exam/quiz using the exam/quiz name
(or this category may be
suppressed (i.e., not included in the XML) by setting iname = FALSE
), followed by one
category/section for each question, while the replicates of each question will be included in the
corresponding category/section. Note that category/section names may also be provided in the
\exsection{}
tag in the .Rnw
files, or within argument stitle
in
exams2moodle
. This may be useful when questions should automatically be added to already
existing Moodle question banks. (See also the argument descriptions above.)
The XML code for each question is then generated using function make_question_moodle
.
Note that for each question type, either the arguments of make_question_moodle
may be set
within num
, mchoice
, schoice
, string
and cloze
in
exams2moodle
, by providing a named list of specifications that should be used, or for each
questiontype, a function that produces the question XML code may be provided to num
,
mchoice
, schoice
, string
and cloze
. E.g., to suppress the solution
for numeric questions one may set num = list(solution = FALSE)
.
When specifying cloze exercises, two approaches are possible: Either a answerlist
with
all questions is provided within the question
or, alternatively, the answer fields can
be placed anywhere in the question
text. For the latter, the strings ##ANSWER1##},
##ANSWER2##}, etc., have to be used, see the exercises \code{"boxhist2.Rnw"} and
"fourfold2.Rnw"
for illustration and Appendix C in Zeileis et al. (2014) for further
details.
To fix the width of numeric answer fields withing cloze exercises (in order not to convey any
clues about the length of the correct solution), the \exextra[numwidth]
metainformation
command can be used in the .Rnw
exercise. For example, it can be set to
\exextra[numwidth,logical]{TRUE}
, \exextra[numwidth,numeric]{5}
, or
\exextra[numwidth,character]{100.0}
.
MoodleDocs (2014). Moodle XML Format.
Qedoc (2010). Moodle XML Format.
Zeileis A, Umlauf N, Leisch F (2014).
Flexible Generation of E-Learning Exams in R: Moodle Quizzes, OLAT Assessments, and Beyond.
Journal of Statistical Software, 58(1), 1--36.
exams2moodle
returns a list of exams as generated by xexams
.
make_question_moodle
returns a function that generates the XML code
for the question in Moodle's XML standard.
xexams
,
ttm
,
tth
,
tex2image
,
make_exercise_transform_html
,
## define an exams (= list of exercises) myexam <- list( "boxplots", c("tstat", "ttest", "confint"), c("regression", "anova"), c("scatterplot", "boxhist"), "relfreq" )
## output directory mydir <- tempdir()
## generate moodle quiz in temporary directory ## using a few customization options exams2moodle(myexam, n = 3, dir = mydir, num = list(solution = FALSE), mchoice = list(shuffle = TRUE) ) dir(mydir)