Проверка исходных текстов программ на плагиат с использованием графа зависимости программы (program dependence graph).
Поддержанные языки программирования:
- Python
Требуются установленные go1.11+, python3.8+ и gcc.
git clone https://github.com/AleksMa/GraphStealChecker.git
cd GraphStealChecker
git submodule update --init --recursive
pip install -r requirements.txt
go build -o ./bin/main main.go
./bin/main -p=8080
Загрузка программ на проверку производится по адресу 127.0.0.1:<port>
, где - указанный во флаге -p
порт, по умолчанию 8080
.
Параметры:
- Лимит времени проверки - задается в секундах, устанавливает максимальное время поиска наибольших общих подграфов,
натуральное число
- Минимальная доля вершин - какая часть вершин графа каждой функции по меньшей мере должна входить в общий подграф (ограничение снизу размер общего подграфа),
вещественное число от 0 до 1
- Уровень правдоподобия - параметр проверки статистической гипотезы на предмет близости графов при поиске максимального общего подграфа,
вещественное число от 0 до 1
Примеры файлов для проверки:
data/simpleX.py
- тривиальные примеры кодаdata/lab2/
- лабораторные работы по курсу "Алгоритмы компьютерной графики". Как правило, содержат похожие участки кода (например, функции обработки нажатий на клавиши).
check
- пакет работы с графом зависимости программ и проверяемым исходным кодом, Godata
- примеры Python-программ для проверкиnet
- пакет работы с сетью, GoPyDG
- подмодуль генерации графа зависимости программ, Python3PyMCS
- алгоритм поиска максимальных общих подграфов с точностью до изоморфизма, Python3