Skip to content

RohanSogani/autoGrader

Repository files navigation

autoGrader

Attempts to reduce the task of manually grading over 190+ students C++ coding assignment submissions.
Students submit their programs via the handin command.
Each student has a folder containing the .tar file of all the related file to the assignment.

Note

This script is for such an environment where the directory contains subdirectories named as StudentKerberosID@something.com.
Each of these subdirectories must have tar files containing all the required files and the Makefile.

Dependencies

Python3 is required for all the programs.

Usage

  1. Setup the config.json file as per requirement.
  2. All the test input/output files must be in the same directory as the student subdirectories.
  3. Unix Timestamp is in UTC Format.
    The due date can be converted here.
    If the due date is January 28, 2020, 11:59pm, enter January 29, 2020, 07:59am.\
  4. grade.py - Contains the core logic to grade students
   foo@bar:~$ python3 grade.py

Helper files

  1. mergeFileColumns.py - Merges the scores of two assignments in one final score file
  2. findMissingStudents.py - Compares final score file with the total number of students.
    It also finds the students who have not submitted their homework and assigns 0 score.

Task

  1. Check the file submission date against the due date
  2. Untar the file
  3. Make the files
  4. Execute with the given input and save the result
  5. Check the result with given output

Output

  1. A clean comma separated txt file with kerberosID, score
  2. A verbose commas separated txt file with kerberosID, Logs

Analysis

This script was tested on a folder containing over 190 students sub-directories all containing .tar files.
Overall time it took was just over 150 seconds, about 2.5 - 3 minutes
The manual task on the other hand could take over 20 hours or more. :P Accuracy of this script is about 80%, I still had to manually review about 30 submissions. But, this will improve with time.

About

Helps grade ECS 36B homework assignments @ UCDavis

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published