Skip to main content

eLearning Grading

Python utilities to help Teaching Assistants grade assignments with eLearning


PyPI - Python Version PyPI Status license


eLearning Grading

This repository contains python scripts and tools to help Teaching Assistants using eLearning's assignment download feature to organize and grade written, typed, and programming assignments.

How To Use

Installing from pip

pip install elearning-grading

Installing from GitHub

git clone https://github.com/Supermaxman/elearning-grading
cd elearning-grading
pip install -e .

Organizing code and reports

eLearning provides the Assignment File Download feature for Teaching Assistants to download assignment files for the entire class. Sadly, this feature makes grading assignments extremely tedious, as the .zip file provided usually looks like this (simulated):

With each student submission zip file populated with user-submitted content:

These archives could be .zip, .tar, .tar.gz, .rar, or more file types, and there could be multiple files for each student in the eLearning zip file. elearning-grading helps manage this chaos by organizing files and folders based on student netids, and splitting code and pdf reports.

The elg-org tool works as follows:

elg-org --help
usage: elg-org [-h] [-i INPUT_PATH] [-c CODE_PATH] [-r REPORTS_PATH]

optional arguments:
  -h, --help            show this help message and exit
  -i INPUT_PATH, --input_path INPUT_PATH
                        filepath to .zip file from eLearning.
  -c CODE_PATH, --code_path CODE_PATH
                        output folder for code, organized by netid.
  -r REPORTS_PATH, --reports_path REPORTS_PATH
                        output folder for pdf reports, organized by netid.

For example, the above simulated eLearning submission zip file is organized like so:

elg-org -i tests/gradebook_7366-LRWYV-CO-3865-SEC000_Test207_2022-02-24-11-32-57.zip

PDF or DOCX reports are organized into the reports folder, while everything else is considered potential code and is moved into the code folder.

Each folder is organized by student netid as follows:

Where reports are included in reports folder for each netid:

And code is included in the code folder for each netid:

This organization structure makes grading much easier, as everything is organized by netid and written reports are clearly marked for grading.

Generating simulated eLearning .zip files

eLearning's Assignment File Download feature provides extremely unpredictable student zip files, as each student can upload whatever they want. elearning-grading provides the elg-gen utility, which generates synthetic, random files in the unpredictable format of eLearning. elg-gen ensures that utilities within this library are tested against unexpected student file formats.

el-gen documentation:

elg-gen --help
usage: elg-gen [-h] [-o OUTPUT_PATH] [-n NUM_STUDENTS] [-s SEED] [-t TYPE]

optional arguments:
  -h, --help            show this help message and exit
  -o OUTPUT_PATH, --output_path OUTPUT_PATH
                        filepath to create test .zip file from eLearning.
  -n NUM_STUDENTS, --num_students NUM_STUDENTS
                        Number of students to put in file.
  -s SEED, --seed SEED  Seed of RNG.
  -t TYPE, --type TYPE  Type of data to generate. Options: pdf: only generates
                        pdf files. pdf-zip: only generates pdf files inside zip
                        files.pdf-code-zip: generates pdf file and code files
                        inside zip files.pdf-code-full: generates pdf file and
                        code files inside various compressed files.

el-gen usage:

elg-gen -n 5 \
  --output_path tests \
  --type pdf-code-full \
  --seed 1

This will generate an eLearning Assignment File Download file format filled with random data, such as the following: gradebook_7366-LRWYV-CO-3865-SEC000_Test207_2022-02-24-11-32-57.zip

With each student submission zip file populated with random content:

Identifying project members

TODO

Organizing project code and reports

TODO

About Me

My name is Maxwell Weinzierl, and I am a Natural Language Processing researcher at the Human Technology Research Institute (HLTRI) at the University of Texas at Dallas. I am currently working on my PhD, which focuses on COVID-19 and HPV vaccine misinformation, trust, and more on Social Media platforms such as Twitter. I am also a Graduate Teaching Assistant for the AI, NLP, and IR classes of Dr. Harabagiu.

Metadata

Release files for elearning-grading 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for elearning-grading 0.2.2
File Size Uploaded Provenance
elearning-grading-0.2.2.tar.gz 17.9 kB Without provenance Details

Release files / elearning-grading-0.2.2.tar.gz

Download URL elearning-grading-0.2.2.tar.gz
Size 17.9 kB
Tags Source
SHA-256 checksum
How to use checksums
065853c216c8cd5fbf5d55f1bea2a24eaf80352b87ef477ed70e7c434c1c3758
BLAKE2b-256 checksum
How to use checksums
54d5fa49c692e51cb753733755e2304988c64662b8e5fb39f7e37510f5071149
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.26.0 requests-toolbelt/0.9.1 urllib3/1.26.6 tqdm/4.62.2 importlib-metadata/4.10.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.6

Security for elearning-grading 0.2.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page