Uploaded avatar of iHiD

স্বয়ংক্রিয় মেন্টরিং সাপোর্ট প্রজেক্ট

@iHiD
7 বছরের বেশি আগে

আপডেট: আমরা আনন্দের সঙ্গে জানাতে পেরে উৎসাহিত যে Mozilla এই প্রকল্পের জন্য আমাদের একটি Open Source Support Award দিয়েছে। বিস্তারিত এখানে পড়ুন।

এই ব্লগ পোস্টটি Exercism-এর অটোমেটেড মেন্টরিং সাপোর্ট প্রকল্পের সূচনা চিহ্নিত করছে। এই প্রকল্পে আমরা এমন একটি ফ্রেমওয়ার্ক তৈরি করব, যা প্রোগ্রামের মাধ্যমে ব্যবহারকারীদের সলিউশন বিশ্লেষণ করবে, যাতে শিক্ষার্থীদের জন্য ফিডব্যাকের চক্র উন্নত হয় এবং মেন্টরদের বোঝা কমে। স্বল্পমেয়াদে আমাদের লক্ষ্য হলো, নির্দিষ্ট গ্রহণযোগ্যতার মানদণ্ড পূরণ করে এমন সলিউশন স্বয়ংক্রিয়ভাবে অনুমোদন করা এবং ঘন ঘন দেখা যাওয়া উন্নতির বিষয়গুলো নিয়ে ফিডব্যাক দেওয়া।

এই পোস্টের উদ্দেশ্য হলো, আমরা কোন সমস্যাটি সমাধান করতে চাইছি এবং আগামী কয়েক মাসে সেটি কীভাবে মোকাবিলা করব, তার একটি উচ্চপর্যায়ের পরিকল্পনা বর্ণনা করা। এরপর আমরা আরও কিছু পোস্ট প্রকাশ করব, যেখানে সমস্যাটির পটভূমি ও Exercism-এ অটোমেটেড বিশ্লেষণের ইতিহাস নিয়ে বিস্তারিত থাকবে, সঙ্গে থাকবে আমাদের ইমপ্লিমেন্টেশন কৌশল সম্পর্কে আরও তথ্য।

কেন অটোমেটেড মেন্টর সাপোর্ট?

Exercism-এর সবচেয়ে বড় বাধা হলো স্কেল সামলানো।

Exercism-এর সাফল্যে আমাদের স্বেচ্ছাসেবী মেন্টরদের ভূমিকা অত্যন্ত গুরুত্বপূর্ণ। তাঁরা শিক্ষার্থীদের সলিউশন রিভিউ করেন, সেগুলো অনুশীলনীর সাফল্যের মানদণ্ড পূরণ করে কি না বা আরও উন্নত করা দরকার কি না তা বিশ্লেষণ করেন, সহানুভূতির সঙ্গে একজন শিক্ষার্থীর চিন্তার ধারা বোঝেন, উৎসাহদায়ক ও সহায়ক ফিডব্যাক দেন, এবং একটি ভাষার ইডিয়মগুলো নিয়ে মানুষকে কোচিং করান। আজ আমরা কোনোমতে মেন্টরিংয়ের চাহিদার সঙ্গে তাল মিলিয়ে চলছি। আমরা যদি আরও বড় হতে চাই, তাহলে "আরও মেন্টর যোগ করুন" এই কৌশলের চেয়ে ভালো কিছু দরকার।

Exercism-এর একটি ভাষা ট্র্যাকের মূল কাঠামো গড়ে তোলে যে কোর অনুশীলনীগুলো, সেগুলোর ক্ষেত্রে আমাদের হিসাবমতে প্রায় ২৫% সাবমিশন প্রথম চেষ্টাতেই সম্পূর্ণ হিসেবে চিহ্নিত করার মতো যথেষ্ট ভালো হয়। আরও ৫৫% সাবমিশনে এমন সমস্যা থাকে যা কমন কিছু ভাগে পড়ে, যেগুলোর মেন্টরিং ফিডব্যাক স্নিপেট কপি-পেস্ট করেই করা যায়। মাত্র প্রায় ২০% সলিউশনের ক্ষেত্রে মেন্টরকে নিজের মাথা খাটিয়ে ও ভেবেচিন্তে ফিডব্যাক দিতে হয়।

যে ৮০% সলিউশন মেন্টরের মস্তিষ্ককে সত্যিকারভাবে কাজে লাগায় না, সেগুলো এমন মানুষদের জন্য হতাশাজনক সময়ের অপচয়, যারা অন্যকে সাহায্য করতে নিজের সময় স্বেচ্ছায় দিতে রাজি, এবং এসব কাজে তাঁদের দক্ষতার সদ্ব্যবহারও হয় না।

একইভাবে, একজন শিক্ষার্থীকে ফিডব্যাক পাওয়ার আগে এক দিন থেকে এক সপ্তাহ পর্যন্ত অপেক্ষা করতে হতে পারে, আর এই সময়টা জুড়ে সে ট্র্যাকে এগিয়ে যেতেও পারে না। যারা এমন একটি ইটারেশন সাবমিট করেছেন যা সম্পূর্ণ বৈধ ২৫% সলিউশনের মধ্যে পড়ে, তাঁদের কাছে এই দেরি অসম্ভব হতাশাজনক। আর বাকিদের কাছে ভালো বললেও এটি আদর্শের চেয়ে কম। এই দেরির কারণে শিক্ষার্থীরা প্রায়ই গতি হারিয়ে ফেলে এবং পুরো প্রক্রিয়া নিয়ে হতাশ হয়ে পড়ে।

