Программная реализация модуля PlagiatSearch поиска плагиата методами сравнения произвольных текстов

Специфика понятия "плагиат" в программировании. Схема работы модулей инструментальной системы поиска плагиата. Основы поиска в исходных кодах программ, в произвольных текстах. Обзор инструментальных средств. Программная реализация модуля PlagiatSearch.

Рубрика Программирование, компьютеры и кибернетика
Вид магистерская работа
Язык русский
Дата добавления 27.06.2014
Размер файла 4,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Понятие циклические коды достаточно широкое. В англоязычной литературе CRC расшифровывается двояко в зависимости от контекста: Cyclic Redundancy Code или Cyclic Redundancy Check. В нашем случае CRC понимается в смысле хеш-функции.

Первые попытки создания кодов с избыточной информацией начались задолго до появления современных ПК. К примеру, ещё в шестидесятых годах прошлого века Ридом и Соломоном была разработана эффективная методика кодирования -- «Код Рида-Соломона». Использование её в те времена не представлялось возможным, так как произвести операцию декодирования за разумное время первыми алгоритмами не удавалось. Точку в этом вопросе поставила фундаментальная работа Берлекампа, опубликованная в 1968 году. Эта методика, на практическое применение которой указал через год Мэсси, и по сей день используется в цифровых устройствах, обеспечивающих прием RS-кодированных данных. Более того, данная система позволяет не только определять позиции, но и исправлять неверные кодовые символы (чаще всего октеты).

Но далеко не везде от кода требуется коррекция ошибок. Многие современные каналы связи обладают приемлемыми характеристиками, и зачастую достаточно лишь проверить, успешно ли прошла передача или возникли какие-нибудь сложности; структура же ошибок и конкретные позиции неверных символов совершенно не интересуют принимающую сторону. И в этих условиях очень удачным решением оказались алгоритмы, использующие контрольные суммы. CRC как нельзя лучше подходит для подобных задач: невысокие затраты ресурсов, простота реализации и уже сформированный математический аппарат из теории линейных циклических кодов обеспечили ей огромную популярность.

В самом общем своем виде контрольная сумма представляет собой некоторое значение, построенное по определенной схеме на основе кодируемого сообщения. Проверочная информация при систематическом кодировании дописывается в конец сообщения -- после полезных данных. На принимающей стороне абонент знает алгоритм вычисления контрольной суммы: соответственно, программа имеет возможность проверить корректность принятых данных.

При передаче пакетов по реальному каналу, разумеется, могут возникнуть искажения исходной информации вследствие разных внешних воздействий: электрических наводок, плохих погодных условий и многих других. Сущность методики в том, что при хороших характеристиках хеш-функции в подавляющем числе случаев ошибка в сообщении приведет к изменению вычисленного на приеме значения CRC. Если исходная и вычисленная суммы не равны между собой, принимается решение о недостоверности принятых данных, и можно запросить повторную передачу пакета.

Алгоритм CRC базируется на свойствах деления с остатком двоичных многочленов, то есть многочленов над конечным полем. Значение CRC является, по сути, остатком от деления многочлена, соответствующего входным данным, на некий фиксированный порождающий многочлен.

Каждой конечной последовательности битов a0, a1,…, aN-1 взаимно однозначно сопоставляется двоичный полином , последовательность коэффициентов которого представляет собой исходную последовательность. Например, последовательность битов 1011010 соответствует многочлену:

Количество различных многочленов степени меньшей N равно 2N, что совпадает с числом всех двоичных последовательностей длины N.

Значение контрольной суммы в алгоритме с порождающим многочленом G(x) степени N определяется как битовая последовательность длины N, представляющая многочлен R(x), получившийся в остатке при делении многочлена P(x), представляющего входной поток бит, на многочлен G(x):

где

R(x) - многочлен, представляющий значение CRC.

P(x) - многочлен, коэффициенты которого представляют входные данные.

G(x) - порождающий многочлен.

N - степень порождающего многочлена.

При делении с остатком исходного многочлена на порождающий полином G(x) степени N можно получить 2N различных остатков от деления. G(x) всегда является неприводимым многочленом. Обычно его подбирают в соответствии с требованиями к хеш-функции в контексте каждого конкретного применения.

Тем не менее, существует множество стандартизированных образующих многочленов, обладающих хорошими математическими и корреляционными свойствами (минимальное число коллизий, простота вычисления).

3.6.1 Параметры вычисление хеш-функции: полином-генератор, разрядность и стартовое слово

В качестве примера рассмотрим схему формирования контрольной суммы CRC-8. Порождающий многочлен g(x) = x8+x5+x4+1. Говоря о формировании контрольной суммы CRC, в первую очередь нужно упомянуть о полиноме-генераторе.

Другим параметром конкретного алгоритма вычисления контрольной суммы является размер слова, или суммарное количество регистров -- информационных ячеек, используемых для вычисления численного значения хеш-функции. При этом обязательно учитывается то, что размер слова и степень образующего контрольную сумму полинома совпадают. На практике более всего распространены 8, 16 и 32 -- битовые слова, что является следствием особенностей архитектуры современной вычислительной техники.

И последний параметр, важный при описании определенной методики -- начальные состояния регистров (стартовое слово). Это последняя из трех значимых характеристик; зная их в совокупности, мы можем восстановить алгоритм вычисления CRC.

3.6.2 Популярные и стандартизованные полиномы

В то время, как циклические избыточные коды являются частью стандартов, у этого термина не существует общепринятого определения -- трактовки различных авторов нередко противоречат друг другу.

Этот парадокс касается и выбора многочлена-генератора: зачастую стандартизованные полиномы не являются самыми эффективными в плане статистических свойств соответствующего им check reduntancy code.

При этом многие широко используемые полиномы не являются наиболее эффективными из всех возможных. В 1993--2004 годах группа учёных занималась исследованием порождающих многочленов разрядности до 16, 24 и 32 бит, и нашла полиномы, дающие лучшую, нежели стандартизированные многочлены, производительность в смысле кодового расстояния. Один из результатов этого исследования уже нашёл своё применение в протоколе iSCSI.

Самый популярный и рекомендуемый IEEE полином для CRC-32 используется в Ethernet, FDDI; также этот многочлен является генератором кода Хемминга. Использование другого полинома -- CRC-32C -- позволяет достичь такой же производительности при длине исходного сообщения от 58 бит до 131 кбит, а в некоторых диапазонах длины входного сообщения могут быть даже выше -- поэтому в наши дни он тоже пользуется популярностью. К примеру, стандарт ITU-T G.hn использует CRC-32C с целью обнаружения ошибок в полезной нагрузке.

