Служба спасения студентов
Служба спасения для студентов (18+)

Автоматизированная система проверки программных кодов на языке python на наличие плагиата

Стоимость
2000 руб.
Содержание
Теория
Объем
97 лист.
Год написания

Описание работы

Работа пользователя Beskonechno
Добрый день! Уважаемые студенты, Вашему вниманию представляется дипломная работа на тему: «Автоматизированная система проверки программных кодов на языке python на наличие плагиата»
Оригинальность работы 95%

Аннотация
  • работе освещается создание системы для обнаружения заимствований в программном коде, написанном на языке программирования Python. Объектом исследования предстают коды программ, которые были созданы студентами третьего курса образовательных программ «Прикладная математика» и
«Компьютерная безопасность» в качестве заданий по дисциплинам «Компьютерный практикум» и «Язык программирования Python».
Были проанализированы ныне существующие системы антиплагиата для программного кода, рассмотрены методы для поиска заимствований в тексте/коде, в системе реализованы методы, признанные наиболее удачными для достижения поставленной цели. В реализованной системе учтены и устранены недостатки, обнаруженные в существующих системах. Автоматизированная система проверки программных кодов на языке Python на наличие плагиата реализована на языке Python, может использоваться преподавателем в рабочих целях для обнаружения кластера студентов, чьи работы схожи. Работы могут загружаться как из облачного хранилища, так и с локального носителя.
Abstract
This paper outlines a new approach to plagiarism detection between program codes performed in Python. The object of the study is a system for similarity detecting which combines different approaches of text and program analysis. The developed system was tested on programs created by third-year students of the educational programs “Applied Mathematics” and “Computer Security” as tasks in the disciplines “Computer Practicum” and “Python Programming Language”.
In this report there is an overview of existing anti-plagiarism systems for program code. Moreover, methods for finding similarities in texts/ program codes were considered. As a result, the most effective methods were chosen to be implemented in the developed system. Created system excludes most of disadvantages which were found during critical analysis of analogues. Plagiarism checking system is written in Python and can be used by a teacher for work purposes to find clusters of students whose codes with a certain probability are similar. Two import methods were realized: files can be downloaded both from cloud and local storage.

Оглавление
Аннотация..................................................................................................... 8
Abstract.......................................................................................................... 9
Введение..................................................................................................... 11
Постановка задачи и цель........................................................................... 16
Подходы к сравнению текстов и классификация методов поиска
заимствований в тексте/программном коде............................................... 18
Локальные и глобальные методы поиска заимствований......................... 23
Существующие системы для обнаружения плагиата в тексте/программном
коде............................................................................................................. 30
Задача принятия решения........................................................................... 39
Методы поиска плагиата, реализованные в системе.................................. 41
Описание разработанной автоматизированной системы........................... 45
Результаты.................................................................................................. 56
Личный вклад участников.......................................................................... 58
Заключение................................................................................................. 59
Список литературы..................................................................................... 60
А1. Описание применения.......................................................................... 66
А2. Руководство оператора........................................................................ 73
А3. Программа и методика испытаний...................................................... 82
А4. Руководство программиста................................................................. 90
 
Введение
  • настоящее время набирает обороты цифровизация пространства, которая подразумевает увеличение интеллектуальной собственности. Множество информации размещено на открытых ресурсах, где любой человек может ознакомиться с материалами.
Проблема поиска плагиата остро стоит в научных кругах, так как во всех рецензируемых изданиях перед опубликованием научных статей и тезисов проводится проверка текста группой рецензентов, текст проверяется на наличие заимствований, работы студентов в университетах так же проходят через системы обнаружения плагиата. Процедура проверки на плагиат производится для стимулирования выполнения работы самостоятельно, чтобы исследование проводилось качественно на основе оригинальных источников.
  • сфере образования все больше работ выполняется с использованием Интернета, так как книги, учебные пособия, научные статьи гораздо легче найти на электронных ресурсах, позволяющих изучить интересующую область, чтобы выполнить самостоятельное исследование. Однако есть те, кто готов присвоить себе чужие наработки, поэтому возникает нарушение авторских прав. Во время обучения школьникам необходимо писать эссе,
