Giter VIP home page Giter VIP logo

gs_to_owl's Introduction

Gradescope to OWL Tool

Purpose

The purpose of this tool is to convert downloaded grades from Gradescope to a format that can be imported to OWL, the learning management system used at Western University.

Usage

To use, you must first download your grades from Gradescope. To do this, navigate to the "Assignments" tab of your course. Then, click "Download Grades". Then, go to OWL and download your Gradebook. To do this, navigate to the "Gradebook" tab of your course, then go to "Import / Export". From this page, click "Export Gradebook".

Next you have to fill out the configuration file, which is in JSON format. An example is found in the examples folder of this repository.

The first sub-dictionary in the configuration file, grading_scheme, defines the overall grading scheme for the course, where each item may have two or more subitems. If an item in grading_scheme has no subitems, then the name must match exactly with the name used on Gradescope. The values must add to 100.

The next sub-dictionary is subitems. There must be an entry for each of the items in grading_scheme. If there are subitems, a list is given, where the names match the Gradescope assignment names. If there are no subitems, a value of false is listed.

The next sub-dictionary is drop_lowest, which specifies true if the lowest value of the subitems is to be dropped or false if all subitems are to be kept. For items without subitems, a value of false must be specified.

The next sub-dictionary is excused, which defines any deliverables where a student has been excused. All empty entries are given a value of zero, except for those listed in the excused sub-dictionary. The format of this sub-dictionary is a student ID (username) as a key and a list of deliverables from which they are excused as a value.

The final sub-dictionary is replace_if_better. This defines any deliverables that should be replaced if the grade on another deliverable is better. This is meant to be applied to top-level items and not subitems. The individual subitem grades are not changed by the replacement function; it is only the aggregated grade that is replaced. The example file gives the replacement "Tests" : "Final Exam". In this case, "Tests" is made up of two individual tests, but the value will be replaced if "Final Exam" is higher. The grades of each test will be unchanged.

Once all of these files are in place, the script is run as follows:

python gs_to_owl.py --gs <path to gradescope file> --owl <path to owl file> --config <path to config file>

The script will output two files into the working directory. The first is gs_output.csv, which includes all data including intermediate values and the calculation of the course grade. The second is owl_output.csv which can be imported into OWL. The OWL file contains all of the subitems as well as the aggreggated grades for each category. It is recommended to only select "Include item in course grade calculations?" for the grade categories and not the individual subitems. If this is done, the calculated grade in OWL will match exactly with the one reported in gs_output.csv.

Contributing

If you have contributions, feature requests, or bug reports, use the Github Issues tool.

License

This software is licensed under the MIT License.

gs_to_owl's People

Watchers

Chris DeGroot avatar

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.