Original title:
Detekce plagiátorství v softwarových projektech v předmětu Bezpečnost databázových systémů
Translated title:
Detection of plagiatorism in software projects in the BDS course
Authors:
Szymutko, Marek ; Přinosil, Jiří (referee) ; Šeda, Pavel (advisor) Document type: Bachelor's theses
Year:
2023
Language:
cze Publisher:
Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií Abstract:
[cze][eng]
Plagiátorství je rozšířený problém, kterému lze předcházet preventivními nebo detekčními metodami. V práci jsou shrnuty možnosti detekce plagiátorství pomocí automatizovaných metod. Pro získávání dat z projektů byl využit volně šiřitelný kompilátor abstraktních syntaktických stromů, jehož fungování bylo v práci demonstrováno. Byl navržen způsob odevzdávání softwarových projektů tak, aby studenti nemohli vzájemně vidět své projekty. Využita k tomu byla cloudová služba GitLab. Pomocí skriptů jazyka Bash byl automatizován způsob zakládání samostatných studentských prostředí v této službě. Také byly vytvořeny skripty pro zakládání skupin studentů a archivace studentských repozitářů ve službě GitLab. V jazyce Python byl vyvinut systém k hledání podobností ve studentských projektech z předmětu BPC-BDS, psaných v jazyce Java nebo Python. Využít jej lze však i v jiných předmětech. Tento systém využívá metrik a abstraktních syntaktických stromů. Výsledek porovnání projektů i jejich jednotlivých částí je reprezentován celočíselnou hodnotou a zapsán pro přehlednost do tabulkového souboru formátu xlsx. Práce se věnuje i silným a slabým stránkám implementovaného způsobu hledání plagiátů. Také jsou shrnuty problémy, které vyvstaly v průběhu řešení práce. Součástí je i případová studie ohledně plagiátorství v předmětu BDS v akademickém roce 2022/2023.
Plagiarism is a widespread problem, which can be fought by prevention or detection methods. This thesis contains a summary of plagiarism detection methods through automated means. To parse source code, an open-source abstract syntax tree compiler was employed. The functionality of this compiler was demonstrated in this thesis. To reduce the mutual visibility of students’ projects, a proposal for the submission process was created. GitLab cloud service was employed for this purpose. Initialization of these students’ spaces is performed via Bash scripts. Other scripts to archive and create spaces for groups of students in the GitLab service were also created. A similarity-detecting tool was created in Python programming language. This tool was specialized to be employed in the subject BPC-BDS for the detection of plagiarism in students’ assignments written in Java or Python. It can also be used in other subjects though. For similarity detection, numerical metrics and abstract syntax trees were used. The comparison output of the projects and their individual parts is represented with integer value and outputted into a tabular file of the format xlsx. This thesis also summarizes the strengths and weaknesses of the implemented solution and lists problems that were encountered in the process of implementation. A case study about plagiarism in the subject BDS in the academic year 2022/2023 is also included in this thesis.
Keywords:
Abstract syntax trees; API; Bash; detection; Git; GitLab; Java; metrics; plagiarism; Python; Abstraktní syntaktické stromy; API; Bash; detekce; Git; GitLab; Java; metriky; plagiátorství; Python
Institution: Brno University of Technology
(web)
Document availability information: Fulltext is available in the Brno University of Technology Digital Library. Original record: http://hdl.handle.net/11012/212613