Skrypt wykrywania oszustw [duplikat]

Nov 21 2020

Pandemie niesamowicie zwiększyły liczbę przypadków oszustw. Czy znasz jakiś skrypt (bash lub inny język skryptowy) do sprawdzania kilku przesłanych kodów Java pod kątem podobieństwa? Wiem, że mógłbym użyć diff, ale trudno byłoby wykryć podobieństwo.

Odpowiedzi

3 FritzSieker Nov 20 2020 at 23:46

Spójrz na MOSS ze Stanford (https://theory.stanford.edu/~aiken/moss). Jest to łatwa w użyciu bezpłatna usługa internetowa, która porównuje pliki i raportuje podobieństwa. Zakładasz darmowe konto i przesyłasz wniosek, a zwracany jest adres URL do raportu pokazującego podobieństwa różnych plików.

Zauważyłem, że najłatwiejszym sposobem jest przesłanie pliku .tar zorganizowanego na pierwszym poziomie w postaci serii podkatalogów, z których każdy identyfikuje jednego ucznia (imię i nazwisko, identyfikator ucznia itp.). Pod każdym katalogiem uczniów znajdują się przesłane przez nich pliki. Te zwykle mają dokładnie takie same nazwy, jak przypisanie zwykle określa nazwy klas klas Java.

W przypadku małych zadań uzyskasz wysoką korelację między uczniami, ponieważ jest tylko tyle możliwych różnic, ale możesz spojrzeć na „najbardziej podobne” i dowiedzieć się, czy prawdopodobnie doszło do oszustwa. W zależności od tego, w jaki sposób uczniowie faktycznie przesyłają swoje programy, może być łatwo napisać skrypt, który zautomatyzuje ten proces. Chętnie podzielę się szczegółami z każdym