A representer egy olyan szoftver, amely bemenetként egy tanuló megoldását kapja, és visszaadja annak egy normalizált reprezentációját. Ezeket a reprezentációkat aztán arra használjuk, hogy egyszerűsítsük az automatikus visszajelzést és az osztályozást.
A representereket a legkönnyebben egy példával lehet megérteni. Tegyük fel, hogy két tanuló két beküldést küld be a Ruby hello-world feladatához:
# Student 1's submission
def self.hello(name = 'World')
"Hello, #{name}!"
end
# Student 2's submission
def self.hello(nom = 'World')
"Hello, #{nom}!"
end
Bár ezeknek a megoldásoknak a kódja különbözik (más a behúzás, mások a változónevek és más a string-szintaxis), lényegében ugyanazok. Ezért ha készítünk róluk egy normalizált reprezentációt, akkor a visszajelzés szempontjából ugyanúgy kezelhetjük őket. Ez nagymértékben csökkenti a duplikált mentorálás mennyiségét.
Minden kurzus a saját, az adott nyelvre szabott representerét tartja karban. Nincs szabványosított kimenet, csak azt kérjük, hogy egy kurzus önmagában konzisztens legyen.
Ha szeretnél representert építeni, további információkért nézd meg a representer dokumentációt.