Tool for accessing academic miscoduct
The aim of this tool is to test student submissions that are not obvious cases, but suspected of misconduct due to multiple small segments being similar to other submissions. With a large number of submissions, it is fairly likely that some segments will be similar by chance. This tool is used to help in such situations, by estimating the expected number of submissions with that exact combination of segments. It is built to assist the decision making process, it does not replace it.
For each suspect segment, the individual probability of that segment is calculated by taking the number of submissions that have a similar segment over the number of all the submissions. Segments that are present in a lot of submissions have a higher individual probability. The joint probability is then calculated by assuming that each segment is independent and taking the product of all the segments' individual probabilities. Finally, to calculate the estimated number of submissions we take the joint probability and multiply it with the number of all the submissions. The resulting number should be the number of students anticipated to have the exact combination of the suspected segments. If the expected number is lower than one, a case of misconduct is suggested. Please note that the results are not conclusive.
Java
SE Runtime Environment(JRE) >= 1.8.0
Anaconda
>= 5.2 ORMiniconda
>= 4.5.4
Otherwise, install the required Python
dependencies listed in environment.yml
using pip
manually and skip the the installation guide below
- Clone the repository
git clone https://github.com/iamstelios/Misconduct-Assessment-Tool
- Create the conda environment:
cd Misconduct-Assessment-Tool/scripts/
conda env create -f environment.yml
cd ..
- Activate the environment
OS X & Linux:
conda activate mat
Windows:
activate mat
Note that the system requires an environment variable
SECRET_KEY
to be set
- Follow the link below for instruction of how to include the
SECRET_KEY
environment variable in your conda environment. https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#saving-environment-variables
- Apply the database migrations (only when the database model structure is modified and during the first run)
python manage.py migrate
- Run the server!
python manage.py runserver <optional ip:port>
Stelios Milisavljevic β https://iamstelios.com β https://github.com/iamstelios
Distributed under the GNU General Public License. See LICENSE
for more information.
Final year project UG4 BEng Software Engineering
Supervised by Prof. Kyriakos Kalorkoti, School of Informatics, University of Edinburgh
System inherited from Yuechen Xie β https://github.com/Weak-Chicken/misconduct_detection_project
- Fork it (https://github.com/iamstelios/Misconduct-Assessment-Tool)
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request