| Title: | Helps Grade Assignment Submissions in Common R Formats |
|---|---|
| Description: | After being given the location of your students' submissions and a test file, the function runs each file that is an R script, R Markdown file, or Quarto document, and evaluates the results from all the given tests. Results are neatly returned in a data frame that has a row for each student, and a column for each test. |
| Authors: | Taylor Brown [aut, cre] (ORCID: <https://orcid.org/0000-0003-4972-6251>, GitHub: tbrown122387), Pete Benbow [ctb] (ORCID: <https://orcid.org/0009-0006-0505-7411>, GitHub: pebenbow) |
| Maintainer: | Taylor Brown <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 2.0.1 |
| Built: | 2026-05-19 08:52:26 UTC |
| Source: | https://github.com/tbrown122387/grader |
This function grades a bunch of R script assignments
calcGrades( submission_dir, your_test_file, suppress_warnings = TRUE, verbose = FALSE )calcGrades( submission_dir, your_test_file, suppress_warnings = TRUE, verbose = FALSE )
submission_dir |
where the assignments are located |
your_test_file |
the path to your testthat test file (e.g. grade_hw1.R) |
suppress_warnings |
warning handlers prevent code from being run after they catch something. Suppress this behavior by setting this argument to TRUE. |
verbose |
set to true if you want to print the name of the file as it's being ran |
a data.frame of all the scores for each student
# change paths to *your* paths submissions <- "extdata/example/assignment1_submissions/" my_test_file <- system.file("extdata/example", "grade_hw1.R", package = "gradeR") results <- calcGrades(submissions, my_test_file)# change paths to *your* paths submissions <- "extdata/example/assignment1_submissions/" my_test_file <- system.file("extdata/example", "grade_hw1.R", package = "gradeR") results <- calcGrades(submissions, my_test_file)
This function grades one R script assignment submission and writes results out to a properly-formatted json file for Gradescope. Supports R scripts (.r, .R) as well as R Markdown (.Rmd) and Quarto (.qmd) documents.
calcGradesForGradescope( submission_file, test_file, which_results = "gradescope", suppress_warnings = TRUE )calcGradesForGradescope( submission_file, test_file, which_results = "gradescope", suppress_warnings = TRUE )
submission_file |
the path to the assignment submission file (e.g. "hw1.r", "hw1.Rmd", or "hw1.qmd"). For Rmd/Qmd files, R code will be automatically extracted. |
test_file |
the path to the .r file with test_that tests (e.g. "hw1_tests.R") |
which_results |
Choose either "testing" or "gradescope". If equal to "gradescope", the json file is written to /autograder/results/results.json. Otherwise, results.json is written to your current working directory. |
suppress_warnings |
If FALSE, warnings are fatal; if set to TRUE, warnings will not prematurely terminate running of student submission scripts. |
Invisibly returns NULL. The function's primary purpose is the side effect of writing a JSON results file.
## Not run: # For local testing calcGradesForGradescope("student_hw1.r", "hw1_tests.R", which_results = "testing") # For Gradescope autograder (inside Gradescope environment) # calcGradesForGradescope("hw1.r", "hw1_tests.R", which_results = "gradescope") # Works with R Markdown files too # calcGradesForGradescope("student_hw1.Rmd", "hw1_tests.R", which_results = "testing") ## End(Not run)## Not run: # For local testing calcGradesForGradescope("student_hw1.r", "hw1_tests.R", which_results = "testing") # For Gradescope autograder (inside Gradescope environment) # calcGradesForGradescope("hw1.r", "hw1_tests.R", which_results = "gradescope") # Works with R Markdown files too # calcGradesForGradescope("student_hw1.Rmd", "hw1_tests.R", which_results = "testing") ## End(Not run)
A function that finds student submissions with poorly encoded characters
findBadEncodingFiles(submission_dir)findBadEncodingFiles(submission_dir)
submission_dir |
where the assignments are located |
# change paths to *your* paths submissions <- "extdata/assignment1_submissions/" findBadEncodingFiles(submissions) # perhaps ask these students to resubmit# change paths to *your* paths submissions <- "extdata/assignment1_submissions/" findBadEncodingFiles(submissions) # perhaps ask these students to resubmit
A function that finds student submissions that refer to machine-specific file paths
findGlobalPaths(submission_dir)findGlobalPaths(submission_dir)
submission_dir |
where the assignments are located |
# change paths to *your* paths submissions <- "extdata/assignment1_submissions/" findGlobalPaths(submissions) # perhaps ask these students to resubmit# change paths to *your* paths submissions <- "extdata/assignment1_submissions/" findGlobalPaths(submissions) # perhaps ask these students to resubmit
This function scans a given test script and summarizes the number of tests and test criteria in the script, as well as point values.
getTestScriptReport(script_path)getTestScriptReport(script_path)
script_path |
the name of the .r file containing tests tests (e.g. "hw1_tests.R") |