рефераты, студенты выполняют курсовые и лабораторные работы, содержащие как описательную часть, так и программный код, если студенты выполняют задания по техническим дисциплинам. Все начинается с заимствования текстов [1], программных кодов, поэтому есть необходимость отслеживать самостоятельность выполнения работы, а для этого требуется система, позволяющая находить заимствования, так как при проверке учителю/преподавателю требуется проверить не одну-две работы, а гораздо больше.
Важно отметить, что до настоящего момента никому не удалось создать идеальную систему, позволяющую выявить и, что важно, доказать наличие плагиата. Существующие решения позволяют лишь определить блоки, которые в тексте, либо программном коде могут являться заимствованными,
11
 
но итоговое решение о наличии плагиата в работе до сих пор остается за проверяющим [1].
Актуальность работы заключается в том, что разработка системы для обнаружения плагиата в программном коде была начата в 2018 году по заказу научного руководителя, так как в последние несколько лет набор студентов на образовательные программы увеличился, из-за этого возросла нагрузка на преподавателей, проверяющих лабораторные работы, и их ассистентов. Система станет новым методом контроля работы студентов в ходе учебного процесса. При желании, системой смогут пользоваться и другие преподаватели университета, в отличие от большинства аналогов реализованная система обладает графическим интерфейсом, интуитивно понятным пользователю.
В итоге сложилась цепочка работ: междисциплинарная курсовая работа «Автоматизированная система проверки лабораторных работ студентов на языках C/C++/Python», затем был выполнен проект «Модуль добавления пользовательских методов», завершением работы над системой является выполнение выпускной квалификационной работы «Автоматизированная система проверки программных кодов на языке Python».
Все это время проводилась комплексная работа по улучшению функциональных возможностей и графического интерфейса системы, чтобы она не только могла конкурировать с существующими аналогами, но и превосходила их.
Для того чтобы оценить оригинальность материалов, надо осознавать, что означает понятие «плагиат», и какие материалы могут затруднять поиск в Интернете оригинальных работ.
Понятие плагиата является широким и может включать в себя:
  • Заимствование текста из работ других авторов без каких-либо изменений [2];
12
 
  • Нарушение авторских прав авторов/изобретателей в качестве использования произведения и/или изобретения в полном объеме или частичном без указания источника, автора [3];
  • Публикация чужих трудов под своим именем, без внесения изменений
[4];
  • Принуждение к соавторству [5].
Спамовые материалы [6] затрудняют поиск оригинальных работ, так как не все сайты отлеживают отсутствие спама, рекламных баннеров, на некоторых сайтах размещаются дубликаты текстов из других ресурсов. Таким образом, фильтрацию информации проводят пользователи своими силами.
Важно отметить, что человек, заимствующий информацию, может скопировать информацию как полностью, так и частично, изменив оригинальные материалы. Для сокрытия факта плагиата нарушитель может заменять некоторые слова синонимичными, переставлять местами слова, предложения или абзацы. Иногда производится добавление лишних пробелов, замена букв алфавита буквами с аналогичным написанием с иной раскладки клавиатуры, использование «невидимых символов», создание «опечаток», изменение знаков препинания.
  • системе, описанной в работе, итоговое решение о наличии плагиата в программном коде будет принимать преподаватель, основываясь на результатах применения одного или нескольких методов сравнения кода/текста, а затем просмотре кластеров работ, которые имеют сходство между собой выше отметки, обозначенной преподавателем. В существующих системах создателем оригинальной работы считается тот, кто загрузил работу первым, разработанная же система является системой поддержки принятия решения, а лицом, принимающим решение, будет преподаватель.
Код программы по своему построению значительно отличается от текстов, так как языки программирования подразумевают строгий синтаксис, который необходимо соблюдать для корректной работы программы. Студенты, решившие списать, могут изменить названия переменных, добавлять или
13
 
убирать комментарии к коду, некоторые программы позволяют изменять логические блоки без изменения итогового результата работы программы. Сходства программ можно разделить на пять типов:
    1. Программа скопирована полностью или частично, нарушитель не внес изменения в скопированные фрагменты;
    1. Логические структуры двух программ полностью идентичны, однако произведены замены названий переменных;
    1. Нарушитель изменил скопированный блок кода, посредством изменения или удаления комментариев, пробелов. Некоторые языки программирования не чувствительны к отступам в начале строки, соответственно, в некоторых программах их количество может быть изменено;
    1. Блок кода изменяется посредством изменения операторов языка, логическая структура выполнения программы идентична;
    1. Одинаковый результат работы программы, но реализованы совершенно по-разному. Важно отметить, что такой тип сходства не будет считаться заимствованием/плагиатом, так как умение изменить логическую структуру программы показывает, что учащийся разбирается в материале.
  • программировании обнаружение плагиата осложняет еще и большое наличие шаблонов, которыми рекомендуют пользоваться при создании сайтов
