A Python tool to extract information from Moodle response files.
On 15th August 2025, version v0.4 of the STACK Response File Processor has been released. This is a bug-fix release.
For changes in older versions, please see the development history.
The STACK Response File Processor is a Python tool with a graphical user interface. It is designed to streamline the extraction of information from student responses to STACK questions within Moodle quizzes, including:
- Value and state (valid, invalid, score) of STACK input fields
- The score of the potential response trees and whether the PRTs were active
- Information about whether user-specified strings are present in each row of the quiz data (True/False).
- The random seed used in the specific attempt
- STACKrate evaluation results (see https://www.ruhr-uni-bochum.de/stackrate-maths/)
The tool provides an automatic detection of input field and PRT names that are available in the response file. Another convenient feature is the conversion of the strings in the "Time spent" column (e.g. 14 mins 7 secs) to seconds (e.g. 847) for better processing.
Before using the tool, ensure you have the following prerequisites:
- Python installed on your system (version 3.6 or higher).
- Required Python libraries:
tkinter,pandas,reandjson:
For users who prefer standalone solutions, experimental standalone files for macOS (app) and Windows (exe) are available (see here), but it is recommended to use the tool via the command line as described below.
To use the Python tool, follow these steps:
-
Download the file
response-file-processor.pyfrom this repository. -
Get your data: To get started, you can use a sample file from this repository. To use your own data, export a "Responses" quiz report from Moodle as a CSV file:
- Log in to Moodle and click on the quiz you want to access the report for. Make sure you have the rights to access the students' responses!
- Click on "Results" and select "Responses".
- Choose the attempts that you want to export and choose the output format
.csv. - Click on the "Download" button.
-
Run the tool: Open the command line or terminal, navigate to the directory where the file
response-file-processor.pyis located. When you saved the file in your Downloads folder, the command is likely to becd Downloads -
Run the tool with the following command:
python3 response-file-processor.pyWhen the GUI appears, follow the instructions.
If you use the STACK Response File Processor for a scientific publication, I would be grateful if you would cite the following paper:
@InProceedings{lacheDataProcessionMade2024,
title = {Data {{Procession Made Easy}}: {{A Python Tool}} for {{Extracting Information}} from {{Student Responses}} to {{STACK Questions}}},
booktitle = {Proceedings of the {{International Meeting}} of the {{STACK Community}} 2024},
author = {Lache, Jonas},
editor = {Weinmann, Michael},
year = {2024},
pages = {26--32},
publisher = {International Meeting of the STACK Community 2024 (STACK Conference 2024)},
address = {Amberg},
doi = {10.5281/zenodo.12755221}
}The STACK Response File Processor is released under the GPL-3.0-or-later license.
By using the tool, you agree to comply with the terms of the GPL-3.0-or-later license. For more information about the license or to obtain a copy of the full license text, please visit https://github.com/jonaslache/STACK-Response-File-Processor?tab=GPL-3.0-1-ov-file. If you have any questions or concerns regarding the licensing terms, please contact jonas.lache@hs-ruhrwest.de.