В Википедии (http://ru.wikipedia.org/wiki/Циклический_избыточный_код) перечислены наиболее распространенные многочлены -- генераторы CRC.

3.7 Виды представления исходного кода

Другие системы обнаружения плагиата рассматривают исходный код "как есть". Например, так поступают детекторы плагиата, которые работают с кодом так же, как и с обычными текстами. Но они крайне неэффективны для решения нашей задачи, так как переименование функций и переменных или несущественные изменения в коде являются серьезными препятствиями для их правильной работы. Иногда используется параметризованное представление кода. Один из его вариантов таков: имена функций и переменных заменяются при первой встрече в коде на ноль, а при последующих на расстояние до предыдущей позиции. Обычно детекторы, основанные на этих двух представлениях, лучше находят плагиат, чем системы "подсчитывающие отличительные черты", а также способны находить плагиат в случаях, когда скопирована только часть программы.

3.8 Представление исходного кода в виде токенов

Пусть у нас есть две строки кода for(int a = 0; a <= bb + +) и for(int j = 0; (j -- 1) < n;j + +). Очевидно, что у них одинаковая функциональность, и плагиатор мог из одной получить другую без особых усилий, а для ранее описанных представлений они совершенно различны. Чтобы бороться с такого рода средствами сокрытия плагиата, было придумано токенизированное представление кода. Основная идея этого представления -- это сохранение существенных и игнорирование всех поверхностных (то есть легко модифицируемых) деталей кода программы. Процедура токенизации выглядит примерно так:

Каждому оператору языка (кроме пустого -- его игнорируем), который не является операндом, приписываем код, назначенный заранее для каждого класса операторов. Также коды можно приписывать блочным операторам (наприме, begin/end, {}), подключениям библиотек и заголовочных файлов.

Строим строку из полученных кодов, сохраняя порядок следования их в исходном коде программы. Один символ строки (токен) -- код одного оператора.

Таким образом, автоматически игнорируются названия функций и переменных (классов, объектов и так далее), разделительные символы, предотвращаем влияние мелких изменений кода программы (см. пример выше). Процесс токенизации и разбиение операторов на классы зависят от используемого в исходном коде языка программирования.

К одному классу операторов обычно относят те, которым соответствует один идентификатор языка программирования, все вызовы функций, вызовы методов классов, объявления переменных элементарных типов, объявление экземпляров классов.

4 ОБЗОР ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ И СЕРВИСОВ АНАЛИЗА ПЛАГИАТА В ПРОГРАММАХ И ПРОИЗВОЛЬНЫХ ТЕКСТАХ

4.1 Обзор программ поиска плагиата в программировании

Приведём в таблице 1 обзорные данные о программах поиска плагиата в программирования, взятые из различных источников [11].

Таблица 1 Программы поиска плагиата в исходных кодах

Детектор

Языки

Модель

Алгоритм

Accuse

Fortran

n-мерное пространство

атрибутный метод

SIM

C, Java, Pascal,

Modula-2, Miranda

Токены

поиск по матрице совпадений подстрок

JPlag

C/C++, Java, Scheme

Токены

жадное строковое замощение

MOSS

C/C++, C#, Java, a8086 assembly и др.

сигнатура кода

метод отпечатков

Plague

Pascal, Modula-2, Prolog

токены

набор метрик

Sherlock

Pascal и др.

текст, токены

аналог Plague, нейросеть

Plan-X

SML

XML формат

использоване XML

SID

С++, Java

токены

вычисление метрики на основе Колмогоровской сложности

4.2 Обзор сервисов поиска плагиата

Обзор сервисов поиска плагиата взят из работы [17]:

Антиплагиат - интернет-сервис, реализующий технологию проверки текстовых документов на наличие заимствований.

Сopyscape - проверка уникальности текста Online. Сервис сайта позволяет проверить указанный URL.

Miratools.ru - проверка уникальности текста Online.

Istio.com - проверка уникальности текста Online. Сервис сайта позволяет провести анализ текста, проверить орфографию, составить карту и словарь текста. Так же есть возможность анализа контента сайта.

Text.ru - Бесплатная проверка текста на уникальность. Показывает в процентном соотношении уникальности текста Online. Указывает в результатах проверки домены, на которых найдены выделенные фрагменты.

Turnitin tool (http://www.Turnitin.com) - это ведущее на мировом рынке онлайновое средство проверки документов на наличие плагиата. Принцип работы программы показан на рисунке 7.

Рисунок 7 Пример работы программы Turnitin tool

Механизм работы программы следующий: документ разбивается на фрагменты, которые сравниваются с содержимым базы данных при помощи статистического алгоритма. Поиск плагиата происходит на базе сравнения исходного текста с миллионами страниц контента в Интернете и внутренних баз данных.

В базе хранятся произведения классиков, учебные и научные работы. В случае обнаружения текстовых совпадений система выдает предупреждение. Архив постоянно пополняется работами, которые были предоставлены на экспертизу по поводу плагиата. Интересно отметить следующий юридический казус: архивирование и дальнейшее использование учебных работ в системе антиплагиата само по себе не соответствует европейским правовым нормам об охране авторских прав, поэтому многие европейские университеты, являющиеся клиентами Turnitin, требуют от студентов письменного согласия с тем, что их работы будут сохранены в соответствующих электронных архивах.

Turnitin работает с большинством европейских языков, в том числе с английским, испанским, немецким, французским, итальянским. Программа является платной. Обычно лицензию покупает университет.

Plagiarism-Finder 1.0.9 (http://www.m4-software.com/en-index.htm) [47] (рисунок 8) -- это приложение, позволяющее проверить текст на предмет текстуального совпадения с документами, хранящимися в Интернете. Plagiarism-Finder генерирует HTML-отчет, выделяет в тексте подозрительные абзацы и выдает ссылки на Web-странички, где содержатся похожие абзацы.

Рисунок 8 Интерфейс программы Plagiarism-Finder

Длительность анализа зависит от требуемой точности, мощности ПК и качества канала выхода в Интернет. Анализ курсовой, содержащей 35 страниц (20 тыс. слов, 125 тыс. знаков), с широкополосным доступом DSL займет примерно 2 мин (выборочный контроль), 6 мин понадобится для так называемого среднего контроля (используется по умолчанию) и 40 мин -- для проведения тщательной проверки. Документ должен быть представлен в цифровой форме. Plagiarism-Finder импортирует документы в форматах PDF (Acrobat Reader), DOC (Microsoft Word), HTML, TXT (Plain Text) или RTF (Rich TextFormat). Практически любой текстовый процессор позволяет представить документ в одном из данных форматов. При этом пользователь ПК может даже не иметь программы Microsoft Word. Программа ищет похожие тексты и выдает ссылки, однако вывод о том, плагиат это или нет, рекомендуется делать при визуальном сравнении текстов экспертом.

4.3 Обзор программ поиска плагиата в произвольных текстах

Обзор программ поиска плагиата в произвольных текстах[17]:

Advego Plagiatus - программа для проверки текста на уникальность, осуществляет поиск в internet частичных или полных копий текста документа. Программа показывает степень уникальности текста в процентном соотношении, так же указывает источники не уникального текста, позволяет проверять текст на уникальность указанного URL. Программа требует установки на компьютер.

Praide unique content analyzer - программа для проверки уникальности контента. Требует установки. Параметры разбора позволяют изменять количество слов и фрагментах, количество слов перекрытия.

Double Content Finder - небольшая программа проверки текста на уникальность.

CopyCatch Gold (http://www.copycatchgold.com) [48]. CopyCatch Gold была разработана программистом британской фирмы CFL Software Дэвидом Вулсом. В этой программе контролю прежде всего подвергается сам текст. Программа анализирует длину предложений, частоту использованных слов разного типа, частоту употребления придаточных предложений и пытается найти стилистические сбои. CopyCatch Gold -- это программа, а не сервис. Работает она с большинством популярных форматов и обеспечивает высокую степень точности при поиске материалов с общими разделами. Программа существует в двух модификациях: CopyChecker -- средство самоконтроля студентов и CopyCatch Investigator -- инструмент для издательского бизнеса. CopyChecker служит для защиты от непреднамеренного плагиата. Программа позволяет проверить текст и подсказывает, как избежать плагиата (рисунок 9).

Рисунок 9 Интерфейс CopyChecker

CopyCatch Investigator предназначена для поиска плагиата в издательском бизнесе. Она сравнивает новую работу автора с его предыдущими публикациями, а также осуществляет контроль дублирования внешних публикаций.

5 ОПИСАНИЕ ИСПОЛЬЗУЕМЫХ МЕТОДОВ ПОИСКА ПЛАГИАТА В ИСХОДНЫХ КОДАХ И ПРОИЗВОЛЬНЫХ ТЕКСТАХ

5.1 Общая схема поиска

Основная идея поиска плагиата в работе - это использование взаимодополняющих методов поиска, применяемых как к произвольным текстам, так и только для исходных кодов.

5.1.1 Cхема поиска для исходных кодов

Процесс выделения основных характеристик - это введение представления, то есть из модели, с большим количеством избыточной информации, переходим в более компактную модель, где незначимая информация удалена (нормализация). Обычно в процессе нормализации все слова разделяются только одним пробелом, и все буквы приводятся к единому регистру (см. пример 1).

Выбирая разные представления, выбираются характеристики, которые для данного случая являются основными и оставляют их. После этого вводим функцию близости (метрику), чтобы определить, какие характеристики из оставшихся являются более, а какие менее значимы. То, какие характеристики являются основными - это вопрос подхода, вопрос понимания плагиата. Метрики должны представлять такие характеристики, которые достаточно трудно изменить, пытаясь замаскировать копию. Должны быть устойчивы к незначительным изменениям исходного кода. Должно быть возможно просто сравнивать, используя эти метрики. И должны быть достаточно общими (чтобы быть применимыми к достаточно широкому ряду языков программирования).

5.1.2 Основной структурный метод для анализа исходных кодов

Если представить две программы в виде строк токенов, то одним из критериев сходства строк считается длина их наибольшей общей последовательности. Сравнение проводится следующим образом. Первый оператор одной последовательности токенов (из базы сданных работ) сравнивается с последним оператором другой последовательности (проверяемого кода). Если операторы одинаковы, то счетчик совпадений увеличивается на единицу. Далее первая последовательность сдвигается и снова происходит поэлементное сравнение (рисунок 10).

Рисунок 10 Первый этап поиска одинаковой последовательности операторов

Этот процесс продолжается до тех пор, пока не будет сравнен первый оператор второй последовательности с последним оператором первой (рисунок 11).

Рисунок 11 Второй этап поиска одинаковой последовательности операторов

Для каждой итерации запоминается счетчик совпадений и длина непрерывного участка совпавших операторов, другими словами длина списанного фрагмента кода программы.

Полученная информация изображается в виде гистограммы для каждого файла в базе сданных работ, на абсциссе которой откладывается величина смещения одной последовательности операторов относительно другой, а на ординате - количество совпадений операторов при таком смещении (рисунок 12).

Рисунок 12 Гистограмма результатов поиска одинаковой последовательности операторов

Пик, наблюдаемый на рисунке, возник из-за того, что в этих программах встречаются одинаковые фрагменты. Для «основных» пиков на графике выводится на экран код проверяемой программы и уже сданной работы из базы с выделенными фрагментами, соответствующими пику. Признать такое заимствование плагиатом или нет, решает преподаватель, основываясь на величине фрагмента, его роли в программе, схожести стиля программирования.

5.1.2.1 Достоинства и недостатки

Основными достоинствами является большая устойчивость алгоритма к самым распространенным среди студентов способам сокрытия плагиата - добавлению комментариев, переименование переменных, процедур и функций, добавлению/удалению некоторых операторов. Другим важным достоинством данного метода является возможность применения данного метода к очень широкому кругу языков программирования, ведь метод рассматривает программу только как последовательность номеров операторов в базе языка программирования. Так же применение именно этого метода позволяет восстанавливать совпадающие участки кода исследуемых программ, что дает возможность преподавателю убедиться в том, что работа списана.

Недостатки - возможность совпадения токенизированного представления программ, но отсутствия совпадения в исходных кодах программ, правда, вероятность этого крайне мала. Второй недостаток - нелинейная зависимость времени обработки, от длины программы, однако программа предназначена для анализа студенческих работ, которые редко бывают большого объема.

5.1.3 Дополнительный атрибутный метод для исходных текстов

В связи с тем, что некоторые лабораторные классы нашего института не могут похвастаться высокопроизводительными персональными компьютерами, было принято решение добавить менее требовательный к ресурсам метод.

Как и в первом методе, программы представляются в виде строк токенов. Далее анализируются частоты появления операторов программе. Частота определяется как количество появлений конкретного оператора, деленное на количество появлений всех операторов. Частоты отображаются в виде гистограммы. На абсциссе отложены порядковые номера операторов, а на ординате - частоты появлений этих операторов (рисунок 13). Идея такого способа идентификации плагиата опубликована в работе [10].

Рисунок 13 Диаграмма частотного анализа операторов

По такой гистограмме можно судить о количестве циклов, условных операторов и арифметических операций в каждой из программ. Например, пики, наблюдаемые в районе 60-63 соответствуют арифметическим операторам “:=”, “+” и “-” соответственно. Очевидно, что в обоих кодах используется большое количество таких операторов и частоты их появления примерно равны.

При маскировке нелегально заимствованного фрагмента злоумышленник может изменить некоторые операторы и добавить новые, но в целом изменения, вероятно, будут малы, и ожидается, что распределение частот останется практически тем же. Конечно, близкие значения частот во фрагментах различных программ еще не являются доказательством факта заимствования, но зато дают повод это подозревать.

5.1.3.1 Достоинства и недостатки

Основными достоинствами метода является высокая скорость вычислений частот, что позволяет практически мгновенно в автоматическом режиме отобрать «подозрительные» работы, а затем в режиме один против одного проверить их с помощью основного структурного метода. Возможность сравнения количества определенных операторов, например операторов присваивания.

Недостатки - возможность совпадения токенизированного представления программ, но отсутствия совпадения в исходных кодах программ. Второй недостаток - небольшая устойчивость алгоритма к изменениям операторов в небольших текстах программ.

5.2.1 Cхема поиска для произвольных текстов (в том числе и программ)

Для анализа заимствованных фрагментов в исходных кодах программ предлагается использовать методы шинглов и дистанции Левенштейна и Дамерау для анализа произвольных текстов, и в том числе программ. Пользователь может выбрать либо произвольный текст, либо загрузить исходный текст программ из базы данных. После этого могут применяться методы сравнения текстов на наличие одинаковых фрагментов (метод нахождения дистанции Левенштейна и наибольшей общей подпоследовательности (longest common subsequence, LCS) либо вычисление «похожести» текстов в процентах с помощью метода шинглов. Модуль, в котором реализована эта схема, рассмотрен в главе 8.

6 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ МОДУЛЯ ПОИСКА ПЛАГИАТА МЕТОДАМИ АНАЛИЗА ИСХОДНЫХ КОДОВ ПРОГРАММ

6.1 Интерфейс модуля поиска плагиата в исходных кодах программ

6.1.1 Главное окно модуля поиска плагиата методами анализа исходных кодов

Программа реализована на языке программирования - Delphi. В верхней части диалогового окна (рисунок 14) находятся кнопки для вызова функций добавления файла в базу, добавления языка в базу, удаления из базы файла/языка и компонент для выбора текущего языка.

Рисунок 14 Главное окно модуля поиска плагиата в исходных кодах программ

В средней части окна находятся кнопки основных функций для анализа кода программ. Кнопка «Частотный анализ» позволяет сравнить частоты появления операторов двух выбранных файлов (слева анализируемый файл, справа - выбранный файл из базы). Ниже расположена кнопка «Авто» для режима один против всех (сравнение файла, выбранного слева со всеми файлами в базе). Кнопки (появляются после выбора режима «Авто») «<<» и «>>» позволяют осуществлять навигацию по файлам в базе, выстроенным по возрастанию вероятности плагиата. Стоит напомнить, что тексты программ, написанные одним м тем же автором, даже при полном совпадении не считаются плагиатом, поэтому в автоматическом режиме поиска все работы автора выбранного текста программы, принудительно получают значение вероятности плагиата 1%, чтобы облегчить работу преподавателя. В любом из режимов можно просмотреть информацию о выбранных файлах, нажав соответствующую кнопку.

Кнопка «Анализ посл. опер.» позволяет выполнить анализ совпадений последовательностей операторов выбранных текстов программ. Если отмечено «Только непрерывн. посл.», то производится анализ только максимальной последовательности операторов, иначе учитываются все, в том числе и случайные совпадения этих последовательностей. Кнопка «Просчитать все пики» позволяет переходить от максимальной последовательности совпадений к любой другой, вывести соответствующие ей участки программ и сохранить отчет. Так же как и для частотного анализа, для анализа последовательности операторов предусмотрен автоматический режим.

В процесс доработки модуля была добавлена важная возможность: после выполнения анализа последовательности операторов показывается красным цветом наиболее длинный совпадающий участок исходного кода (рисунок 14).

Результаты анализа кода программы выводится в виде графика на стандартном компоненте Chart (для частотного анализа на двух) и относительная оценка вероятности плагиата на компонент ProgressBar.

Для целей диплома бакалавра были добавлены кнопки «Сводный анализ», «Итоговый отчет» и «Групповые режимы анализа». При нажатии кнопки «Групповые режимы анализа» открывается соответствующее новое окно (рисунок 15).

6.1.2 Окно групповых режимов анализа

Окно групповых режимов анализа (рисунок 15) используется при выполнении анализа одного файла сразу с несколькими файлами (группой при пакетном режиме) или всех файлов со всеми файлами (при полном анализе). Выделено четыре подраздела в этом окне:

· «Выполнить» для осуществления операций анализа

· «Показать» для показа отчетов и анализа результатов

· «Служебные действия» для выполнения вспомогательных операций удаления отчетов

· «Настроить критерии плагиата» для задания пороговых значений методов, при превышении которых выносится заключение о возможности плагиата

Рисунок 15 Окно групповых режимов анализа

6.2 Взаимодействие модуля поиска плагиата методами анализа исходных кодов

6.2.1 Взаимодействие модуля с архивом работ и базой языков (добавление файла в базу)

Взаимодействие модуля с архивом работ и базой языков (добавление файла в базу) показано на рисунке 16.

1) Копирование исследуемого кода в архив работ студентов.

2) Создание файла описания исследуемого файла.

3) Добавление имени файла в список файлов этого языка.

4) Нормализация исследуемого кода.

5) Составление файла последовательности операторов исследуемой работы из нормализованного кода по базе операторов языка.

