Ein Representer ist ein Programm, das die Lösung eines Lernenden entgegennimmt und eine normalisierte Repräsentation davon zurückgibt. Diese Repräsentationen nutzen wir dann, um automatisiertes Feedback und Klassifizierung zu optimieren.
Ein Beispiel erklärt Representer am besten. Nehmen wir an, zwei Lernende reichen zwei Lösungen für die Übung hello-world in Ruby ein:
# Student 1's submission
def self.hello(name = 'World')
"Hello, #{name}!"
end
# Student 2's submission
def self.hello(nom = 'World')
"Hello, #{nom}!"
end
Obwohl der Code dieser Lösungen unterschiedlich ist (andere Einrückung, andere Variablennamen, andere String-Syntax), sind sie im Wesentlichen gleich. Indem wir eine normalisierte Repräsentation von ihnen erstellen, können wir sie für die Zwecke des Feedbacks als gleich behandeln. Dadurch sinkt die Menge an doppeltem Mentoring drastisch.
Jeder Track pflegt seinen eigenen Representer, der auf diese Sprache zugeschnitten ist. Eine standardisierte Ausgabe gibt es nicht. Wir verlangen nur, dass ein Track in sich konsistent ist.
Wenn du daran interessiert bist, einen Representer zu bauen, schau dir die Representer-Dokumentation an, um mehr zu erfahren.