(существуют специальные конструкторы). Так шаблоны бывают достаточно объемными, а программисту следует заполнить в них лишь некоторую часть, поэтому при сравнении кодов может возникнуть подозрение о наличии плагиата, которое на самом деле будет являться ошибочным. При решении некоторых лабораторных работ преподаватели так же советуют использовать определенные шаблоны решения задач для отработки навыков, что повлечет за собой совпадение в некоторой степени в программах ребят, которые выполнят эту лабораторную работу.
14

Таким образом, в программировании важно выделить группы работ, которые имеют между собой большое сходство, а затем, учитывая задание, были ли даны рекомендации относительно использования шаблонов, просмотреть работы и сделать вывод: студенты подошли к выполнению работы недобросовестно, либо, наоборот, прислушались к рекомендациям преподавателя и для решения задач использовали определенные построения логики решения.
Работу выполняла команда студентов: Бубнова Мария Андреевна и Мелех Никита Андреевич.
Разделение ответственности между исполнителями было проведено следующим образом:
  1. М. Бубнова должна выполнить обзоры существующих методов для поиска наличия заимствований в программном коде, обзоры существующих систем, направленных на обнаружение плагиата в тексте/коде. Отвечает за создание и реализация нового метода для обнаружения заимствования, тестирование нового метода и доработка ранее существующих. Подготовка программной документации к системе.
  1. Н. Мелех должен доработать архитектуру существующей системы, создать и встроить модули, отвечающие за добавление пользовательских методов, загрузку файлов с локального носителя, улучшить интерфейс, реализовать возможность выгрузки таблиц в облако.

Список литературы
  1. M. Potthast, T. Gollub, M. Hagen, J. Grabegger, J. Kiesel, M.Michel, A. Oberlander, M. Tippmann, A. Barron-Cenedo, P.Gupta, P. Rosso, B. Stein
Overview of the 4th International Competition on Plagiarism Detection // CLEF 2012 Evaluation Labs – Working Notes Papers, Rome, September 2012. . ISBN 978-88-904810-3-1. URLhttp://www.clef-initiative.eu/publication/working-notes.
  1. Синельников  С.М.  и  др.  Энциклопедия  предпринимателя  –  СПб:
ОЛБИС, 1994.-582с.
  1. Сухарев А.Я., Крутских В.Е. Большой юридический словарь (редакция)
– 2. изд, перераб. и доп. - М. : ИНФРА-М, 2002. - 703 с.
  1. Брокгауз, Ефрон. Малый энциклопедический словарь. - СПб.: Брокгауз-
Ефрон, 1907. — 1055 с.
  1. R.L. Haupt. Plagiarism in Journal Articles// IEEE Antennas and Propagation, Aug. 2003, vol. 45, n. 4.
  1. Soledad Pera Maria и Ng Yiu-Kai A Structural, Content-Similarity Measure for Detecting Spam Documents on the Web // INTERNATIONAL JOURNAL OF WEB INFORMATION SYSTEMS, С. 431-464
  1. C. K. Roy, J. R. Cordy, R. Koschke, Comparison and Evaluation of Code Clone Detection Techniques and Tools: A Qualitative Approach. Science of Computer Programming Volume 74, Issue 7, 1 May 2009, p. 470–495.
  1. Лифшиц  Ю.,  Антипов  Д.,  Евтифеева  О.А.,  Котов  А.,  Красс  А.Л.,
Лакунин М.А., Лысенко Е.А., Семенников А., Счастливцев Р.Р. Обзор алгоритмов и детекторов обнаружения плагиата в исходных кодах программ.– Санкт-Петербург, 2006.
  1. Евстифеева О.А., Красс А.Л., Лакунин М.А., Лысенко Е.А., Счастливцев Р.Р. Анализ алгоритмов поиска плагиата в исходных кодах программ. -
Научно-технический вестник информационных технологий, механики и оптики, 2007. URL: https://cyberleninka.ru/article/n/analiz-algoritmov-poiska-plagiata-v-ishodnyh-kodah-programm (дата обращения: 13.04.2020)
60
 
  1. C. Manning, P. Raghavan, H. Schütze. Introduction to Information Retrieval.