Рисунок 16 Взаимодействие модуля с архивом работ и базой языков

6.2.2 Взаимодействие модуля с архивом работ и базой языков (частотный анализ, автоматический частотный анализ)

Взаимодействие программы с архивом работ и базой языков (частотный анализ, автоматический частотный анализ) показано на рисунке 17:

1) По файлу операторов исследуемой работы составление последовательности частот появления операторов.

2) Для всех файлов данного языка, кроме работ этого же автора, вычисление частот появления операторов и их сравнение.

3) Составление временного файла результатов сравнения частот появления операторов.

4) По запросам преподавателя восстановление исходных кодов для файлов с максимальным процентом совпадения частот появления операторов.

Рисунок 17 Взаимодействие модуля с архивом работ и базой языков

6.2.3 Взаимодействие модуля с архивом работ и базой языков (автоматический анализ последовательностей операторов)

1) По файлам операторов для всех файлов данного языка, кроме работ автора исследуемой работы, вычисление максимальной длины последовательности совпадающих операторов.

2) Составление временного файла, содержащего проценты отношений максимальной длины совпадений к количеству операторов исследуемого файла.

3) По запросам преподавателя восстановление исходных кодов файлов по полученному временному файлу.

6.2.4. Взаимодействие модуля с архивом работ и базой языков (анализ последовательностей операторов, просчет всех пиков)

