Un representador es un programa que toma la solución de un estudiante y devuelve una representación normalizada de ella. Después usamos estas representaciones para agilizar los comentarios automatizados y la clasificación.
Un ejemplo es la mejor forma de explicar qué es un representador. Supongamos que dos estudiantes envían dos entregas al ejercicio hello-world en 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
Aunque el código de estas soluciones es distinto (la indentación, los nombres de las variables y la sintaxis de los strings son diferentes), en esencia son la misma. Así que, si creamos una representación normalizada de ambas, podemos tratarlas como si fueran la misma a la hora de proporcionar comentarios. Esto reduce drásticamente la cantidad de mentorías duplicadas que hay que hacer.
Cada track mantiene su propio representador, específico para ese lenguaje. No hay un formato de salida estandarizado: solo pedimos que cada track sea coherente internamente.
Si te interesa crear un representador, consulta la documentación sobre los representadores para obtener más información.