প্রোগ্রামিং কন্টেস্টঃ রুলস্‌ অ্যান্ড পয়েন্ট সিস্টেম

পরীক্ষার প্রশ্ন কাঠামো ও নাম্বার নির্ধারণ না জানা থাকলে প্রস্তুূতি যতই ভাল হক না কেন পরীক্ষায় ভাল সহজে করা সম্ভব না, তেমনি প্রোগ্রামিং প্রতিযোগিতায় ও শুধু মাত্র প্রোগ্রামিং পারলেই ভাল করা যায় না।  আমাদের অনেকেরই প্রোগ্রামিং এর কনসেপ্ট নিয়ে সমস্যা না থাকলেও প্রোগ্রামিং কন্টেস্ট এর নিয়মনীতি নিয়ে ধারনা নেই। তাই আমাদের প্রোগ্রামিং এর দক্ষতাকে উপযুক্ত ভাবে কাজে লাগানো হয়। তাই  ICPC (International Collegiate Programming Contest) দ্বারা অনুমোদিত প্রোগ্রামিং প্রতিযোগিতার রুলস্‌ ও পয়েন্ট ডিস্ট্রিবিউশন এ অধ্যায়ে আলোচনা করা হল।

কন্টেস্ট এর প্রকারঃ 

 প্রোগ্রামিং কন্টেস্ট একক বা দল ভিত্তিক হতে পারে। সাধারনত সল্প-সময়ের প্রতিযোগিতা  (২-৫ ঘণ্টা) একক হয়ে থাকে। কিন্তু দীর্ঘ প্রতিযোগিতা (৭ ঘণ্টা থেকে কয়েকদিন !!)  দল ভিত্তিক হয়ে থাকে যেখানে সদস্য সংখ্যা হয় সাধারণত ৩ জন।

ল্যাঙ্গুয়েজঃ

কলেজ পর্যায় পর্যন্ত আমাদের দেশ এ যত কন্টেস্ট আছে তার সবগুলোতে ল্যাঙ্গুয়েজ হিসেবে শুধু C এবং C++ গ্রহণযোগ্য । ইউনিভার্সিটি এর অনেক কন্টেস্ট এ C এবং C++ছাড়াও Java ল্যাঙ্গুয়েজ ব্যবহার করা হয়ে থাকে। প্রোগ্রামিং এর অলিম্পিক হিসেবে খ্যাত ACM ICPC তে আঞ্চলিক পর্যায় পর্যন্ত C/C++ গ্রহণ করা হলেও ওয়ার্ল্ড ফাইনালে  C/C++ এর পাশাপাশি  Java গ্রহণযোগ্য।

প্রশ্ন কাঠামোঃ

কন্টেস্ট এর ধরন অনুসারে একটি কন্টেস্টে প্রশ্নের সংখ্যা থেকে ১৫ পর্যন্ত হতে পারে। স্কুল থেকে কলেজ পর্যায় পর্যন্ত অনুষ্ঠিত কন্টেস্ট  এ ৫-১০ টি প্রোগ্রামিং সমস্যা থাকে। ইন্টার স্কুল/ কলেজ বিভিন্ন কন্টেস্ট এবং আমাদের জাতীয় পর্যায়ে সবচেয়ে বড় প্রোগ্রামিং প্রতিযোগিতা NHSPC (National High School Programming Contest) এর ২০১৬ সালের কন্টেস্ট এ ছিল টি প্রোগ্রামিং প্রবলেম।

Aviary Photo_131114036954249227.png

NHSPC ২০১৬ এর প্রশ্নের একাংশ। পুরো প্রশ্ন দেখতে হলে CodeMarshal এ লগ ইন করো।

.
একটি প্রোগ্রামিং প্রবলেম এর তিনটি অংশ থাকে। প্রথম অংশে উদ্দীপক আকারে কী উদ্দেশে প্রোগ্রাম লিখতে হবে তা লেখা থাকে। এই পার্টটি প্রশ্নের অনেক গুরুত্বপূর্ণ। কারণ এই অংশ তা না বুঝলে অনেক ক্ষেত্রেই বাকি অংশগুলো আর বুঝা যায় না। দ্বিতীয় অংশে স্যাম্পল ইনপুট দেওয়া থাকে। প্রোগ্রামটি কি ধরনের বা কি ভাবে ইনপুট গ্রহণ করবে তা বর্ণনা করা তাকে। তৃতীয়  অংশে থাকে স্যাম্পল অাউটপুট। স্যাম্পল ইনপুট প্রোগ্রাম টিতে দিলে কি ধরনের আউটপুট আসবে তা এখানে লেখা থাকবে। অনেক সময় দ্বিতীয় অংশ অর্থাৎ ইনপুট অংশটি নাও থাকতে পারে।

