- •Содержание
- •Введение Актуальность магистерской диссертации
- •Понятие плагиата
- •Специфика понятия «плагиат» в программировании: окончательный вывод о заимствовании делает человек
- •Постановка задачи
- •1.1 Необходимость дополнительной проверки на основе анализа структурного анализа кодов
- •2.2 Атрибутные методы поиска плагиата
- •1.2 Общая схема работы модулей инструментальной системы поиска плагиата
- •Теоретические основы поиска плагиата в исходных кодах программ
- •2.1 Классификация методов поиска плагиата в программировании
- •2.3 Структурные методы поиска плагиата
- •2.3.1 Строковое выравнивание
- •2.3.2 Метод поиска на xml-представлении
- •2.3.3 Использование приближения Колмогоровской сложности
- •2.3.4 Метод идентификационных меток
- •2.3.5 Нейросетевые методы обнаружения плагиата
- •2.4 Другие методы
- •Методы поиска плагиата в произвольных текстах
- •3.1 Локальные методы
- •3.1.2 Методы на основе меры tf
- •3.1.3 Методы, использующие понятия шинглов
- •3.1.4 Методы, использующие семантические сети
- •3.2 Глобальные методы
- •3.2.1 Методы на основе меры tf-idf
- •3.2.3 Метод «опорных» слов
- •3.3 Метод шинглов
- •Разбиение на шинглы;
- •Вычисление хешей шинглов;
- •3.3.1 Канонизация текстов
- •3.3.2 Разбиение на шинглы
- •3.3.3 Вычисление хешей шинглов
- •3.4 Дистанция (расстояние) Левенштейна
- •3.4.1 Алгоритм Вагнера — Фишера
- •3.5. Наибольшая общая последовательность (longest common subsequence, lcs)
- •3.6 Вычисление хеш-функции
- •3.6.1 Параметры вычисление хеш-функции: полином-генератор, разрядность и стартовое слово
- •3.6.2 Популярные и стандартизованные полиномы
- •3.7 Виды представления исходного кода
- •3.8 Представление исходного кода в виде токенов
- •Обзор инструментальных средств и сервисов анализа плагиата в программах и произвольных текстах
- •4.1 Обзор программ поиска плагиата в программировании
- •4.2 Обзор сервисов поиска плагиата
- •4.3 Обзор программ поиска плагиата в произвольных текстах
- •Описание используемых методов поиска плагиата в исходных кодах и произвольных текстах
- •5.1 Общая схема поиска
- •5.1.1 Cхема поиска для исходных кодов
- •5.1.2 Основной структурный метод для анализа исходных кодов
- •5.1.2.1 Достоинства и недостатки
- •5.1.3 Дополнительный атрибутный метод для исходных текстов
- •5.1.3.1 Достоинства и недостатки
- •5.2.1 Cхема поиска для произвольных текстов (в том числе и программ)
- •Программная реализация модуля поиска плагиата методами анализа исходных кодов программ
- •6.1 Интерфейс модуля поиска плагиата в исходных кодах программ
- •6.1.1 Главное окно модуля поиска плагиата методами анализа исходных кодов
- •6.1.2 Окно групповых режимов анализа
- •6.2 Взаимодействие модуля поиска плагиата методами анализа исходных кодов
- •6.2.1 Взаимодействие модуля с архивом работ и базой языков (добавление файла в базу)
- •6.2.2 Взаимодействие модуля с архивом работ и базой языков (частотный анализ, автоматический частотный анализ)
- •6.2.3 Взаимодействие модуля с архивом работ и базой языков (автоматический анализ последовательностей операторов)
- •6.2.4. Взаимодействие модуля с архивом работ и базой языков (анализ последовательностей операторов, просчет всех пиков)
- •6.2.5 Взаимодействие модуля с архивом работ и базой языков (удаление файла/языка из базы)
- •6.2.6 Взаимодействие модуля с базой языков (добавление языка в базу)
- •6.2.9 Поиск первоисточника и списка первоисточников
- •6.2.10 Некоторые особенности модуля
- •6.3 Описание отчетов по анализу плагиата
- •6.3.1 Критерии автоматического заключения о наличии плагиата при пакетном и полном анализе
- •6.3.2 Алгоритм поиска первоисточника для файла или списка первоисточников при полном анализе
- •6.3.3 Сводный отчет
- •6.3.4 Итоговый отчет
- •6.3.5 Экспорт итогового протокола в Excel
- •6.3.5.1 Исследование итогового протокола по полученным диаграммам Excel
- •6.3.6 Экспорт списка первоисточников в Excel
- •6.3.6.1 Исследование списка первоисточников в Excel
- •6.4 Пример работы модуля
- •6.4.1 Пример 1 анализа последовательности операторов
- •Режим работы модуля PlagiatSearch с произвольным текстом
- •Режим работы модуля PlagiatSearch с исходным кодом
- •7.1.2 Меню «Анализ» и его возможности для поиска плагиата в произвольных текстах
- •7.1.3 Информационное окно модуля PlagiatSearch поиска плагиата в произвольных текстах с результатами вычисления дистанции Левенштейна
- •7.1.4 Представление результатов нахождения наибольшей общей подпоследовательности (longest common subsequence, lcs)
- •7.1.5 Представление метода шинглов для сравнения произвольных текстов
- •7.1.6 Применение метода шинглов для сравнения исходных кодов
- •Заключение
- •Список использованных источников (библиографический список)
- •Приложение Доработанная блок-схема алгоритма анализа последовательности операторов (с показом наиболее длинного совпадающего фрагмента кода)
- •55. Мд.Иу.Мсавпсрит.Пз
6.3.5.1 Исследование итогового протокола по полученным диаграммам Excel
Проанализируем полученные результаты. При этом мы не будем учитывать годы 2002, 2006,2009,2010,2011, так как мы имеем недостаточное количество работ по этим годам. Будем учитывать только 2004, 2005, 2007,2008 год.
С – ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО ЧАСТОТЕ ОПЕРАТОРОВ БЕЗ УЧЕТА ГОДОВ: незначительный пик процента подозрительных программ к общему числу проанализированных программ наблюдается в 2007 году.
D – ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО СОВПАДЕНИЮ ПОСЛЕДОВАТЕЛЬНОСТИ ОПЕРАТОРОВ БЕЗ УЧЕТА ГОДОВ: ярко выраженный пик процента подозрительных программ к общему числу проанализированных программ наблюдается в 2007 году.
E – ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ОДНОВРЕМЕННО ПО ОБОИМ КРИТЕРИЯМ БЕЗ УЧЕТА ГОДОВ: ярко выраженный пик процента подозрительных программ к общему числу проанализированных программ наблюдается в 2007 году.
F – ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО ЧАСТОТЕ ОПЕРАТОРОВ В ОДНОМ И ТОМ ЖЕ ГОДУ: ярко выраженный пик процента подозрительных программ к общему числу проанализированных программ наблюдается в 2007 году. Видимо курс был либо очень «дружный» либо очень слабый, и поэтому студенты активно списывали друг у друга.
G – ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО СОВПАДЕНИЮ ПОСЛЕДОВАТЕЛЬНОСТИ ОПЕРАТОРОВ В ОДНОМ И ТОМ ЖЕ ГОДУ: ярко выраженный пик процента подозрительных программ к общему числу проанализированных программ наблюдается в 2007 году. Видимо, курс был либо очень «дружный» либо очень слабый, и поэтому студенты активно списывали друг у друга.
H – ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ОДНОВРЕМЕННО ПО ОБОИМ КРИТЕРИЯМ В ОДНОМ И ТОМ ЖЕ ГОДУ: ярко выраженный пик процента подозрительных программ к общему числу проанализированных программ наблюдается в 2007 году. Видимо, курс был либо очень «дружный» либо очень слабый, и поэтому студенты активно списывали друг у друга.
I – ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО ЧАСТОТЕ ОПЕРАТОРОВ ПРИ СРАВНЕНИИ С ПРОГРАММАМИ ПРЕДЫДУЩИХ ЛЕТ: пик процента подозрительных программ к общему числу проанализированных программ наблюдается в 2007 году.
J – ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО СОВПАДЕНИЮ ПОСЛЕДОВАТЕЛЬНОСТИ ОПЕРАТОРОВ ПРИ СРАВНЕНИИ С ПРОГРАММАМИ ПРЕДЫДУЩИХ ЛЕТ: пик процента подозрительных программ к общему числу проанализированных программ наблюдается в 2007 году.
K – ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ОДНОВРЕМЕННО ПО ОБОИМ КРИТЕРИЯМ ПРИ СРАВНЕНИИ С ПРОГРАММАМИ ПРЕДЫДУЩИХ ЛЕТ: пик процента подозрительных программ к общему числу проанализированных программ наблюдается в 2007 году.
6.3.6 Экспорт списка первоисточников в Excel
Ниже (таблица 10 в Приложении 5) приведен список первоисточников в первоначальном виде и без дубликатов, полученный после экспорта в Excel. Красным цветом выделены (но здесь показаны не все) программы студентов, которые явно (с большой долей вероятности) были списаны с других программ.
6.3.6.1 Исследование списка первоисточников в Excel
Число первоисточников без дубликатов – 211, а число изучаемых файлов – 283. Отсюда можно сделать вывод о том, что хотя плагиат присутствует в работах студентов, но он достаточно невелик (около 25%). B 75% случаев студент сам пишет программы.
Полученное число первоисточников равное 211 хорошо согласуется с другими данными проведенного анализа. А именно, если посмотрим на сумму в столбце E, равную 144: в этом столбце приведены данные о числе работ, в которых найдены признаки плагиата по двум критериям. Учтем, что фактически число работ с плагиатом здесь учтены дважды, поэтому реальное число списанных работ равно 72. Если вычесть это число из общего числа работ, то как раз и получим полученное число первоисточников равное 211.
Отметим еще, что не надо рассматривать очень короткие программы, которые, по сути дела, представляют собой просто шаблонные заготовки, генерируемые инструментальной средой (такой как Delphi).