1) По файлам операторов двух выбранных файлов данного языка, вычисление последовательностей совпадающих операторов и запись их в файл цепочек совпавших операторов.

2) Сортировка строчек в этом файле в порядке убывания.

3) По запросам преподавателя восстановление исходных кодов файлов с выделением строк, соответствующих пикам (цепочкам совпадений), по полученному временному файлу.

4) Создание отчета и сохранение его в файл.

6.2.5 Взаимодействие модуля с архивом работ и базой языков (удаление файла/языка из базы)

1) Если выбран файл для удаления, то из базы работ удаляется сам файл с исходным кодом, файл описания, файл последовательности операторов, а списка файлов этого языка удаляется его имя.

2) При удалении языка из базы, по списку файлов этого языка удаляются все файлы, файлы с их описанием и последовательностью операторов.

3) Удаляется файл операторов этого языка, список файлов и из файла известных языков стирается имя этого файла.

6.2.6 Взаимодействие модуля с базой языков (добавление языка в базу)

Взаимодействие модуля с базой языков (добавление языка в базу) показано на рисунке 18:

1) Нормализация файла с операторами языка.

2) Занесение списка операторов в базу языков программирования.

3) Создание файла для списка файлов этого языка.

4) Добавление названия нового языка в файл известных языков.

Рисунок 18 Взаимодействие модуля с базой языков

6.2.7 Пакетный режим анализа (1->n)

При пакетном режиме анализа (режим сравнения программ 1->n) - режим, при котором текст одной из программ (в левом окне) автоматически (без участия пользователя) сравнивается двумя методами (частотным анализом и анализом последовательности операторов) с каждой из программ в списке (файле Batch.txt) и последующей автоматической записью этого сравнения в сводный отчет.

6.2.8 Полный анализ (n->n)

При полном анализе (режим сравнения n->n) - режим, при котором текст каждой из программ в базе данных (файле списка файлов для данного языка, например, DelphiF.txt) сравнивается двумя методами (частотным анализом и анализом последовательности операторов) с каждой из программ в базе данных (файле списка файлов для данного языка, например, DelphiF.txt) и последующей автоматической записью этого сравнения в итоговый отчет.

6.2.9 Поиск первоисточника и списка первоисточников

При наличии сводного отчета для файла, в котором есть подозрительные с точки зрения наличия плагиата файлы (то есть, обнаружены файлы с похожим кодом) правомерно поставить вопрос о том, кто у кого списывал. Для решения этой задачи и введена возможность поиска первоисточника - исходного текста, с которого предположительно списывались другие программы.

6.2.10 Некоторые особенности модуля

