Erkennung von programmiersprachenübergreifenden Plagiaten

Ein graphbasierter Ansatz für den Vergleich von Java- und Python-Codes

Betreuer / Ansprechpartner

  • Hannes Grunert

Charakter

  • Vergleichende Analyse

  • Konzeption

  • Prototypische Implementierung

  • Evaluation

Vorkenntnisse

  • Pflicht: Vorlesung Data Science oder Data Warehouses
  • Optional: Big Data Processing

Beschreibung

Die Überprüfung der Einhaltung wissenschaftlicher Standards und Leitlinien stellt eine große Herausforderung dar. Insbesondere die Betreuung studentischer Abschlussarbeiten nimmt einen Großteil der Arbeitszeit von wissenschaftlichen Mitarbeitern ein, da diese die Arbeiten sorgfältig prüfen und den Studierenden (rechtzeitig) Feedback zur Qualität der Arbeit geben sollten. Eine Entlastung der Lehrenden an dieser Stelle ist sehr wünschenswert.

Neben „klassischen“ Textplagiaten kommt es vermehrt zu plagiierten Bildern und Musikstück, aber auch zu wiederverwendeten Quellcode ohne explizite Nennung der Autoren. Dabei kann es auch vorkommen, dass Programmtexte vor der Wiederverwendung entweder manuell oder KI-basiert von einer Quellsprache in eine andere Zielsprache übersetzt werden.

Im Rahmen dieser Abschlussarbeit soll untersucht werden, wie durch eine graphbasierte Analyse strukturell identische Programmteile in zwei vorliegenden Quellcodes entdeckt werden können. Der Fokus liegt dabei auf den imperativen Programmiersprachen Java und Python. 

Arbeitsschritte

  • Einarbeitung in das Gebiet / Literaturanalyse / Stand der Technik
    • Plagiatserkennung
    • Natural Language Processing
    • Graphen
  • Konzeption
    • Darstellung von imperativen Programmen als Graph
    • Erkennung von gleichen Teilgraphen
    • Bestimmung der Ähnlichkeit
  • Implementierung des Konzepts
  • Test und Validierung des Verfahrens

Technologien

  • Programmiersprachen (für die Implementierung) nach Wahl; bevorzugt Java

Literatur

  1. Chae, Dong-Kyu, et al. "Software plagiarism detection: a graph-based approach." Proceedings of the 22nd ACM international conference on Information & Knowledge Management. 2013.
  2. Binwahlan, Mohammed Salem. "Conceptual similarity and graph-based method for plagiarism detection." Journal of Theoretical and Applied Information Technology (2011).
  3. Cheers, Hayden, and Yuqing Lin. "A novel graph-based program representation for java code plagiarism detection." Proceedings of the 3rd international conference on software engineering and information management. 2020.
  4. Mögliche Datenquelle: github.com/oscarkarnalim/sourcecodeplagiarismdataset

Weitere Literatur wird zu Beginn der Arbeit bekannt gegeben.