Welcome to the Item Scoring Engine
The ItemScoring project is a group of modules that can be used for scoring student responses for different item types. This uses standard QTI response processing with custom operators, an extension point. This engine supports response processing on the following item scoring categories: Trivially scored, Machine scored, and Machine scored with custom operators. Refer to the custom operators document for more information on this. Instructions to install the customized SymPy library can be found in the docs directory, in the file called
Running Item Scoring Engine.docx.
This project is licensed under the AIR Open Source License v1.0.
We would be happy to receive feedback on its capabilities, problems, or future enhancements:
- For general questions or discussions, or issues and bugs, please use the Forum.
- Feel free to Fork this project and develop your changes!
2/11/2015 Release Notes
R01.00.23-20150211 is a bugfix release of the ItemScoring Engine with an updated, functional EQ scoring engine (see below for installation instructions). Related modifications in Student code have been made in the concurrent Student release. We will be doing frequent periodic releases as we update this functionality.
item-scoring-engine contains interfaces which are implemented by the other modules.
item-scoring-engine contains scoring logic as well as workers.
item-scoring-service contains standalone web services to use item-scoring-engine.
item-scoring-student-simulator simulates the student site as a thin client.
qtiscoringengine contains QTI scorer module.
Equation Scoring Service Setup
The Equation (EQ) Scorer is provided as a web service. In order to run this, perform the following steps:
- On the TDS (student) server, install Python 2.7, Sympy 0.7.1, and Bottle 0.12.8.
- For security reasons, we recommend creating a user with non-root privileges. Name it, for example,
itemscoringservice. Switch to this user.
- Create a directory for the EQ service such as
- Create a directory for the EQ service logs such as
sympy-scripts/EqScoringWebService.pyinto that user's
- Start the service as the
itemscoringserviceuser using the following command:
/usr/bin/python2.7 /home/itemscoringservice/eq/scripts/EqScoringWebService.py 2> /dev/null > /home/itemscoringservice/eq/logs/EqScoringWebService.py.log &
- This will ensure the equation scorer runs in the background and saves its log output.
- It's recommended to make sure only a single instance of the EQ scorer is running at any one time, and that the logs directory is rotated and pruned regularly.
In general, build the code and deploy the JAR file.
If building all components from scratch the following build order is needed:
ItemScoring has a number of direct dependencies that are necessary for it to function. These dependencies are already built into the Maven POM files.
Compile Time Dependencies