Representadores


Um representador é um programa que recebe a solução de um estudante e devolve uma representação normalizada dessa solução. Usamos depois estas representações para agilizar o feedback automático e a classificação.

Um exemplo ajuda a explicar melhor os representadores. Imaginemos que dois estudantes submetem duas soluções ao exercício hello-world em Ruby:

# Student 1's submission
def self.hello(name = 'World')
  "Hello, #{name}!"
end
# Student 2's submission
def self.hello(nom = 'World')
  "Hello, #{nom}!"
end

Embora o código destas soluções seja diferente (indentação, nomes de variáveis e sintaxe de strings diferentes), são essencialmente iguais. Assim, ao criar uma representação normalizada de ambas, podemos tratá-las como iguais para efeitos de feedback. Isto reduz drasticamente a quantidade de mentoria duplicada que é necessária.

Cada percurso mantém o seu próprio representador, específico para essa linguagem. Não existe uma saída normalizada; só exigimos que um percurso seja internamente consistente.

Construir um representador

Se estiveres interessado em construir um representador, consulta a documentação sobre representadores para mais informações.