bigpo.ru
добавить свой файл
1
УДК 004.415.2.031.42:376.146] (062)


О.В. КОНЮХОВА

O.V. KONYUHOVA


ИНФОРМАЦИОННАЯ СИСТЕМА ДЛЯ ПОИСКА ПЛАГИАТА В

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

THE INFORMATION SYSTEM TO PLAGIARISM DETECTION IN PROGRAMMING CODES IN STUDENTS WRITTEN WORKS


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

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


In this paper there is little description of information technologies to plagiarism detect in varios texts, of programming codes characteristics as special kind of text, of approaches to plagiarism detect in programming codes. In addition is considered basic parametres of existing programming code plagiarism detectors, features of plagiarism detection in programming codes in students written works. Then is proposed common structure of plagiarism detection information system in students programms.

Keywords and Phrases: plagiarism in education, plagiarism in programming code, plagiarism detector, programming code in students written works, systems of automatic plagiarism detection, plagiarism detection information system.


ВВЕДЕНИЕ

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


^ 1 ПЛАГИАТ В ОБРАЗОВАНИИ

Особое место занимает проблема плагиата в сфере высшего образования, которая, согласно /2/, заключается не только в незаконном присвоении авторских произведений, но и подрыве самой сути образовательного процесса. Обучение – это двухсторонний процесс, в котором, с одной стороны, студент усваивает знания, а с другой – преподаватель эти знания оценивает. Получив готовую работу (реферат, курсовую, диплом) независимо от источника (Интернет, сокурсники, третьи лица), студент не усваивает ничего нового, не учится думать самостоятельно. А преподаватель в этом случае лишается возможности объективно оценить уровень знания такого студента.

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

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

1) специальные программные приложения, позволяющие сравнивать проверяемую работу с собственным архивом, с файлом на диске, с введенным текстом (например, Etxt Антиплагиат /3/, Double Content Finder /4/, Детектор Плагиата /5/ и др.);

2) поисковые машины Яndex (www.yandex.ru), Google (www.google.ru) и др., позволяющие по отдельным фразам, набранным в строке запросов, поискать в сети Интернет возможные источники копирования работы;

3) Интернет - сервисы, позволяющие в режиме on-line достаточно быстро и, в большинстве случаев бесплатно, проверить сданный студентом материал (например, проект Антиплагиат (www.antiplagiat.ru)). Ряд российских вузов, например, Высшая школа экономики (ГУ-ВШЭ), МГУ им. М.В. Ломоносова, совместно с проектом www.antiplagiat.ru внедряют дополнительные пакеты, соответствующие профилю этих учебных заведений, и все письменные работы студентов проходят проверку на наличие плагиата.

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

Краткому описанию детекторов плагиата и методик, лежащих в их основе, посвящена следующая часть статьи.


^ 2 ДЕТЕКТОРЫ ПЛАГИАТА

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

Согласно /1/, в исходном тексте сохраняется больше характеристик, свойственных конкретному автору (наименование переменных, стиль написания текста, лингвистические особенности комментариев, количество разных типов данных и др.), которые при компиляции, в основном, утрачиваются. Но и в исполняемом коде хранится много индивидуальной информации: способ организации данных, информация об использованном компиляторе, системные вызовы, специфические ошибки и т.д. В промежуточном и исполняемом кодах основное внимание уделяется логике управления и выполнения программы.

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

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

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

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

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

1) SIM (Software Similarity Tester) – детектор с открытым кодом, разработанный Диком Грюном (Dick Grune). Работа детектора SIM основывается на алгоритме поиска по матрице совпадений подстрок; используется представление программного кода в виде токенов. SIM поддерживает такие языки программирования как Си, Ява, Паскаль, Модула-2, Миранда. Недостатком данного детектора является невозможность выявления плагиата, полученного путем перемещения блоков кода.

2) Plan-X – детектор с открытым кодом; разработан Кристой Фотель (Christa Fotel) и Ларсом Лэнжером (Lars Langer). Для поиска плагиата в детекторе используется утилита для работы с XML файлами – XML Store. Plan-X поддерживает только язык SML, что и является недостатком этого детектора.

3) JPlag – детектор, доступный в режиме он-лайн. Разработчиком является Guido Malpohl. В основе работы детектора лежит алгоритм жадного строкового замощения, что требует предварительной токенизации исходного программного кода. Jplag поддерживает следующие языки программирования: Си, Си++, Ским (Scheeme), Ява.

