কনসেপ্ট অনুশীলনী


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

কনসেপ্ট অনুশীলনীর বৈশিষ্ট্যগুলো হলো:

  • প্রতিটির একটি স্পষ্ট শেখার লক্ষ্য থাকে।
  • এগুলো ভাষা-নির্দিষ্ট, সাধারণ নয়।
  • অনুশীলনীতে শিক্ষার্থীকে অপ্রয়োজনীয় কোড শিখতে বা লিখতে না হয়, সেজন্য স্টাব/বয়লারপ্লেট ব্যবহার করা হয়।

কনসেপ্ট

কোন কনসেপ্ট শেখানো ও শেখা হচ্ছে তার ভিত্তিতে অনুশীলনীগুলো আনলক হয়। প্রতিটি কনসেপ্ট অনুশীলনীকে এক বা একাধিক কনসেপ্ট শেখাতে হবে। এর কনসেপ্টের উপর পূর্বশর্তও থাকতে পারে, অর্থাৎ যে কনসেপ্ট অনুশীলনীগুলো ওই পূর্বশর্ত কনসেপ্টগুলো শেখায় সেগুলো সম্পন্ন না হলে এটি আনলক হবে না।

কঠিনতা

ট্র্যাক এগোনোর সাথে সাথে কনসেপ্ট অনুশীলনীগুলো নিজে থেকেই বেশি কঠিন হয়ে ওঠা উচিত নয়। X ভাষার একজন অভিজ্ঞ ডেভেলপারের ওই ট্র্যাকের সব কনসেপ্ট অনুশীলনী করতে পারার কথা, যেখানে প্রতিটি সমাধান করতে ৫-১০ মিনিটের বেশি লাগবে না। যেহেতু প্রতিটি অনুশীলনীর লক্ষ্য হওয়া উচিত কাউকে প্রথমবার একটি কনসেপ্ট ব্যবহার করানো, আর যেহেতু অভিজ্ঞ ডেভেলপার X ভাষায় ওই কনসেপ্টটি আগেই বোঝেন, তাই তাঁর কাছে অনুশীলনীটি তুলনামূলক সহজ লাগা উচিত। X ভাষার সাথে অপরিচিত ডেভেলপারের কাছে পরের অনুশীলনীগুলো বেশি কঠিন লাগতে পারে, কিন্তু তার একমাত্র কারণ হলো পরের অনুশীলনীটি এমন একটি কনসেপ্ট শেখায় যা নিজেই বেশি জটিল (উদাহরণ হিসেবে বলা যায়, এক ভাষা থেকে অন্য ভাষায় লুপ বদলে ফেলার চেয়ে প্রথমবার রিকার্সন শেখা যে বেশি জটিল একটি বিষয়, এতে বেশিরভাগ মানুষই একমত হবেন)।

ফিডব্যাক

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