Cambridge University Press. 2008. 117-120 с. 155-156 с. URL: https://nlp.stanford.edu/IR-book/pdf/irbookonlinereading.pdf (дата обращения: 13.04.2020)
  1. TF-IDF. URL: http://www.tfidf.com (дата обращения: 13.04.2020)
  1. A. Chowdhury, O. Frieder, D. Grossman, M. McCabe. Collection statistics for fast duplicate document detection. ACM Transactions on Information Systems
(TOIS),Vol.20,Issue2(April2002).URL:
http://ir.cs.georgetown.edu/publications/downloads/p171-chowdhury.pdf (дата обращения: 13.04.2020)
  1. A. Kolcz, A. Chowdhury, J. Alspector. Improved Robustness of Signature-Based Near-Replica Detection via Lexicon Randomization. KDD 2004. URL: http://ir.cs.georgetown.edu/~abdur/publications/470-kolcz.pdf (дата обращения:
13.04.2020)
  1. D. Fetterly, M. Manasse, M. Najork. A Large-Scale Study of the Evolution of Web Pages, WWW2003, May 20-24, 2003, Budapest, Hungary. URL^ https://www.microsoft.com/en-us/research/wp-content/uploads/2004/02/p97-fetterly.pdf (дата обращения: 13.04.2020)
  1. Романов А.С. Методика идентификации автора текста на основе аппарата опорных векторов. – Доклады Томского государственного университета систем управления и радиоэлектроники, 2009. URL: https://cyberleninka.ru/article/n/metodika-identifikatsii-avtora-teksta-na-osnove-apparata-opornyh-vektorov (дата обращения: 13.04.2020)
  1. Diego A. Rodríguez Torrejón, José Manuel Martín Ramos Text Alignment
Module in CoReMo 2.1 Plagiarism Detector Notebook for // PAN at CLEF 2013, 2013
  1. J. Hage, B. Vermeer, and G. Verburg. Research paper: Plagiarism Detection for Haskell with Holmes. In M. C. J. D. van Eekelen, E. Barendsen, P. B. Sloep, and G. C. van der Veer, editors, Proceedings of the 3rd Computer Science Education
61

Research Conference, CSERC 2013, Arnhem, The Netherlands, April 04 - 05, 2013, pages 19–30. ACM, 2013.
  1. J. Hage, B. Vermeer, G. Verburg. Holmes for Haskell. Keeping your Haskell
courses free of software plagiarists, 2013. URL: http://www.nioc.nl/archief/2013/wp-
content/uploads/2013/05/CSERC2013_presentation_Jurriaan_Hage.pdf (дата обращения 13.04.2020)
  1. F.A. Damerau Technique for Computer Detection and Correction of Spelling Errors // Communications of the ACM. 1964. Vol. 7. No. 3. P. 171–176.
  1. A. Broder, S. Glassman, M. Manasse and G. Zweig. Syntactic clustering of the Web. Proc. of the 6th International World Wide Web Conference, April 1997.
  1. Weber, R., Schek, H. J., Blott, S. (1998). A Quantitative Analysis and PerformanceStudy for Similarity-Search Methods in High-Dimensional Spaces. // Proceedings of the 24th VLDB Conference, New York C, 194–205.
  1. Севостьянова И.О. Обзор систем проведения проверки на плагиат: общероссийские и зарубежные. Научное обозрение. Педагогические науки. –
2017.           –            №            5            –            С.            162-166.           URL:            https://science-
pedagogy.ru/ru/article/view?id=1681 (дата обращения: 13.05.2020)
  1. Желудков А.В., Макаров Д.В., Фадеев П.В. Исследование алгоритмов точного поиска подстроки в строке. Символ науки, 2016. URL: https://cyberleninka.ru/article/v/issledovanie-algoritmov-tochnogo-poiska-podstroki-v-stroke (дата обращения: 13.04.2020)
  1. А.В. Желудков, Д.В. Макаров, П.В. Фадеев. Особенности алгоритмов нечеткого поиска. Инженерный вестник, декабрь 2014. URL:
http://technomag.edu.ru/en/library/magazines/engineering/731625.html (дата обращения 13.04.2020)
  1. Антиплагиат. [Офиц. сайт]. URL: https://www.antiplagiat.ru/ (дата обращения 20.04.2020)
  1. Детектор плагиата. [Офиц. сайт]. URL: http://www.detector-plagiata.ru/more_inf_work.html (дата обращения 20.04.2020)

 

Сколько стоит помощь с учебной работой?