এমন একটি সিস্টেম তৈরি করে, যা স্বয়ংক্রিয়ভাবে একটি সলিউশন বিশ্লেষণ করতে পারে এবং হয় সেটি অনুমোদন করে, নয়তো পরিচিত সমস্যাগুলোর জন্য রেডিমেড ফিডব্যাক দেয়, আমরা মেন্টরদের কাজের চাপ নাটকীয়ভাবে কমাতে পারব বলে মনে করি, কারণ এতে "একঘেয়ে" অংশগুলো বাদ পড়বে, আর একইসঙ্গে শিক্ষার্থীর অভিজ্ঞতা অনেক উন্নত হবে। বাড়তি সুবিধা হিসেবে, গঠন ও স্টাইল সংক্রান্ত প্রশ্নে মানুষ আরও সামঞ্জস্যপূর্ণ ফিডব্যাক পাবে, যা তাঁদের কম স্পষ্ট বিষয়গুলো নিয়ে আরও আকর্ষণীয় আলোচনা করার সুযোগ করে দেবে।

এটি কীভাবে কাজ করবে?

আমাদের দীর্ঘমেয়াদি লক্ষ্য হলো ডিপ-লার্নিং অ্যালগরিদম তৈরি করা, যা ২০১৩ সালে Exercism প্রথম চালু হওয়ার পর থেকে সাবমিট করা প্রায় দশ লক্ষ সাবমিশনের অ্যাবস্ট্রাক্ট সিনট্যাক্স ট্রি (AST) বিশ্লেষণ করতে পারবে। এমন একটি টুল হয়তো কমন প্যাটার্ন এবং মেন্টরদের সংশ্লিষ্ট কমেন্ট শনাক্ত করতে পারবে। স্বল্পমেয়াদে আমাদের লক্ষ্য হলো স্ট্যাটিক অ্যানালাইসিস ব্যবহার করে নির্ধারণ করা, মেন্টররা সবচেয়ে বেশি যেসব ভুল দেখেন তার ভিত্তিতে কী ফিডব্যাক দেওয়া যেতে পারে।

প্রকল্পটি মোটামুটি কয়েকটি ক্ষেত্রে ভাগ করা যায়: ১) প্রোডাক্ট পরিবর্তন: এই অটোমেটেড বিশ্লেষণ বর্তমান মেন্টরিং UI-এর সঙ্গে কীভাবে খাপ খায়, আমরা এই ফিডব্যাক কীভাবে জানাব (সিস্টেম মেসেজ, একটি "বট" ইত্যাদি), এবং তারপর Exercism ওয়েবসাইটের জন্য এটি কীভাবে বাস্তবায়ন করব, তা আমাদের ভেবে বের করতে হবে। ২) ইনফ্রাস্ট্রাকচার: আমরা এমন ইনফ্রাস্ট্রাকচার ডিজাইন ও তৈরি করব, যা একাধিক ভাষায় স্ট্যাটিক অ্যানালাইসিস চালানো দক্ষভাবে সামলাতে পারে। ৩) স্ট্যাটিক অ্যানালাইসিস প্রোটোটাইপ: এমন একটি নমুনা অ্যানালাইজার তৈরি করা, যা Ruby / Two-fer-এর ভালো সলিউশন স্বয়ংক্রিয়ভাবে অনুমোদন করবে, এবং এই প্রক্রিয়াটি ডকুমেন্ট করা, যাতে বৃহত্তর কমিউনিটি অবদান রাখতে পারে।

আমরা ২০১৯ সালের মাঝামাঝি নাগাদ প্রাথমিক প্রোটোটাইপ চালু করার লক্ষ্য রাখছি। ভিত্তি তৈরি হয়ে গেলে আমরা এটিকে Ruby ছাড়া অন্য ভাষায় এবং Two Fer ছাড়া অন্য অনুশীলনীতে ছড়িয়ে দেওয়ার আশা করি। প্রোটোটাইপে অগ্রগতি না হওয়া পর্যন্ত অন্য ভাষা ও অনুশীলনী ওয়েবসাইটে যুক্ত করার মতো ফ্রেমওয়ার্ক আমাদের হাতে থাকবে না, তবে আপনি যদি আপনার প্রিয় ভাষা ও অনুশীলনীর জন্য অ্যানালাইজার লিখতে শুরু করতে চান, তাহলে অপেক্ষা করার কোনো কারণ নেই! এই প্রকল্পের GitHub রেপোতে একটি ইস্যু খুলুন এবং আপনি কী করতে আগ্রহী তা আমাদের জানান।

Exercism কমিউনিটির যাঁরা ইতিমধ্যেই মেন্টরিংয়ে সাহায্যের জন্য স্ট্যাটিক অ্যানালাইসিস ব্যবহার করছেন, তাঁদের সঙ্গে কাজ করতে আমরা খুবই উৎসাহী। যেমন tehsphinx এবং bitfield, যাঁরা Go ট্র্যাকের মেন্টরদের জন্য একটি স্ট্যাটিক অ্যানালাইসিস টুল তৈরি করেছেন। এই টুলটি কীভাবে একটি ট্র্যাককে বিশাল ব্যাকলগ থেকে Exercism-এর সবচেয়ে দ্রুত সাড়া দেওয়া ভাষা ট্র্যাকগুলোর একটিতে পরিণত করেছে, সেটাই দেখিয়ে দেয় অটোমেটেড মেন্টর সাপোর্ট কতটা প্রভাব ফেলতে পারে।

আগামী কয়েক সপ্তাহে আমরা এই প্রথম গুরুত্বপূর্ণ পদক্ষেপগুলো এবং সবকিছু কীভাবে কাজ করবে তা নিয়ে আরও বিস্তারিত জানাব।

নিচের কমেন্ট সেকশনে আপনার যেকোনো প্রশ্নের উত্তর দিতে আমরা আগ্রহী! :)

7 ফেব্রুয়ারি 2019 · কাজে লেগেছে?