রিপ্রেজেন্টার হলো এমন একটি সফটওয়্যার, যা একজন শিক্ষার্থীর সমাধান নিয়ে তার একটি নরমালাইজড রিপ্রেজেন্টেশন ফেরত দেয়। এরপর আমরা এই রিপ্রেজেন্টেশনগুলো ব্যবহার করে স্বয়ংক্রিয় ফিডব্যাক ও শ্রেণিবিন্যাসকে আরও কার্যকর করি।
একটি উদাহরণ দিয়ে রিপ্রেজেন্টার সবচেয়ে ভালোভাবে বোঝানো যায়। ধরা যাক, দুইজন শিক্ষার্থী Ruby-তে hello-world অনুশীলনীতে দুটি সাবমিশন জমা দিল:
# Student 1's submission
def self.hello(name = 'World')
"Hello, #{name}!"
end
# Student 2's submission
def self.hello(nom = 'World')
"Hello, #{nom}!"
end
যদিও এই সমাধান দুটির কোড আলাদা (আলাদা ইন্ডেন্টেশন, ভ্যারিয়েবলের নাম আর স্ট্রিং সিনট্যাক্স), তবুও এগুলো মূলত একই। তাই এগুলোর একটি নরমালাইজড রিপ্রেজেন্টেশন তৈরি করে আমরা ফিডব্যাক দেওয়ার জন্য এগুলোকে একই হিসেবে গণ্য করতে পারি। এতে ডুপ্লিকেট মেন্টরিংয়ের পরিমাণ অনেকখানি কমে যায়।
প্রতিটি ট্র্যাক নিজের রিপ্রেজেন্টার নিজেই রক্ষণাবেক্ষণ করে, যা সেই ভাষার জন্য নির্দিষ্ট। এখানে কোনো প্রমিত আউটপুট নেই, আমরা শুধু চাই একটি ট্র্যাক অভ্যন্তরীণভাবে সামঞ্জস্যপূর্ণ হোক।
আপনি যদি একটি রিপ্রেজেন্টার তৈরি করতে আগ্রহী হন, তবে আরও তথ্যের জন্য রিপ্রেজেন্টার ডকুমেন্টেশন দেখুন।