More convenient adaptive hints using hint.stud.call
and hint.stud.assign
and also more flexible combination of custom and auto hints using auto.hint()
and auto.hint.else()
.
Better interface for quizzes if students solve the problem set as Rmd file
Allow adaptive custom hints.
Make automatic tests and hints more informative for some common errors. Also automatic hints for %>% chains are now considerably more informative.
Add test arguments check.cols and sort.cols for simple testing only selected columns of a computed data frame.
Created the companion package RTutorSAGI that helps to analyse submission logs in order to identify parts where students systematically get stuck.
Add simple functionality to render data frames as word table if output solution is knitted as Word file
Add fill_in block to easier handle syntactially incorrect R code that has placeholders. Use it when you want to show students something like
filter(df, a == ___)
where students have to replace the ___.
Several changes in the last 4 years, e.g.:
noeval=TRUE
. Then user code is then only parsed but not evaluated.
Tests and hints only compare the parsed expression with the parsed
sample solution. The noeval mode can be useful for hosting problem sets
on an own webserver, where evaluation of user code is a high
security risk or the user shall have no direct access to the data.
The cost is less flexibility in testing the user code,
e.g. in noeval mode, x=1+2
will not be seen as correct if the
sample solution is x=2+1
.DataFramesExample_sol.Rmd
for examples.output="htmlwidget"
, and specify the widget type in the chunk option widget
, e.g. widget="leaflet"
. An example is given in LeafletExample_sol.Rmd
in the ./inst/examples
folder.addons="quiz"
in create.ps, and add #< quiz quiz_name ... #>
blocks. For an example, see QuizExample_sol.Rmd
in the ./inst/examples
folder.use.memoise
in create.ps. If set to TRUE
, the functions listed in the argument memoise.funs
will be memoised when running and showing a problem set. By default memoisation is done for a set of functions that read data from files. This saves time and memory if the same data set is repeatedly loaded in different
exercises.Add chunk option optional=TRUE
. Optional chunks don't need to be solved in an exercise and their computations will not be available in subsequent chunks.
We can now put RTutor chunks and texts in notes using the lines
#! start_note "Note Title"
...
#! end_note
Unlike info blocks the chunks inside a note can be solved. Chunks inside a note should have the chunk option optional=TRUE
.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.