প্রোগ্রাম পরিকল্পনা এবং বাস্তবায়নের আলোচনার শুরুতে আসেন আমরা একটু গল্প করা যাক।
মনে করুন আপনি আপনার এলাকার একজন সম্মানিত ব্যাক্তি। আপনাকে এলাকার লোকজন এসে প্রস্তাব করল যে এলাকার সবাইকে নিয়ে একটা আনন্দ অনুষ্ঠানের আয়োজন করার জন্য। আপনিও রাজি হয়ে গেলেন। এখন আপনি চিন্তা করছেন কিভাবে সবাইকে আনন্দ দেয়া যায়? সংগীত অনুষ্ঠান, পুতুল নাচ না নাটক কোনটি আয়োজন করলে সবাই বেশি খুশি হবে? শেষ পর্যন্ত আপনি সিদ্ধান্ত নিলেন, এলাকাতে একটা পুতুল নাচের অনুষ্ঠান আয়োজন করলে শিশু থেকে শুরু করে সবাই আনন্দ পাবে। এখন আপনি আপনার পরিকল্পনা বাস্তবায়নের জন্য প্রয়োজনীয় পদক্ষেপ একটা কাগজে নোট করলেন যেমন কিভাবে স্টেজ সাজাতে হবে, পুতুল নাচের দলকে খবর দিতে হবে, অতিথিদের আমন্ত্রণ জানাতে হবে, ইত্যাদি ইত্যাদি। এর পর কাজের ক্রমানুসারে সাজিয়ে একটা নকশা তৈরি করলেন কিভাবে সব কাজ সম্পাদিত হবে এবং কোথায় হবে। তারপর আপনার সহযোগীকে দায়িক্ত দিলেন আপনার নকশা অনুযায়ী পরিকল্পনা বাস্তবায়ন করার জন্য। আপনার সহযোগী পরিকল্পনা বাস্তবায়ন করার জন্য প্রয়োজনীয় পদক্ষেপ গ্রহণ করল। এর পর পরিকল্পনা মাফিক কাজ হয়েছে কিনা তা পর্যবেক্ষণের জন্য প্রয়োজনীয় ব্যবস্থা গ্রহণ করা হল। দেখা গেল সে বেশ কিছু ভুল করেছে, যেমন পুতুল নাচের জন্য স্টেজ তৈরি করা হয়েছে কিন্তু স্টেজের লাইট গুলো কাজ করছে না, সাউন্ড সিস্টেম ঠিকমত কাজ করছে না। আপনার সহযোগী আবার প্রয়োজনীয় পদক্ষেপ নিয়ে ভুলগুলো সংসোধন করলেন। সবশেষে পুতুল নাচের ১ম দিনের অনুষ্ঠান প্রদর্শিত হল। অনুষ্ঠানটির বিবরণ উপস্থাপন করে একটা ডকুমেন্ট তৈরি করা হল। যেখানে অনুষ্ঠানটি আয়োজন থেকে শুরু করে অনুষ্ঠান সম্পর্কিত বিবরণ,উপকারিতা ইত্যাদি লিপিবদ্ধ করা হল যাতে করে পরবর্তীতে আরো সুন্দর অনুষ্ঠান আয়োজন করা যায়। সবাই অনুষ্ঠানটি দেখে বেশ আনন্দ পেল। কেউ কেউ আবার কিছু ট্রুটি সম্পর্কে বলল। আয়োজোক কমিটি দোষ-ট্রুটি বিশ্লেষণ করে পরবর্তীদিনের অনুষ্ঠানে কিছু পরিবর্তন আনলেন।এভাবে প্রায় সপ্তাহব্যাপী অনন্দ অনুষ্ঠান চলল এবং শেষের দিনের অনুষ্ঠান সবাই প্রানভরে উপভোগ করলেন। মোটামটি দোষট্রুটি মুক্ত একটা সমাপ্তি অনুষ্ঠান করতে পেরে আয়োযোক হিসেবে আপনি আপনার এলাকার লোকজনের কাছ থেকে বেশ প্রশংসা অর্জন করলেন।
প্রোগ্রাম পরিকল্পনা এবং বাস্তবায়নের ধাপ সমূহ
আপনি প্রোগ্রামিং সি ব্যবহার করে একটা সুনির্দিষ্ট সমস্যা সমাধানের জন্য প্রোগ্রাম রচনা করবেন। এজন্য আপনাকে কিছু পদক্ষেপ গ্রহণ করতে হবে। আর পদক্ষেপ সমূহ হচ্ছে,
আলোচনা পর্যালোচনা
সমস্যা চিহ্নিত করণ
আপনাকে এলাকার লোকজন এসে প্রস্তাব করল যে এলাকার সবাইকে নিয়ে একটা আনন্দ অনুষ্ঠানের আয়োজন করার জন্য। এক্ষেত্রে আনন্দ অনুষ্ঠানের আয়োজন করার ব্যপারটি সমস্যা হিসেবে চিহ্নিত হয়েছে।
ধরা যাক আপনাকে সকল ছাত্রের সকল বিষয়ের নাম্বার হিসেব করে পরীক্ষার ফলাফল গ্রেডিং পদ্ধতিতে প্রদর্শন করার জন্য একটা প্রোগ্রাম তৈরির জন্য বলা হল। এটা একটা সমস্যা।
সমস্যা বিশ্লেষণ
আপনি রাজি হয়ে চিন্তা করলেন কিভাবে সবাইকে আনন্দ দেয়া যায়? সংগীত অনুষ্ঠান, পুতুল নাচ না নাটক কোনটি আয়োজন করলে সবাই বেশি খুশি হবে? শেষ পর্যন্ত আপনি পুতুল নাচের অনুষ্ঠান আয়োজন করার সিদ্ধান্ত গ্রহণ করলেন। এটা হচ্ছে সমস্যা বিশ্লেষণ।
আপনি পরীক্ষার ফলাফল গ্রেডিং পদ্ধতিতে প্রদর্শন করার জন্য প্রোগ্রামটি তৈরি করবেন, এখন এর জন্য কি ধরণের গানিতিক সমস্যা প্রগ্রাম ব্যবহার করে সমাধান করতে হবে, প্রোগ্রামের ইনপুট আউটপুট কেমন হবে, কি ধরণের ডাটা ব্যবহার করতে হবে ইত্যাদি হচ্ছে সমস্যা বিশ্লেষণ। এছাড়া একটা সমস্যা সমাধানের একাধিক পথ থাকতে পারে এর মধ্যে থেকে একটি সর্বোত্তম পদ্ধতি নির্ণয় করাটা সমস্যা বিশ্লেষণের একটা গুরুত্বপূর্ণ কাজ। মনে করুন আপনাকে পরীক্ষার
সমস্যা সমাধানের পরিকল্পনা নিপিবদ্ধকরণ বা এলগরিদম
আপনি আপনার পরিকল্পনা বাস্তবায়নের জন্য প্রয়োজনীয় পদক্ষেপ একটা কাগজে নোট করলেন।
প্রোগ্রামিং সি বা যে কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার করে কোন সমস্যা সমাধানের এই পদক্ষেপকে এলগরিদম বলে। এটা সমস্যা সমাধানের সবচেয়ে গুরুত্বপূর্ণ কাজ। এলগরিদম তৈরির কিছু নিয়ম আছে, যেমন
পরিকল্পনা বাস্তবায়নের পদক্ষেপ সমূহ কিছু প্রতীক ব্যবহার করে নকশা তৈরি করা বা ফ্লোচার্ট তৈরি করণ
কাজের ক্রমানুসারে সাজিয়ে একটা নকশা তৈরি করলেন কিভাবে সব কাজ সম্পাদিত হবে এবং কোথায় হবে।
প্রোগ্রামিং সি বা যে কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার করে কোন সমস্যা সমাধানের পরিকল্পনা তথা এলগরিদমকে প্রতীক বা কিছু জ্যামিতিক কাঠামো দ্বারা উপস্থাপনার পদ্ধতিকে ফ্লোচার্ট বলে। ফ্লোচার্ট তৈরিতে বেশ কিছু জ্যামিতিক সিম্বল ব্যবহার করা হয়।
প্রোগ্রাম কোডিং
আপনার সহযোগীকে দায়িক্ত দিলেন আপনার নকশা অনুযায়ী পরিকল্পনা বাস্তবায়ন করার জন্য।
আপনার সহযোগী পরিকল্পনা বাস্তবায়ন করার জন্য প্রয়োজনীয় পদক্ষেপ গ্রহণ করল। প্রোগ্রামিং সি বা যে কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার করে কোন সমস্যা সমাধানের ক্ষেত্রে এলগরিদম এবং ফ্লোচার্ট তৈরির পর একজন কোডার প্রয়োজনীয় এডিটর ব্যবহার করে প্রোগ্রামের কোডিং করেন। এক্ষেত্রে যিনি এলগরিদম এবং ফ্লোচার্ট তৈরি করেন তিনি কোডিং নাও করতে পারেন, অন্যকেউ যিনি কোন একটা নির্দিষ্ট ল্যাঙ্গুয়েজে অভিজ্ঞ তিনি কোডিং করতে পারেন।
প্রোগ্রাম কম্পাইলিং
প্রোগ্রাম কম্পাইলিং বিষয়টা বাস্তব উদাহরণের সাথে মেলানো কঠিন। প্রোগ্রামিং সি ব্যবহার করে যখন প্রোগ্রাম লেখা হয়, তখন একজন কোডার ইংরেজি ভাষা ব্যবহার করেন । কিন্তু আমাদের কম্পিউটার খুবই বেকা এবং ব্রেনও খুব দূর্বল শুধুমাত্র 0 এবং 1 ছাড়া কিছু বোঝে না আর এই দুইটা জিনিস ছাড়া কিছু মনেও রাখতে পারেনা। তাই এই বোকা কম্পিউটারকে মানুষের ভাষা বা প্রোগ্রামিং সির ভাষা বোঝানোর জন্য ইংরেজিতে প্রোগ্রামিং সি এর নিয়ম অনুসরণ করে লেখা প্রোগ্রামকে মেশিন কোড তথা 0 এবং 1 দ্বারা গঠিত প্রগ্রামে রূপান্তর করা হয়, একেই বলা হয় কম্পাইলিং। আমাদের কম্পিউটার বোকা এবং দূর্বল ব্রেনের হলেও প্রচন্ড প্রভুভক্ত, তাই আমরা ইচ্ছা মত কম্পিউটারকে ব্যবহার করতে পারি, আমরা যত জটিল কাজই করি না কেন ও সারা জীবন 0 আর 1 নিয়েই আছে, বুঝতেই পারে না যে ওকে ব্যবহার করে সভ্যতা এবং সমাজ কত দ্রুত এগিয়ে যাচ্ছে।
প্রোগ্রাম ডিবাগিং
পরিকল্পনা মাফিক কাজ হয়েছে কিনা তা পর্যবেক্ষণের জন্য প্রয়োজনীয় ব্যবস্থা গ্রহণ করা হল। একে প্রোগ্রামের ভাষায় বলা হয় ডিবাগিং । অর্থাৎ প্রোগ্রামিং সি ব্যবহার করে লেখা প্রোগ্রামে কোন ভুল ট্রুটি আছে কিনা এবং সঠিক নিয়ম অনুসরণ করা হয়েছে কিনা তা খুজে বের করাই হচ্ছে ডিবাগিং। ডিবাগিং এর মাধ্যমে যে সকল ভুল ট্রুটি ধরা পরে তা ঠিক করে আবার কম্পাইল করে দেখা হয়। যখন কোন ভুলট্রুটি থাকে না তখন প্রোগ্রামটি রান করার উপযোগি হয়।
প্রোগ্রাম রান
আপনার সহযোগী আবার প্রয়োজনীয় পদক্ষেপ নিয়ে ভুলগুলো সংসোধন করলেন। সবশেষে পুতুল নাচের ১ম দিনের অনুষ্ঠান প্রদর্শিত হল।
যখন কোন ভুলট্রুটি থাকে না তখন প্রোগ্রামটি সঠিকভাবে কম্পাইল করা সম্পন্ন হয় তখন প্রোগ্রামটি রান হয়। এ সময় মূলত আমরা প্রোগ্রামের .exe এক্সটেনশন যুক্ত প্রোগ্রামকে রান করি। যে ফাইলটা ব্যবহারকারীকে সরাসরি প্রদান করা হয়।
ডকুমেন্টেশন তৈরি
অনুষ্ঠানটির বিবরণ উপস্থাপন করে একটা ডকুমেন্ট তৈরি করা হল। যেখানে অনুষ্ঠানটি আয়োজন থেকে শুরু করে অনুষ্ঠান সম্পর্কিত বিবরণ,উপকারিতা ইত্যাদি লিপিবদ্ধ করা হল যাতে করে পরবর্তীতে আরো সুন্দর অনুষ্ঠান আয়োজন করা যায়।
প্রোগ্রামিং সি বা অন্য যে কোন প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার করে প্রোগ্রাম রচনা করা হোক না কেন । প্রোগ্রামটি কি উদ্দেশ্যে তৈরি করা হয়েছে, কি পদ্ধতি ব্যবহার করা হয়েছে, ব্যবহার প্রণালী ইত্যাদির সমন্বয়ে একটা ডকুমেন্ট তৈরি করা হয়। যাতে করে পরবর্তী আপডেটেড ভার্সন তৈরি করতে সুবিধা হয় এবং ব্যবহারকারীরাও সুবিধা পায়।
প্রোগ্রাম মেইনটেইনেন্স
সবাই অনুষ্ঠানটি দেখে বেশ আনন্দ পেল। কেউ কেউ আবার কিছু ট্রুটি সম্পর্কে বলল। আয়োজোক কমিটি দোষ-ট্রুটি বিশ্লেষণ করে পরবর্তীদিনের অনুষ্ঠানে কিছু পরিবর্তন আনলেন।
প্রোগ্রামে দুই ধরণের ভুল হতে পারে একটা হচ্ছে প্রোগ্রামিং ল্যাঙ্গুগুয়েজের ব্যাকরণগত ট্রুটি যা ডিবাগিং এর মাধ্যমে সমাধান করা যায়, আর অন্যটি হচ্ছে ফাংশনাল ট্রুটি বা ব্যবহারিক ট্রুটি যা ডিবাগিং করে ধরা পরে না। যেমন সমস্যা বিশ্লেষণের সময় অনেক বিষয় বিবেচিত না হতে পারে যা পরবর্তীতে ব্যবহারের সময় ধরা পরে, এছাড়া ব্যবহারকারীরা যখন প্রোগ্রামটি ব্যবহার করে তারা ব্যবহার করে তাতে আরো কিছু সুযোগ সুবিধা যুক্ত করার প্রস্তাব করতে পারেন এগুলো বিচার বিশ্লেষণ করে পরবর্তী আপডেটেড ভার্সন তৈরি করাই হচ্ছে মেইনটেইনেন্স।
………………………………………………………………………………..
জ্ঞন বিজ্ঞানের সংস্পর্শে আলোকিত একটা সুন্দর সমৃদ্ধ পৃথিবীর প্রত্যাশায় আজ এখানেই শেষ করছি। সকলের জন্য শুভকামনা রইল।
পোস্টটির মূল লেখক টিউটোহোস্ট টিম সদস্য অসিম কুমার
পোস্টটি ইতোপূর্বে এখানে প্রকাশিত
আমি টিউটোহোস্ট। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর 5 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 162 টি টিউন ও 69 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 1 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
টিউটোহোস্ট বাংলাদেশের একটি জনপ্রিয় ওয়েব হোস্টিং সেবাদানকারী প্রতিষ্ঠান। যুক্তরাস্ট্র এবং যুক্তরাজ্য ভিত্তিক দ্রুতগতির বেশ কিছু ওয়েব সারভারে গুরুত্বপূর্ণ তথ্যগুলো নিরাপদে সংরক্ষণ করা হয়। আমরা এদেশে ২৪ ঘন্টা এবং বছরে ৩৬৫ দিন অনলাইন এবং ফোন সাপোর্টের ব্যবস্থা রেখেছি। বাংলেদশসহ অনেক দেশের জনপ্রিয় ওয়েবসাইট আমাদের সারভার ব্যবহার করছে।
thanks vai. khub easy vabe bhujhiechen.story n flowchart deway clear howa geche. c er upor onekei tune korche but a to z lastly keu e compltly sesh koreni.asha kori apni sesh korben.