Representadores


Um representer é um software que recebe a solução de um estudante e retorna uma representação normalizada dela. Depois usamos essas representações para agilizar o feedback automatizado e a classificação.

A melhor forma de explicar representers é com um exemplo. Vamos supor que dois estudantes enviem duas submissões para o 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 dessas soluções seja diferente (indentação, nomes de variáveis e sintaxe de string diferentes), elas são essencialmente as mesmas. Então, ao criar uma representação normalizada delas, podemos tratá-las como iguais para efeito de fornecer feedback. Isso reduz drasticamente a quantidade de mentoria duplicada que precisa acontecer.

Cada trilha mantém seu próprio representer, específico para aquela linguagem. Não existe uma saída padronizada: só exigimos que cada trilha seja internamente consistente.

Criando um representer

Se você quiser criar um representer, dê uma olhada na documentação de representers para mais informações.