পয়েন্ট সিস্টেমঃ

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

Aviary Photo_131117510015846203

Aviary Photo_131117510329463574

জনপ্রিয় কোডিং সাইট CodeChef এর একটি সমস্যা ।

সমাধান মূল্যায়নঃ

প্রতিযোগীদের সমাধান মূল্যায়ন করে থাকে Online Judge. এ নিয়ে আরও বিস্তারিত আলোচনা থাকবে প্রোগ্রামিং কন্টেস্ট সিরিজ এর অন্তর্গত পরবর্তী ব্লগ এ।

বিজয়ী নির্ধারণঃ

যে প্রতিযোগী সর্বাধিক কম সময়ে সবচেয়ে বেশি সমস্যা সমাধান করতে পারবে সেই বিজয়ী হবে। প্রতিটি কন্টেস্ট এই প্রতিযোগীদের জন্য একটি ক্রম-তালিকা থাকে। ক্রম তালিকায় ক্রম নির্ধারিত হয় যেসব বিষয়ের ওপর-
    ১। কতটি সমস্যা সমাধান করা হয়েছে। 
    ২। সমাধান করতে কত সময় লেগেছে।
    ৩। কত বার চেষ্টা করার পর সমস্যাটি সমাধান হয়েছে। 

দুইজন প্রতিযোগী যদি সমান সংখ্যক সমস্যা সমাধান করে থাকে তাহলে কে সবচেয়ে কম সময়ে করতে পেরেছে তা দেখা হয়। সময় সমান থাকলে কে কত কম প্রচেষ্টায় করতে সক্ষম হয়েছে তা দেখা হয়।

Aviary Photo_131117521121164944.png

ক্রম তালিকার একটি উদাহরন।

আশা করি প্রোগ্রামিং কন্টেস্ট এর নিয়মনীতি ও পয়েন্ট সিস্টেম তোমাদের কাছে পরিষ্কার । যেকোনো প্রশ্ন করতে পারো কমেন্ট সেকশনে। তোমাদের প্রোগ্রামিং যাত্রা সফল হোক…

11 thoughts on “প্রোগ্রামিং কন্টেস্টঃ রুলস্‌ অ্যান্ড পয়েন্ট সিস্টেম

  1. there’s a few misinformation in the blog, the biggest programming contest in school level in Bangladesh is BdIO (Bangladesh Informatics Olympiad) not NHSPC, and also you missed the fact that python is allowed in ICPC from 2016.

    Liked by 2 people

  2. Python is added only 1~2 months, and it’ll be allowed from 2017 ICPC, so no wonder why wikipedia hasn’t updated it till now. this reference is enough I guess: http://codeforces.com/blog/entry/44899 . And the fact that BdIO not being held is entirely incorrect, BdIO has been sending a team in IOI (International Olympiad in Informatics) from around 2005 every single year, based on the olympiad performance. BdIO 2016 was held in ECE Building BUET and as far as I remember it had greater number of participants than NHSPC, the reason that NHSPC seems more popular is the quiz factor, if you query the participants, you’ll see that around 90% of them are here for quizzing, only a few of them has anything to do with programming

    Like

  3. Yes, I know BdIO sends team every year. Two of the national team members are even my classmate. But it doesn’t just get the same exposure as NHSPC. The bdIO should focus on that I guess. And the I’ve given the same link of codeforces as you have. The thing is, it’s not that much accepted though it is granted by the commetee. It’s a controversial matter I’ve to say.

    Like

  4. Agreed, that NHSPC has greater popularity, that’s why it would be better that you also mention BdIO, so that it comes to the spotlight. I am also going to IOI ’16 this year so I know that Nirjhor vai is your classmate

    Liked by 1 person

  5. Pingback: প্রোগ্রামিং কি কেন এবং কিভাবে? | Ktech

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s