Comments (4)
Yes, what you are describing is definitely a scenario want to support well. If you make use of an Exercise Checker (https://rstudio.github.io/tutor/exercises.html#exercise_checking) then the results of the check are included in the call to the event recorder.
from learnr.
#coatless One prototype exercise checker is the checkr
package, available via
devtools::install_github("dtkaplan/checkr")
There's a vignette with the package that gives a quick overview and examples.
The newest version of checkr
contains an (optional) login/verification component, so that you can have a login even you you are running the tutorial on a generic shiny server.
Shinyapps.io is great, but you need the "standard" account level which at $99/mo would cause many instructors pain. The login component I implemented uses Google spreadsheets, so just about any instructor can set up and maintain the accounts and access the submissions.
I wrote checkr
with a focus on checking R code, but this can be expanded to cover other modes of submission, for example, entering equations or fill-in-the-blanks. I'd be interested to hear what modes you would be interested in having checked.
from learnr.
@jjallaire: Excellent! I'll try to throw something together.
@dtkaplan: Thanks for the information, I'll definitely look into checkr
. From the exercise-template vignette, it seems like each problem could be isolate to its own .Rmd
file and then be combined so that each student could have a "random" ordering of questions?
Presently, I'm able to use an education-licensed Shiny Server Pro. So, I'll likely study how results are sent to google spreadsheets and perhaps make a modification to stream the results into a database.
Regarding your assessment types question, I'm looking at allowing wide berth of assessments from allowing students to:
- symbolic equations (input fields transformed with mathquill)
- matching
- explicitly mark points on a graph (think
identify(x, y)
) - capturing different student models
The last of which I've worked on a bit extensively on over the past year or so (https://github.com/coatless/stat429-fa15-autograder).
from learnr.
@coatless Putting each exercise or question into it's own Rmd is working very well for me. I do this using the knitr
child system. Among other things, it let's me debug individual problems (which relates mainly to getting checkr
to give a useful response to different kinds of errors.
from learnr.
Related Issues (20)
- webR support? HOT 1
- Release learnr 0.11.3 HOT 5
- Add a function to update code box dynamically from server
- Port to Quarto environment? HOT 2
- `?` shows `_` between each letter in the title of the documentation HOT 1
- Error if `-solution` chunk has an unneeded `exercise.setup` option HOT 1
- Make learnr tests less brittle wrt error classes
- Improved `try_again` checkbox question message does not apply when question is created by `question()`
- Option to precompile/render html HOT 2
- The 'message' field of feedback must be a character vector or an htmltools tag or tagList HOT 4
- Release learnr 0.11.4
- verbatim environment does not work in learnr R markdown files HOT 2
- Can't access data in data folder tutorial directory HOT 1
- Hashpipe-style chunk options cause learnr to crash HOT 1
- Progressive Reveal for Topics at Level 2 Header ##
- Example tutorials that require gradethis should error if not installed
- Fix CRAN issues in Debian r-devel
- Release learnr 0.11.5
- YAML options to customize included directories
- `Rcpp` is not working in `learnr`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from learnr.