riddlr: Test-case-driven R Programming Challenges
Authors: Doug Kelkhoff
Working with Shiny for 1+ years
Abstract: A set of shiny tools for creating coding challenges
Full Description: Create R programming challenges for learning, teaching or evaluation.
Questions are added via a simple Rmd template, making it easy for contributors to expand the variety of questions. Metadata about the question is captured in the yaml header and named code chunks are used to capture the prepopulated code block, solution and test inputs.
riddlr tests user-submitted solutions against multiple test cases, preferably in increasing difficulty. Users submit solutions which may encounter increasingly difficult edge cases or performance implications, getting feedback along the way about what test failed and what input was provided. For testing performance of code, users get a bit of added feedback when they're within a grace period of the timeout. The riddlr package supports simple markdown templates for question prompts, pre-populated solution code blocks and test cases. Solutions allow for loading any packages installed on the server - with attaching and detaching of packages handled when evaluating each challenge.
The app that is deployed to RStudio Cloud is the second example provided in the package README.
Category: Shiny extensions
Keywords: code-challenge, test, learnr
Shiny app: https://dgkf.shinyapps.io/riddlr-challenge-catalog/
RStudio Cloud: https://rstudio.cloud/project/972576