4) MOSS (Measure of Software Similarity) – детектор, доступный в сети Интернет в режиме он-лайн. Разработан в 1994 году Алексом Айкеном (Alex Aiken). Для поиска плагиата используется алгоритм просеивания для построения идентификационных меток. Поддерживает большое количество языков, в частности: Си, СИ++, Лисп, Хаскель, Паскаль, Пижон, Ассемблер и др.

5) SID (Software Integrity System) - доступный в режиме он–лайн детектор, разработан коллективом авторов: X. Chen, B. Francia и др. Основан на использовании Колмогоровской сложности, требует предварительной токенизации текста программы. Поддерживает языки Ява и Си++.

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


^ 3 ИНФОРМАЦИОННАЯ СИСТЕМА ПОИСКА ПЛАГИАТА В

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

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

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

Тогда обобщенную структуру системы автоматического поиска плагиата в программных кодах письменных работ студентов можно представить следующим образом (Рисунок 1). База программ содержит различные представления кодов программ (например, в виде файлов) студенческих письменных работ. Детекторы плагиата могут разрабатываться «с нуля» (на основе соответствующих алгоритмов) или применяться существующие, например, описанные в /1/. Преподаватель вносит в систему проверяемый программный код, который в обязательном порядке проходит проверку на наличие плагиата в исходном тексте. Если в базе программ имеются другие варианты представления проверяемого программного кода, то системой также выполняются соответствующие проверки. На выходе выдаются результаты, например, в виде процентного соотношения совпавших участков программного кода. При наличии в базе других программ того же автора, что и проверяемого программного кода, они учитываться при проверке не должны.

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



Рисунок 1 – Структура системы автоматического поиска плагиата


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

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

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

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

Исходя из сказанного, как отмечается в /2/, система поиска плагиата в программных кодах письменных работ студентов не может быть полностью автоматической. Она должна замыкаться на преподавателя как лицо принимающее решение (ЛПР). Кроме того, если результаты автоматической проверки вызывают у преподавателя (или студента) сомнения, должна быть предусмотрена возможность устного собеседования преподавателя со студентом по структуре и логике работы программы. Особенностью программного кода является то, что адекватное объяснение студентом структуры и логики работы программы возможно в случае, если он является автором этой программы, а, следовательно, понимает и может объяснить, что в ней написано.

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



Рисунок 2 – Структура информационной системы поиска плагиата


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


ЗАКЛЮЧЕНИЕ

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


^ СПИСОК ЛИТЕРАТУРЫ


1. Обзор автоматических детекторов плагиата в программах [Электронный ресурс].- Режим доступа: http://detector.spb.su/pub/Sandbox/ReviewAlgorithms/survey.pdf.- Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше.- Загл. с экрана.

2. Макаров В.В. Идентификация дублирования и плагиата в исходном тексте прикладных программ [Электронный ресурс]/ В.В. Макаров.- Режим доступа: http://lab18.ipu.rssi.ru/ projects/conf2006/1/%D0%92.%D0%92.%D0%9C%D0%B0%D0%BA% D0%B0%D1%80%D0% BE%D0%B2.htm.- Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше.- Загл. с экрана.

3. Etxt Антиплагиат. Программа проверки уникальности текста [Электронный ресурс].- Режим доступа: http://www.etxt.ru.- Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше.- Загл. с экрана.

4. Double Content Finder [Электронный ресурс].- Режим доступа: http://textbroker.ru/main/dcfinder.html.- Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше.- Загл. с экрана.

5. Детектор Плагиата [Электронный ресурс].- Режим доступа: http://www.detector-plagiata.ru.- Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше.- Загл. с экрана.

6. Иванчегло С. Методы выявления плагиата в программировании [Электронный ресурс]/ С. Иванчегло.- Режим доступа: http://www.kv.by/index2000491105.htm.- Систем. требования: P IV; 64 Мб ОЗУ; Windows 98 и выше; SVGA 32768 и более цветов; 640×480; мышь; IE 4.0 и выше.- Загл. с экрана.


Конюхова Оксана Владимировна

Государственный университет – учебно-научно-производственный комплекс, г. Орёл

Кандидат технических наук, доцент кафедры «Информационные системы»

Тел. (4862) 76-19-10

E-mail: oks1112@yandex.ru