Projeto de detecção de plágio
Oficina 2
Oficina 2 [editar]
Objetivo:
Criar uma representação interna que facilite a comparação entre programas em Python. As ideias resultantes dessa oficina serão utilizadas no próximo EP.
Descrição:
Durante a 1ª Oficina, vários grupos propuseram pré-processar os arquivos para transformá-los em algo mais fácil de comparar. Por exemplo, eliminando os comentários, podemos comparar apenas o código.
Na 2ª Oficina, vocês discutirão como pode ser a representação intermediária que vocês chamaram de "esqueleto" (ou "forma canônica"). A ideia é converter cada programa em Python para um esqueleto e comparar todos os programs usando os seus esqueletos. Por exemplo, foi sugerido que o esqueleto de um programa não deveria conter comentários.
Na 3ª Oficina, vocês ...
O que você deve fazer:
Tente imaginar outras transformações que podemos aplicar nos arquivos de entrada para obter uma forma canônica mais poderosa, capaz de detectar outros casos de plágio descritos no wiki (aliás, lembre-se que você pode continuar incluindo outros casos se desejar). Por exemplo, será que podemos transformar os nomes das variáveis, funções e classes para uma forma canônica?
Se você tiver alguma sugestão de transformação, descreva a sua ideia na seção de comentários desse wiki. Se desejar, pode até propor uma solução.
Lembre-se que, por ser um brainstorm, nenhuma ideia é ruim, todas elas são bem vindas.