Representer


Representerとは、学習者の解答を受け取り、それを正規化した表現として返すソフトウェアです。この表現を使って、自動フィードバックと分類を効率よく行えるようにします。

Representerは、具体例で考えるとよくわかります。Rubyのhello-world演習に、2人の学習者がそれぞれ解答を提出したとしましょう。

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

この2つの解答は、コードの見た目は違います(インデント、変数名、文字列の書き方が異なります)が、本質的には同じです。そこで、それぞれを正規化した表現にすれば、フィードバックを行う上では同じものとして_扱う_ことができます。これにより、同じ内容を何度もメンタリングする必要が大幅に減ります。

各トラックは、その言語に固有のRepresenterをそれぞれ管理しています。出力の形式は標準化されていません。トラック内で一貫していればよい、というだけです。

Representerの作り方

Representerの作り方に興味があれば、詳しくはRepresenterのドキュメントを参照してください。