tbrown122387 / gradeR

helps grade R script assignment submissions!
Other
4 stars 3 forks source link

Feature request: Support for R Markdown #8

Open debbieyuster opened 4 years ago

debbieyuster commented 4 years ago

Feature request: support for grading R Markdown would be amazing!! @tbrown122387

tbrown122387 commented 4 years ago

@debbieyuster I'm on it! Were you more interested in getting this for the Gradescope piece, or the one that runs on your local machine?

debbieyuster commented 4 years ago

@tbrown122387 That's great!! I will be using Gradescope this semester so that would be my personal preference. I'm sure there would be community interest in both options though, seems to me Jupyter notebooks have a big advantage over Rmd when it comes to autograding currently. This could help level the field and allow scale-up of courses using Rmd.

tbrown122387 commented 4 years ago

@debbieyuster okay cool. No promises on getting this on CRAN before the start of the semester--but, a quick DIY solution would be to change the run_autograder shell script to convert the Rmd file to a .R file (this is from the vignette) You would just have to add a line like

Rscript -e 'install.packages("knitr"); knitr::purl("hw1.Rmd", "hw1.R")'

This runs the R code in between single apostrophes. So the entire run_autograder shell script would be changed to

#!/usr/bin/env bash
# Set up autograder files
Rscript -e 'install.packages("knitr"); knitr::purl("/autograder/submission/assignment1.Rmd", "/autograder/submission/assignment1.R")'
cp /autograder/submission/assignment1.R /autograder/source/assignment1.R
cd /autograder/source
Rscript grade_one_submission.r 
debbieyuster commented 4 years ago

@tbrown122387 Thank you! I also wanted to mention that Otter Grader (a Python autograder from UC Berkeley) is adding R and Rmd autograding functionality through Gradescope. It's a work in progress but they just released something. You may decide to move Rmd support down on your list because of this - I haven't looked yet at how their solution might differ from yours.

caseywdunn commented 4 years ago

@debbieyuster okay cool. No promises on getting this on CRAN before the start of the semester--but, a quick DIY solution would be to change the run_autograder shell script to convert the Rmd file to a .R file (this is from the vignette) You would just have to add a line like

Rscript -e 'install.packages("knitr"); knitr::purl("hw1.Rmd", "hw1.R")'

This runs the R code in between single apostrophes. So the entire run_autograder shell script would be changed to

#!/usr/bin/env bash
# Set up autograder files
Rscript -e 'install.packages("knitr"); knitr::purl("/autograder/submission/assignment1.Rmd", "/autograder/submission/assignment1.R")'
cp /autograder/submission/assignment1.R /autograder/source/assignment1.R
cd /autograder/source
Rscript grade_one_submission.r 

This is the approach I took and it works fine. Thanks for such a great tool.