Как было описано выше, при добавлении нового текста программы в базу, для него создается сразу три файла: непосредственно копия оригинала, файл последовательности операторов (из которого образуется впоследствии строка токенов) и файл описания. Важно заметить, что файл описания (см. пример 3) является одним из ключевых, в нем храниться информация о языке программирования, на котором написан код, теме, учебной группе, фамилии автора, о пути к оригиналу файла и дате его последних изменений. При заполнении этих полей, следует обратить особое внимание на правильность фамилии автора, для исключения поиска плагиата среди работ одного и того же студента. Дата и время последних изменений в файле позволит предположить, кто является плагиатором.

Для повышения надежности и скорости работы программы на медленных ПК, следует исключать из добавляемых файлов стандартные части, свойственные данному языку программирования, а так же из базы операторов языка программирования те оператоы, которые обычно используются в качестве разделителей (например, в C++ обычно разделяют текст программы с помощью «////////////////////////»).

6.3 Описание отчетов по анализу плагиата

6.3.1 Критерии автоматического заключения о наличии плагиата при пакетном и полном анализе

Ввиду того, что при пакетном и полном анализе человек не включен в процесс принятия решения о наличии плагиата, предложены следующие эмпирические критерии:

1. Для частотного анализа сравнивается число типов операторов в двух файлах. Вычисляются два числа: число типов операторов, которые по частоте вхождения полностью совпали, и число типов операторов, разница в частоте вхождения которых отличается не более, чем на 1%. Второе число введено для того, чтобы иметь возможность учитывать практически идентичные, но не полностью совпадающие частоты вхождения типов операторов. Вывод о наличии плагиата по частоте операторов делается в том случае, если хотя бы для одного из сравниваемых файлов процент одинаковых со вторым файлом типов операторов превосходит выбранное пользователем значение (по умолчанию 70%). Эта доля выбирается пользователем в окне групповых режимов анализа и может иметь следующие значения (в процентах): 30,40,50,60,70,80,90. Если эта доля не выбрана, то предполагается критерий - 70%. То есть устанавливается, что если в двух сравниваемых программах доля практически идентичных по количеству вхождений типов операторов превышает 70% от общего числа типов операторов в одной из программ, то делается вывод о наличии плагиата.

2. Для анализа последовательности совпавших типов операторов критерий заключения о наличии плагиата устанавливается исходя из доли длины совпавшей последовательности экземпляров операторов к числу экземпляров операторов в программе. Эта доля выбирается пользователем в окне групповых режимов анализа и может иметь следующие значения (в процентах): 10,20,30,40,50. Если эта доля не выбрана, то предполагается критерий - 50%. То есть устанавливается, что если в двух сравниваемых программах совпадающая последовательность экземпляров операторов превышает половину программы.

6.3.2 Алгоритм поиска первоисточника для файла или списка первоисточников при полном анализе

Алгоритм поиска такого файла достаточно прост. В сводном отчете просматриваются все файлы с признаками плагиата по обоим критериям (по частотному анализу и по анализу последовательности операторов) и ищется файл с наиболее ранней датой создания (с учетом времени суток). Если подозрительных файлов в сводном отчете нет, то сам изучаемый файл является первоисточником. Пример результата такого поиска показан на рисунке 19.

Рисунок 19 Окно результата поиска первоисточника для 1 файла

Аналогичным образом получается список первоисточников при полном анализе: просматриваются сводные отчеты для всех файлов (рисунок 20): в полученном отчете в каждой строке первое имя - изучаемый файл, второе имя - первоисточник. В списке для каждого из файлов полного анализа приведен соответствующий первоисточник.

Рисунок 20 Окно результата поиска первоисточников при полном анализе

6.3.3 Сводный отчет

Сводный отчет для каждого файла содержит подробную информацию о сравнении этого файла с другими файлами по обоим критериям анализа с детализацией года написания программ: один и тот же год, предыдущие годы или без учета года написания.

Сводный отчет (или сразу множество сводных отчетов) формируется тремя способами:

· Вручную в результате сравнения двух программ (1->1) двумя методами (частотным анализом и анализом последовательности операторов) и последующей записи этого сравнения в сводный отчет;

· Автоматически в результате применения пакетного режима сравнения программ (1->n), при котором текст одной из программ (в левом окне) сравнивается двумя методами (частотным анализом и анализом последовательности операторов) с каждой из программ в списке (файле Batch.txt) и последующей автоматической записью этого сравнения в сводный отчет;

· Автоматически в результате применения режима полного анализа программ (n->n), при котором текст каждой из программ (в файле списка файлов для данного языка, например, DelphiF.txt) сравнивается двумя методами (частотным анализом и анализом последовательности операторов) с каждой из программ в списке (файле списка файлов для данного языка, например, DelphiF.txt) и последующей автоматической записью этого сравнения в сводный отчет.

Сводный отчет имеет следующую структуру:

ПОЛНОЕ ИМЯ ФАЙЛА и ГОД ЕГО НАПИСАНИЯ

КРИТЕРИИ ПЛАГИАТА:

Доля длины (в %) совпавшей последовательности операторов ко всей длине программы -> <значение>%

% практически идентичных типов операторов при частотном анализе -> <значение>%

<список файлов с детализацией >

КОЛИЧЕСТВО СОПОСТАВЛЕНЫХ ФАЙЛОВ =

ПОДОЗРИТЕЛЬНЫЕ ФАЙЛЫ:

<список файлов >

ФАЙЛЫ БЕЗ УЧЕТА ГОДОВ:

ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО ЧАСТОТЕ =

ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО СОВПАДЕНИЮ =

ВСЕГО ПОДОЗРЕНИЙ ОДНОВРЕМЕННО ПО ОБОИМ КРИТЕРИЯМ ПЛАГИАТА =

ОДИНАКОВЫЙ ГОД:

ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО ЧАСТОТЕ =

ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО СОВПАДЕНИЮ =

ВСЕГО ПОДОЗРЕНИЙ ОДНОВРЕМЕННО ПО ОБОИМ КРИТЕРИЯМ ПЛАГИАТА =

ПЛАГИАТ ВЗЯТ ИЗ ПРЕДЫДУЩИХ ГОДОВ:

ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО ЧАСТОТЕ =

ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО СОВПАДЕНИЮ =

ВСЕГО ПОДОЗРЕНИЙ ОДНОВРЕМЕННО ПО ОБОИМ КРИТЕРИЯМ ПЛАГИАТА =

Данные в сводном отчете структурированы следующим образом:

1. Полный детализированный список файлов (<список файлов с детализацией >), с которыми выполнялось сравнение.

2. ПОДОЗРИТЕЛЬНЫЕ ФАЙЛЫ. В этом разделе приводится список файлов (<список файлов с детализацией подозрения на плагиат>), в которых обнаружена возможность плагиата.

3. БЕЗ УЧЕТА ГОДОВ. Резюме по подозрительным файлам без учета годов из написания.

4. ОДИНАКОВЫЙ ГОД. Резюме по подозрительным файлам, которые написаны в один год. Проверяется возможность плагиата на одном году обучения.

5. ПЛАГИАТ ВЗЯТ ИЗ ПРЕДЫДУЩИХ ГОДОВ. Резюме по подозрительным файлам, которые написаны в предыдущие годы по сравнению с годом написания исследуемой программы. Проверяется возможность плагиата, при котором студенты воспользовались трудами предыдущих курсов обучения.

Каждая строка <Список файлов с детализацией> имеет структуру, в которой сведены сведении по результатам частотного анализа и анализа последовательности операторов.

Сведения по результатам частотного анализа:

· Имя файла, год написания

· Группа. Если поле не заполнено, то пишется 'ГРПНЗВСТ '

· Автор. Если поле не заполнено, то пишется 'АВТОРНЗВСТ '

· Число экземпляров операторов в 1 файле

· Число экземпляров операторов во 2 файле

· Число типов операторов в 1 файле

· Число типов операторов в 2 файле

· Число типов операторов с равной долей вхождений в обоих файлах

· % типов операторов совпадают для 1 файла

· % типов операторов совпадают для 2 файла

· Число типов операторов с равной долей вхождений в обоих файлах

· % типов операторов удовлетворяют условию (разница в доле <1%) для 1 файла

· % типов операторов удовлетворяют условию (разница в доле <1%) для 2 файла

· Признак того, что плагиат есть (1) или нет (0) по критерию частоты операторов

Сведения по результатам анализа последовательности операторов:

· Имя файла, год написания

· Группа. Если поле не заполнено, то пишется 'ГРПНЗВСТ '

· Автор. Если поле не заполнено, то пишется 'АВТОРНЗВСТ '

· Число экземпляров операторов в 1 файле

· Число экземпляров операторов во 2 файле

· Длина максимального совпадения последовательных экземпляров операторов в файлах

· Процент от числа всех экземпляров операторов в 1 файле

· Процент от числа всех экземпляров операторов в 2 файле

· Признак того, что плагиат есть (1) или нет (0) по критерию анализа последовательности операторов

Фрагмент сводного отчета по реальной базе данных работ студентов:

СВОДНЫЙ ОТЧЕТ ПО ФАЙЛУ Arh\Unit1.pas-39.txt ГОД 2007

КРИТЕРИИ ПЛАГИАТА:

Доля длины (в %) совпавшей последовательности операторов ко всей длине программы -> 50% (по умолчанию)

% практически идентичных типов операторов при частотном анализе -> 70% (по умолчанию)

Arh\Unit2.pas-202.txt 2004 _ВВ-5-00 Комодин 405 19 34 13 0 0,00 0,00 0 2,94 7,69 0 Arh\Unit2.pas-202.txt 2004 _ВВ-5-00 Комодин 405 19 8 1,9753 42,1053 0

Arh\Kam_Lab_2004.pas-272.txt 2004 _ВВ-5-00 Комодин 405 99 34 23 0 0,00 0,00 0 14,71 21,74 0 Arh\Kam_Lab_2004.pas-272.txt 2004 _ВВ-5-00 Комодин 405 99 11 2,7160 11,1111 0

Arh\Unit1.pas-670.txt 2004 _ВВ-5-00 Капанин 405 218 34 29 0 0,00 0,00 0 23,53 27,59 0 Arh\Unit1.pas-670.txt 2004 _ВВ-5-00 Капанин 405 218 11 2,7160 5,0459 0

Arh\Kop_Lab_2004.pas-318.txt 2004 _ВВ-5-00 Капанин 405 126 34 26 0 0,00 0,00 0 23,53 30,77 0 Arh\Kop_Lab_2004.pas-318.txt 2004 _ВВ-5-00 Капанин 405 126 17 4,1975 13,4921 0

Arh\Unit1.pas-70.txt 2004 _ВВ-5-01 АВТОРНЗВСТ 405 131 34 26 0 0,00 0,00 0 26,47 34,62 0 Arh\Unit1.pas-70.txt 2004 _ВВ-5-01 АВТОРНЗВСТ 405 131 11 2,7160 8,3969 0

Arh\Unit1.pas-840.txt 2004 ГРПНЗВСТ АВТОРНЗВСТ 405 218 34 29 0 0,00 0,00 0 23,53 27,59 0 Arh\Unit1.pas-840.txt 2004 ГРПНЗВСТ АВТОРНЗВСТ 405 218 11 2,7160 5,0459 0

Arh\Unit1.pas-59.txt 2004 _ВВ-5-01 АВТОРНЗВСТ 405 156 34 27 0 0,00 0,00 0 29,41 37,04 0 Arh\Unit1.pas-59.txt 2004 _ВВ-5-01 АВТОРНЗВСТ 405 156 13 3,2099 8,3333 0

Arh\Cezar.pas-287.txt 2004 _ВВ-61-00 Якушина 405 111 34 15 0 0,00 0,00 0 11,76 26,67 0 Arh\Cezar.pas-287.txt 2004 _ВВ-61-00 Якушина 405 111 5 1,2346 4,5045 0

КОЛИЧЕСТВО СОПОСТАВЛЕНЫХ ФАЙЛОВ = 282

ПОДОЗРИТЕЛЬНЫЕ ФАЙЛЫ:

Arh\Unit2.pas-670.txt 2007 ПЛАГИАТ_ПО_СОВПАДЕНИЮ

Arh\Unit3.pas-318.txt 2007 ПЛАГИАТ_ПО_СОВПАДЕНИЮ

Arh\Unit4.pas-161.txt 2007 ПЛАГИАТ_ПО_СОВПАДЕНИЮ

Arh\Unit5.pas-371.txt 2007 ПЛАГИАТ_ПО_СОВПАДЕНИЮ

Arh\Unit2.pas-327.txt 2007 ПЛАГИАТ_ПО_СОВПАДЕНИЮ

Arh\Unit3.pas-696.txt 2007 ПЛАГИАТ_ПО_СОВПАДЕНИЮ

Arh\Unit4.pas-843.txt 2007 ПЛАГИАТ_ПО_СОВПАДЕНИЮ

Arh\Unit5.pas-717.txt 2007 ПЛАГИАТ_ПО_СОВПАДЕНИЮ

Arh\Unit2.pas-246.txt 2007 ПЛАГИАТ_ПО_СОВПАДЕНИЮ

Arh\Unit3.pas-824.txt 2007 ПЛАГИАТ_ПО_СОВПАДЕНИЮ

Arh\Unit4.pas-278.txt 2007 ПЛАГИАТ_ПО_СОВПАДЕНИЮ

Arh\Unit5.pas-481.txt 2007 ПЛАГИАТ_ПО_СОВПАДЕНИЮ

Arh\Unit2.pas-680.txt 2004 ПЛАГИАТ_ПО_СОВПАДЕНИЮ

Arh\Unit1.pas-279.txt 2007 ПЛАГИАТ_ПО_ЧАСТОТЕ_ОПЕРАТОРОВ ПЛАГИАТ_ПО_СОВПАДЕНИЮ

Arh\Unit1.pas-805.txt 2007 ПЛАГИАТ_ПО_ЧАСТОТЕ_ОПЕРАТОРОВ

Arh\Unit1.pas-818.txt 2007 ПЛАГИАТ_ПО_ЧАСТОТЕ_ОПЕРАТОРОВ

Arh\Unit1.pas-141.txt 2007 ПЛАГИАТ_ПО_ЧАСТОТЕ_ОПЕРАТОРОВ ПЛАГИАТ_ПО_СОВПАДЕНИЮ

Arh\Unit1.pas-713.txt 2007 ПЛАГИАТ_ПО_ЧАСТОТЕ_ОПЕРАТОРОВ

Arh\Unit1.pas-979.txt 2007 ПЛАГИАТ_ПО_ЧАСТОТЕ_ОПЕРАТОРОВ

Arh\Unit1.pas-154.txt 2007 ПЛАГИАТ_ПО_ЧАСТОТЕ_ОПЕРАТОРОВ

БЕЗ УЧЕТА ГОДОВ:

ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО ЧАСТОТЕ = 12

ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО СОВПАДЕНИЮ = 16

ВСЕГО ПОДОЗРЕНИЙ ОДНОВРЕМЕННО ПО ОБОИМ КРИТЕРИЯМ ПЛАГИАТА = 3

ОДИНАКОВЫЙ ГОД:

ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО ЧАСТОТЕ = 9

ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО СОВПАДЕНИЮ = 15

ВСЕГО ПОДОЗРЕНИЙ ОДНОВРЕМЕННО ПО ОБОИМ КРИТЕРИЯМ ПЛАГИАТА = 3

ПЛАГИАТ ВЗЯТ ИЗ ПРЕДЫДУЩИХ ГОДОВ:

ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО ЧАСТОТЕ = 3

ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО СОВПАДЕНИЮ = 1

ВСЕГО ПОДОЗРЕНИЙ ОДНОВРЕМЕННО ПО ОБОИМ КРИТЕРИЯМ ПЛАГИАТА = 0

6.3.4 Итоговый отчет

Итоговый отчет формируется тремя способами:

· Вручную путем записи в любой момент времени резюме (одной строкой) по текущему сводному отчету для выбранного файла в итоговый отчет;

· Автоматически в результате применения пакетного режима (1->n) путем записи в итоговый отчет после окончания анализа всего пакета резюме (одной строкой) по полученному сводному отчету для выбранного файла;

· Автоматически в результате применения режима полного анализа программ (n->n), путем записи в итоговый отчет после окончания полного анализа для каждого из файлов резюме (одной строкой) по полученному сводному отчету.

Описание структуры итогового отчета:

Итоговый отчет содержит список обобщенных результатов сравнения каждого файла с другими файлами по обоим критериям анализа с детализацией года написания программ: один и тот же год, предыдущие годы или без учета года написания.

В итоговом отчете приводится список проанализированных файлов, для каждого из которых указывается:

· имя файла и год написания;

· число подозрительных файлов по частоте операторов по всем годам;

· число подозрительных файлов по совпадению операторов по всем годам;

· число подозрительных файлов по обоим критериям по всем годам;

(ЭТА ИНФОРМАЦИЯ ДЛЯ АНАЛИЗА ОБЩЕЙ КАРТИНЫ ПЛАГИАТА БЕЗ УЧЕТА ГОДОВ)

· число подозрительных файлов по частоте операторов по этому же году;

· число подозрительных файлов по совпадению операторов по этому же году;

· число подозрительных файлов по обоим критериям по этому же году;

(ЭТА ИНФОРМАЦИЯ ДЛЯ АНАЛИЗА КАРТИНЫ ПЛАГИАТА НА ОДНОМ ГОДУ ОБУЧЕНИЯ)

· число подозрительных файлов по частоте операторов по предыдущим годам;

· число подозрительных файлов по совпадению операторов по предыдущим годам;

· число подозрительных файлов по обоим критериям по предыдущим годам;

(ЭТА ИНФОРМАЦИЯ ДЛЯ АНАЛИЗА КАРТИНЫ ПЛАГИАТА, КОГДА СПИСЫВАЮТ С ПРЕДЫДУЩИХ ЛЕТ)

· суммарное число файлов, с которыми выполнялось сравнение.

КОЛИЧЕСТВО ИССЛЕДОВАННЫХ ФАЙЛОВ =

Приводится список файлов с плагиатом, взятым из предыдущих лет обучения:

КОЛИЧЕСТВО ФАЙЛОВ с плагиатом, взятым из предыдущих лет обучения:=

Приводится список файлов с плагиатом, на одном году обучения:

КОЛИЧЕСТВО ФАЙЛОВ с плагиатом на одном году обучения:=

Фрагмент итогового отчета по реальной базе данных работ студентов:

ИТОГОВЫЙ ОТЧЕТ

КРИТЕРИИ ПЛАГИАТА:

Доля длины (в %) совпавшей последовательности операторов ко всей длине программы -> 50% (по умолчанию)

% практически идентичных типов операторов при частотном анализе -> 70% (по умолчанию)

Arh\Unit2.pas-202.txt 2004 1 37 1 1 8 1 0 1 0 282

Arh\Kam_Lab_2004.pas-272.txt 2004 3 1 1 3 1 1 0 0 0 282

Arh\Unit1.pas-670.txt 2004 2 1 1 2 1 1 0 0 0 282

Arh\Kop_Lab_2004.pas-318.txt 2004 3 14 1 3 2 1 0 0 0 282

Arh\Unit1.pas-70.txt 2004 2 0 0 1 0 0 0 0 0 282

Arh\Unit1.pas-840.txt 2004 2 1 1 2 1 1 0 0 0 282

Arh\Unit1.pas-154.txt 2007 18 13 0 14 12 0 3 1 0 282

Arh\Unit1.pas-39.txt 2007 12 16 3 9 15 3 3 1 0 282

КОЛИЧЕСТВО ИССЛЕДОВАННЫХ ФАЙЛОВ = 283

==============================

Список файлов с явным подозрением на плагиат:

файлы, в которых есть заимствованный код из предыдущих лет

Arh\Unit2.pas-202.txt 2004 1 37 1 1 8 1 0 1 0 282

Arh\Unit1.pas-140.txt 2007 5 0 0 4 0 0 1 0 0 282

Arh\Unit1.pas-143.txt 2007 19 6 6 12 5 5 1 0 0 282

Arh\Unit2.pas-31.txt 2006 0 6 0 0 0 0 0 3 0 282

Arh\ZUnit1.pas-0.txt 2011 5 2 2 3 2 2 2 0 0 282

Arh\ZUnit1.pas-4.txt 2011 6 0 0 3 0 0 3 0 0 282

Arh\ZUnit1.pas-6.txt 2011 2 0 0 0 0 0 2 0 0 282

Arh\ZUnit1.pas-8.txt 2011 0 13 0 0 0 0 0 13 0 282

Arh\Unit1.pas-773.txt 2008 22 7 1 4 1 1 17 6 0 282

Arh\zki6RSA.pas-329.txt 2005 1 13 0 1 0 0 0 1 0 282

….

Arh\Unit1.pas-979.txt 2007 16 13 0 14 12 0 0 1 0 282

Arh\Unit1.pas-154.txt 2007 18 13 0 14 12 0 3 1 0 282

Arh\Unit1.pas-39.txt 2007 12 16 3 9 15 3 3 1 0 282

КОЛИЧЕСТВО ФАЙЛОВ С ПЛАГИАТОМ ИЗ ПРЕДЫДУЩИХ ЛЕТ = 168

==============================

Список файлов с подозрением на плагиат, но с неизветным авторством

файлы, в которых есть заимствованный код на одном году обучения

В данном случае нельзя достоверно определить, кто писал сам, а кто списывал.

Arh\Unit2.pas-202.txt 2004 1 37 1 1 8 1 0 1 0 282

Arh\Kam_Lab_2004.pas-272.txt 2004 3 1 1 3 1 1 0 0 0 282

Arh\Unit1.pas-670.txt 2004 2 1 1 2 1 1 0 0 0 282

Arh\Kop_Lab_2004.pas-318.txt 2004 3 14 1 3 2 1 0 0 0 282

Arh\Unit1.pas-70.txt 2004 2 0 0 1 0 0 0 0 0 282

Arh\Unit1.pas-840.txt 2004 2 1 1 2 1 1 0 0 0 282

...

Arh\Unit1.pas-879.txt 2007 10 14 1 8 13 1 2 1 0 282

Arh\Unit1.pas-713.txt 2007 13 14 1 9 13 1 2 1 0 282

Arh\Unit1.pas-438.txt 2007 5 14 1 5 13 1 0 1 0 282

Arh\Unit1.pas-979.txt 2007 16 13 0 14 12 0 0 1 0 282

Arh\Unit1.pas-154.txt 2007 18 13 0 14 12 0 3 1 0 282

Arh\Unit1.pas-39.txt 2007 12 16 3 9 15 3 3 1 0 282

КОЛИЧЕСТВО ФАЙЛОВ С ПЛАГИАТОМ НА ОДНОМ ГОДУ ОБУЧЕНИЯ = 236

6.3.5 Экспорт итогового протокола в Excel

В таблице 2 (получена после экспорта в Excel) приведены данные в абсолютных величинах (верхняя часть) и в относительных величинах (в нижней части). Абсолютные величины - это число работ студентов в данном году с определенным признаком. Относительные величины приводятся в процентах к числу работ студентов в данном году.

Пояснение к названиям столбцов:

· С - ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО ЧАСТОТЕ ОПЕРАТОРОВ БЕЗ УЧЕТА ГОДОВ

· D - ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО СОВПАДЕНИЮ ПОСЛЕДОВАТЕЛЬНОСТИ ОПЕРАТОРОВ БЕЗ УЧЕТА ГОДОВ

· E - ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ОДНОВРЕМЕННО ПО ОБОИМ КРИТЕРИЯМ БЕЗ УЧЕТА ГОДОВ

· F - ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО ЧАСТОТЕ ОПЕРАТОРОВ В ОДНОМ И ТОМ ЖЕ ГОДУ

· G - ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО СОВПАДЕНИЮ ПОСЛЕДОВАТЕЛЬНОСТИ ОПЕРАТОРОВ В ОДНОМ И ТОМ ЖЕ ГОДУ

· H - ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ОДНОВРЕМЕННО ПО ОБОИМ КРИТЕРИЯМ В ОДНОМ И ТОМ ЖЕ ГОДУ

· I - ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО ЧАСТОТЕ ОПЕРАТОРОВ ПРИ СРАВНЕНИИ С ПРОГРАММАМИ ПРЕДЫДУЩИХ ЛЕТ

· J - ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ПО СОВПАДЕНИЮ ПОСЛЕДОВАТЕЛЬНОСТИ ОПЕРАТОРОВ ПРИ СРАВНЕНИИ С ПРОГРАММАМИ ПРЕДЫДУЩИХ ЛЕТ

· K - ВСЕГО ПОДОЗРЕНИЙ НА ПЛАГИАТ ОДНОВРЕМЕННО ПО ОБОИМ КРИТЕРИЯМ ПРИ СРАВНЕНИИ С ПРОГРАММАМИ ПРЕДЫДУЩИХ ЛЕТ

Таблица 2 Таблица обработки базы данных, структурированных по годам и признакам плагиата

Код

Кол-во

C

D

E

F

G

H

I

J

K

2002

1

1

1

0

0

0

0

0

0

0

2004

69

54

50

27

46

50

25

0

3

0

2005

41

38

30

16

33

10

10

11

17

0

2006

11

9

7

3

4

2

2

9

5

1

2007

100

98

93

85

96

91

82

71

76

21

2008

37

36

22

18

31

14

13

25

11

4

2009

4

4

1

1

0

0

0

4

1

1

2010

3

3

0

0

0

0

0

3

0

0

2011

17

12

9

3

9

5

3

9

6

0

Отношение

100,00%

100,00%

0,00%

0,00%

0,00%

0,00%

0,00%

0,00%

0,00%

78,26%

72,46%

39,13%

66,67%

72,46%

36,23%

0,00%

4,35%

0,00%

92,68%

73,17%

39,02%

80,49%

24,39%

24,39%

26,83%

41,46%

0,00%

81,82%

63,64%

27,27%

36,36%


Подобные документы

  • Разработка системы по поиску плагиата среди работ студентов. Получение оценочной информации о работе и коэффициенте плагиата. Повышение эффективности оценивания работы студента. Информационное обеспечение системы. Выбор устройства управления данными.

    курсовая работа [893,9 K], добавлен 23.04.2014

  • Разработка алгоритма фильтрации данных, полученных с систем спутниковой навигации с помощью GNSS-модуля. Анализ работы фильтра Калмана, его программная реализация под конкретную задачу. Выбор навигационных модулей для получения данных позиционирования.

    дипломная работа [3,6 M], добавлен 12.01.2016

  • Реализация комплекса программ поиска подстроки в тексте алгоритмом прямого поиска и алгоритмом Кнута-Морриса-Пратта. Сравнительный анализ теоретических и экспериментальных оценок эффективности алгоритмов. Разработка структуры программы, ее листинг.

    курсовая работа [2,8 M], добавлен 22.01.2015

  • Обоснование выбора метода извлечения ключевых слов. Анализ предметной области, проектирование информационной системы поиска релевантных документов. Реализация запросов к электронным библиотекам. Реализация интерфейса системы поиска релевантных документов.

    дипломная работа [1,1 M], добавлен 21.09.2016

  • Составление и программная реализация в среде Borland Delphi 7.0 алгоритмов итерационного и рекурсивного вариантов решения задачи поиска с возвращением. Исследование асимптотической временной сложности решения в зависимости от количества ячеек на плате.

    курсовая работа [57,5 K], добавлен 25.06.2013

  • Описание ДСМ-метода автоматического порождения гипотез. Исследование результатов влияния компонентов ДСМ-метода на качество определения тональности текстов. Алгоритм поиска пересечений. N-кратный скользящий контроль. Программная реализация ДСМ-метода.

    курсовая работа [727,0 K], добавлен 12.01.2014

  • Исследование основных концепций информационного поиска: булева и векторная модели, индексные термины. Реализация векторной модели в среде Matlab, расчет ранжированных списков документов, реализация оценок качества поиска и листинг программы в Matlab.

    отчет по практике [444,8 K], добавлен 17.06.2012

  • Разработка алгоритма реализации на ЭВМ процесса поиска кратчайшего пути в графе методом Дейкстры. Программная реализация алгоритма поиска кратчайшего пути между двумя любыми вершинами графа. Проверка работоспособности программы на тестовых примерах.

    реферат [929,8 K], добавлен 23.09.2013

  • Нахождение стационарной точки. Расчет безусловного экстремума функции методами прямого поиска. Графическое пояснение метода равномерного симплекса. Метод поиска Хука-Дживса. Метод сопряженных направлений Пауэлла. Разработка программного модуля расчетов.

    курсовая работа [1,4 M], добавлен 16.09.2012

  • Организация данных с помощью бинарных деревьев. Определение бинарного дерева. Упорядоченное двоичное дерево поиска и его свойства. Программная реализация добавления данных в упорядоченное двоичное дерево с использованием динамических структур данных.

    курсовая работа [459,0 K], добавлен 09.08.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.