Giter Site home page Giter Site logo

grading's Introduction

grading

Grading Helper Project

Guy Helmer [email protected]

This is a project to assist with grading assignments downloaded from BlackBoard. I started writing it several years ago when times were so “tight” that I had needed to streamline grading. It organizes the files downloaded from Blackboard into per-student directories, compiles & executes specified classes, and extracts text from any submitted text documents (PDFs, Word docs, etc). It writes a plain text output file named “GradingReport.txt” in the grading directory.

It needs the Apache Tika (text extraction) library to extract text from documents. You can change the class path setting in the Eclipse project to point to your Tika app JAR tika-app-1.13.jar

Some useful features of the grading helper program include:

  • using a text file for input to student’s programs (because of Scanner's buffering, this breaks programs when students open multiple Scanners on System.in, so I warn students to only use one Scanner object to read from System.in)
  • limiting the amount of time the student’s program is allowed to run (which handles infinite loops or infinitely-waiting for unplanned user input),
  • limiting the amount of output to 4KB or so, and
  • computing Levenshtein edit distance between text extracted from documents to find near-duplicates
  • applying security policy to prevent unexpected access to files or other problems

Here is how I use it:

  1. I export the student user-ids and names (tab-separated) into the Students.txt file (this enables showing the student name in the grading report).
  2. I download student’s submissions from Blackboard as a Zip archive (click the arrow in the assignment header in the Gradebook, select assignment download, select all the student(s) to download submissions from, select “all submissions” at the bottom, and click OK — then click the link that appears to actually download the Zip archive.
  3. I unpack the zip into a directory. Also in the directory, I place two files: the grading.xml specification that defines which classes to compile, which class contains the main method, and the run specifications that specify any command-line parameters or input files to provide via standard input. The other file, security.policy, specifies the Java security properties that are applied when executing the student’s program — this protects against any programming mistakes or malicious code.
  4. Then I run the GradingHelper program and, for the command arguments, specify the directory containing the extracted students submissions, grading.xml file, and security.policy file.
  5. If all goes well, the program will write the output to the GradingReport.txt file. Review the GradingReport.txt file to determine if any common problems occur frequently, like:
    • Exceptions from Scanner while reading input — these may indicate problems with the input files
    • Exceptions resulting from security.policy settings — the policy may need to be adjusted to enable successful execution
  6. Then, I create a new Zip archive of the directory (including the GradingReport.txt file and the organized student submission files) and share with the TA for grading.

grading's People

Contributors

ghelmer avatar

Watchers

 avatar  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.