Giter Club home page Giter Club logo

gradetools's Introduction

gradetools a hex shaped logo with a cat in front of a laptop sending out paper planes and a notepad with A+ on it. The logo reads gradetools

gradetools is created with data science instructors in mind. Assessing students with open-ended assignments (e.g. projects, interpretation questions) can be impactful but can also be arduous when it comes to grading. gradetools supports grading assessments for which automated feedback is not possible.

gradetools aims to do two major things:

  1. Automate the grading workflow not the feedback.
  2. Minimize switching between different interfaces (grade book, student's work, GitHub etc.)

The functions in gradetools allow the grader to:

  • efficiently grade assignments in several formats (e.g. .R, .Rmd, .py, .txt);
  • specify the rubric and modify it dynamically while grading;
  • save a final grade sheet with all assigned grades;
  • save a personalized feedback file for each student;
  • grade both individual and team-based assignments;
  • regrade specified students and questions;
  • push feedback and create GitHub issues into students' GitHub repos.

The package has only been tested with RStudio GUI.

Vignettes

Throughout the vignettes we provide example grading scenarios that you can use to test the functions. There are currently four vignettes available.

  1. How to grade with gradetools: For beginner users we recommend starting with this vignette.
  2. How to regrade assignments with gradetools: This vignette shows how to change previously assigned grades.
  3. Extended gradetools Capability: Team Grading: This vignette is only relevant for grading assignments that are team-based.
  4. Extended gradetools Capability: Assignments on GitHub: This vignette is only relevant for assignments that are on GitHub.
  5. Comprehensive example of grading with gradetools: This is a showcase of most of gradetools' capabilities.

Workshop

You can watch this tutorial to learn more about what gradetools was created for and how to use it.

Installation

You can install the development version from GitHub. You would also need to install the devtools package if you do not have it installed already.

#install.packages
devtools::install_github("federicazoe/gradetools")

Support

NSF logo

Part of this work is supported by NSF HDR DSC award #2123366.
NSF logo This work is also supported by the HPI Research Center in Machine Learning and Data Science at UC Irvine.

gradetools's People

Contributors

catalinamedina avatar federicazoe avatar mdogucu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

gradetools's Issues

Separate feedback file creation

Make a separate function to write the feedback files all together.

This will require modifying push_to_github() to work for the case when something has been graded but a feedback doesn't exist (maybe if a feedback file doesn't exist but a user wants to push it, then automatically create it?)

Wrong url for pkgdown site?

Hi, thank you for this package, I'm very excited to learn to use it!
I just wanted to report that on the landing page of the repo and the various links for the vignettes the url of the pkgdown site is "mdogucu.github.io/..." but it seems it should be "federicazoe.github.io/..."! It was hard to find the tutorials :)

Add grades to output file

Add final grade to the output file, as well as the number of points deducted for each rubric item listed in the final output.

Comprehensive vignette

  • Create new vignette on project team grading with multiple files per team on GitHub
  • Add 2 team repos

Cannot grade when file is missing

When grading multiple files (e.g. README.md and hw1.qmd, if a student did not provide README.md, then the system skips the student and starts grading the next one. One of the rubric criteria could be whether they provided README.md or not. In such instances, it would make sense to still be able to grade hw1.qmd and then move onto the next student, rather than skipping the student completely.

Information when canceling grading

  • communicate what percentage of grades are missing
  • communicate what percentage of grades have not been graded yet
  • add messages like 'almost there! you only need to grade XX more students'

Add preprint

Please consider adding preprint to

  • README
  • website
  • citation info. See example for tidytext

add (simple) function to write student-friendly version of grading rubric

write_friendly_rubric(rubric_path, friendly_format = TRUE)

This could be a function that writes a simplified version of the rubric used for grading, with three columns: question name, feedback, score. When friendly_format = TRUE, some make up is done to question names to make them more readable, e.g. underscores/hyphens in question names are substituted with spaces and capitalization is applied.

The utility is that the resulting rubric can be distributed to students as is.

This week's changes

  • Update package to allow for comments at each question
  • Change argument order
  • Update vignette images
  • Add to vignette image of final grade sheet
  • Add to vignette identifier comment
  • Add to vignette about comments

Upgrades for feedback file

  • Add capability for user to specify an existing feedback file that we will just append the text to
  • Add option to print grade decomposition to feedback file

New function for grading report

Create function that produces a grading report out of the grading log with, e.g.:

  • Students whose assignment is missing
  • Question-level summaries: e.g. numerical summaries, plots
  • Assignment-level summaries

Add option to not provide student submissions

  • Would allow use of our package (rubric prompting, grade recording, and feedback file creation) to grade assignments that don't comply with allowed submission types, or physical assignments

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.