Category Archives: সফটওয়্যার ইঞ্জিনিয়ার

সফটওয়্যার ইঞ্জিনিয়ার

প্রজেক্ট ম্যানেজারের পেশাগত দায়িত্ব

To read this article in English please click this link

খুব সাধারণভাবে বলতে গেলে, যেকোনো ইস্যুতে সরাসরি, নৈতিক এবং আইনানুগ হস্তক্ষেপ করা। এক্ষেত্রে অবশ্যই খোলামেলা এবং অগ্রগামী হওন। যেকোনো সমস্যা এড়িয়ে না গিয়ে দ্রুত এবং সুন্দরভাবে সমাধান করুন। পেশাগত দায়িত্ব দুটি বিষয়ের উপর নির্ভর করে। যথা:-
১. পেশার প্রতি দায়িত্ব
২. গ্রাহক এবং আমজনতার প্রতি দায়িত্ব।

১. পেশার প্রতি দায়িত্ব:
১. সকল প্রাতিষ্ঠানিক নিয়মনীতি মেনে চলা
২. কাজের উন্নয়ন সাধন করা।

২. গ্রাহক এবং আমজনতার প্রতি দায়িত্ব:
১. গ্রাহকদের কাছে সত্য এবং সঠিক তথ্য উপস্থাপন করা
২. সন্তুষ্টির সাথে এবং সঠিকভাবে সেবামুলক কাজগুলো সম্পাদন করা।
৩. প্রতিষ্ঠানকে আত্মবিশ্বাস প্রদান করে এমন তথ্যসমূহ এবং স্পর্শকাতর বিষয়গুলির প্রতি যথাযথ সম্মান প্রদর্শন পূর্বক রক্ষণাবেক্ষণ করা।
৪. কোন কাজের প্রতি আগ্রহের কমতি থাকলে তা যেন গ্রাহকদের উপর বিরূপ প্রভাব না ফেলে সেদিকে খেয়াল রাখা।
৫. ঘুষ গ্রহণ না করা।

পেশাগত দায়িত্ব পাঁচভাগে ভাগ করা যেতে পারে। যেমনঃ-
১. সততা এবং পেশাদারিত্ব
২. অভিজ্ঞতা অর্জন
৩. ব্যক্তিগত যোগ্যতা অর্জন
৪. বিনিয়োগকারীদের আগ্রহের সমন্বয় সাধন
৫. নিজ দল এবং বিনিয়োগকারীদের সাথে একত্রে কাজ করা।

১. সততা এবং পেশাদারিত্ব: সংক্ষেপে বলতে গেলে সবসময় ঠিক কাজটি করুন আর সব নিয়ম মেনে চলুন। বিশেষ করে যে শহরে বা দেশে কাজ করছেন সেই অঞ্চলের নিয়ম কানুনের সাথে নিজেকে মানিয়ে নিন। যদি প্রজেক্টটি অন্য দেশের সাথে সংশ্লিষ্ট হয় তবে সেই দেশের নিয়মনীতির সাথেও আপোষ করতে হতে পারে। এজন্য কাজ শুরু করার পূর্বে সেই দেশের আইন কানুন সম্পর্কে খোজ নেয়াটা জরুরী। প্রতিষ্ঠানের নীতিসমূহ মেনে চলুন আর সবসময় উঁচু স্তরের মানবীয় গুণাবলী নিজের মধ্যে ধরে রাখুন।
পেশাদারিত্ব: প্রজেক্টের জন্য প্রয়োজনীয় সকল কাজ বাস্তবায়ন করুন। PMI এরকম প্রায় ৪৪টি কাজের পরামর্শ দেয়। এসব করলে সময়, খরচ এবং ঝুঁকি সবই হ্রাস পায় এবং কর্মক্ষমতা বৃদ্ধি পায়।
সম্মান: অন্যকে সম্মান করুন। PMI মিশ্র সংস্কৃতির উপর জোরালো পরামর্শ দেয় যাতে অন্যের সংস্কৃতিকে সম্মান করা হয়। ক্লায়েন্টের তথ্য যথাযথভাবে সংরক্ষণ করাও গুরুত্বপূর্ণ।

২. অভিজ্ঞতা অর্জন:
- সহকর্মী এবং কর্মক্ষেত্রে অন্যান্য পেশাদার কর্মীদের সাথে নিজের অভিজ্ঞতা শেয়ার করুন।
- PMI শিক্ষাদান, প্রকাশনা এবং লেখালেখির মাধ্যমে প্রজেক্টের জন্য দক্ষ কর্মী তৈরি করাকে উৎসাহিত করে।

৩. ব্যক্তিগত যোগ্যতা বৃদ্ধি:
- PMI কর্মক্ষেত্র থেকে অনবরত জ্ঞান অর্জন করে ব্যক্তিগত উন্নয়নকে উৎসাহিত করে।
- আপনার পেশাগত দুর্বলতা সম্পর্কে জানুন এবং সেগুলি দূর করার চেষ্টা করুন।

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

৫. নিজ দল এবং বিনিয়োগকারীদের সাথে একত্রে কাজ করা:
- আলোচনা করুন মুক্তভাবে।
- সংস্কৃতি-গত ব্যবধান সম্মানের সাথে দেখুন।
- অলসতা এবং অবহেলা সহ্য করবেন না।

আর্থ সামাজিক এবং পরিবেশগত স্থিতিশীলতা: যদি প্রজেক্টের কাজে কোন সামাজিক বা পরিবেশগত সমস্যার সৃষ্টি হয় তবে আগেই প্রকাশ করে ক্ষয় ক্ষতি যথাসম্ভব কমানোর চেষ্টা করা উচিৎ। প্রয়োজনে পদত্যাগ করতেও পিছপা হবেন না।

প্রোজেক্ট শুরুর নানা দিক

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

কিভাবে একটি প্রোজেক্ট নির্বাচিত করা হয়?
একটি নির্দিষ্ট প্রোজেক্টে বিভিন্ন ধরনের সুবিধা থাকতে পারে। আবার একটি কোম্পানির একাধিক প্রোজেক্টও থাকতে পারে এবং এর থেকে তাদের যেকোনো একটি নির্বাচিত করতে হয়। কিন্তু কিভাবে?

১. স্কোরিং মডেলঃ অপেক্ষাকৃত ভাল বা লাভজনক প্রকল্পগুলি চিহ্নিত করে এক ছকে সাজিয়ে নিন। এবারে বিভিন্ন দিক খেয়াল রেখে এগুলির যথাযথ মূল্যায়ন করে প্রতিষ্ঠানের জন্য সর্বোত্তম প্রকল্পটি বেছে নিন।

২. লাভ এবং সাশ্রয়ঃ এক্ষেত্রে খরচ এবং লাভের তুলনামূলক বিশ্লেষণ করে সিদ্ধান্ত নিন। অবশ্যই স্বল্প মেয়াদী ও দীর্ঘমেয়াদী প্রকল্পের জন্য আলাদা বিশ্লেষণ করুন।

৩. অর্থনৈতিক অবকাঠামোঃ এক্ষেত্রে নিম্নোক্ত বিষয়গুলি মাথায় রাখুন
লাভ এবং ব্যয়ের অনুপাত
নগদ অর্থের যোগান
টাকার বর্তমান মূল্য এবং সার্বিক মূল্য
সুবিধার জন্য প্রয়োজনীয় ব্যয়
নগদ অর্থের কাঙ্ক্ষিত মুনাফা অর্জনের সম্ভাবনা
পুনরায় বিনিয়োগ

আপনার প্রজেক্ট কি সফল হবে?
অনেক গাণিতিক পদ্ধতি আছে যার মাধ্যমে কোন প্রজেক্টের সফলতা সম্পর্কে মোটামুটি আন্দাজ করা যেতে পারে।

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

প্রোজেক্টকে কিভাবে নিয়মের গণ্ডিতে আবদ্ধ করবেন?
একটি চার্ট তৈরি করুন যা ব্যবসায়িক প্রয়োজন এবং এর ফলাফল সম্পর্কে বিস্তারিত তথ্য উপস্থাপন করে। এটি শুধুমাত্র একটি ডকুমেন্ট যা প্রোজেক্ট অনুমোদনের পূর্বে যাচাই করা হয়।

চার্টারে যেসব তথ্য থাকবেঃ
কনট্রাক্ট
কাজের বিবরণ
ব্যবসায়িক পরিবেশ
প্রাতিষ্ঠানিক প্রক্রিয়া

চার্টার প্রণয়নে যা দরকারঃ
প্রজেক্ট নির্বাচন পদ্ধতি
প্রজেক্ট ব্যবস্থাপনা পদ্ধতি
তথ্য ব্যবস্থাপনা
বিশেষজ্ঞদের মূল্যায়ন

চার্টার থেকে যেসব তথ্য পাওয়া যেতে পারেঃ
প্রজেক্টের নির্ভুলতা
প্রজেক্টের বর্ণনা
প্রজেক্টের প্রয়োজনীয় সরঞ্জাম
অনুমান
উঁচু স্তরের শিডিউল
ব্যয় পরিকল্পনা
প্রস্তাবিত ব্যবস্থাপক

পূর্ব প্রস্তুতিমুলক কর্মক্ষেত্র তৈরির ঘোষণাঃ
প্রোজেক্ট চার্টার অনুমোদনের পর একটি উপযুক্ত কর্মক্ষেত্রের জন্য বিবৃতির প্রয়োজন দেখা দিতে পারে। এটি বিনিয়োগকারীদের সাথে আলোচনা করে সমাধান করা যেতে পারে।

বিবৃতিতে যা থাকতে হবেঃ চার্টারে যেসব বিষয় রাখতে হবে সেই একই বিষয়গুলি এখানেও রাখতে হবে।

যন্ত্রপাতি এবং কলাকৈশলঃ
ব্যবস্থাপনা পদ্ধতি
তথ্য ব্যবস্থাপনা

বিবৃতির তালিকাঃ
লক্ষ্যসমূহ
উৎপাদিত পণ্য
উৎপাদিত পণ্যের চাহিদা
প্রোজেক্টের পরিসীমা
প্রাথমিক দুর্ঘটনা
শিডিউল
টিম
ঝুঁকি
ব্যয় নিরূপণ

Recursive Function বিষয়ক কিছু কথা : On Recursive Function

আধুনিক সকল প্রোগ্রামিং ল্যাঙ্গুয়েজ এই Recursive Function কে ব্যাবহার করে অনেক জটিল সমস্যা সমাধান করা সম্ভব। যদিও সঠিক ভাবে না বোঝার কারণ এ অনেকেই এই পদ্ধতি ব্যাবহার করেন না। Recursive Function অর্থ একটি function যখন নিজের ভিতর তার নিজেকে call করে। এই প্রক্রিয়া ততক্ষন চলতে থাকে, যতক্ষণ function টি নির্দিষ্ট কোন parameter এর জন্য কোন সংখ্যা return না করে। একটি উদাহরন দিয়ে বিষয়টি পরিষ্কার ভাবে দেখা যাক।

int factorial ( int i ) //line 1
{ //line 2
if ( i == 0) //line 3
return 1; //line 4
return i * factorial ( i - 1); //line 5
}
//line 6
এখানে factorial ( i ) function টি তার নিজের মান হিসাব করার জন্য factorial ( i-1) কে কল করেছে। যেহেতু টি নিজের ভিতর নিজেকে ই একটি ভিন্ন parameter দিয়ে কল করেছে, তাই এটি একটি recursive function। ধরা যাক আমরা factorial(4)কে কল করছি। এই ক্ষেত্রে এটি factorial(3) কে কল করবে। যা আবার factorial(2) কে কল করবে। এই প্রক্রিয়া ততক্ষন চলবে যতক্ষণ factorial(0)কল না হয়, যা ১ return করবে। যা এরপর বিপরীত প্রক্রিয়ায় factorial(1) হিসাব করতে ব্যাবহার করা হবে। এই প্রক্রিয়া চলবে যতক্ষণ factorial(4) এর জন্য একটি সুনির্দিষ্ট মান না আসে।
factorial(0)=1, factorial(1)=1*1, factorial(2)=2*1*1, factorial(3)=3*2*1*1, factorial(4)=4*3*2*1*1=24

এই প্রক্রিয়া তে Fibonacci Series, Tower of Hanoi জাতীয় আরও জটিল সমস্যা অল্প কয়েক লাইন প্রোগ্রাম ব্যাবহার করে সহজে সমাধান করা সম্ভব।

প্রোজেক্ট ম্যানেজমেন্টঃ সংক্ষিপ্ত পরিচিতি

প্রোজেক্ট বলতে কি বোঝায়?
প্রোজেক্ট বলতে এমন কর্মকাণ্ডকে বোঝায় যাতে বিভিন্ন পরিকল্পনা ও প্রক্রিয়ার মধ্য দিয়ে কোন পণ্য উৎপাদন করা হয় কিংবা কোন সেবা প্রদান করা হয় অথবা যেকোনো ধরনের ফলাফল প্রদান করা হয়। পণ্য বলতে কোন ভৌত বস্তু যেমন একটি টেলিভিশনকে বোঝায়। সেবা বলতে ইন্টারনেট কিংবা একটি ওয়েবসাইট আর ফলাফল বলতে কোন রিসার্চ প্রোজেক্টের জ্ঞান ভিত্তিক ফসল যেমন অ্যনালাইটিক্যাল মডেল বা কোন কিছুর প্রমাণকে বোঝানো হচ্ছে। প্রোজেক্ট একটি ধারাবাহিক প্রক্রিয়া যাতে কোন ধারণাকে ভিত্তি করে কোন ফলাফল আশা করা হয় আর সেই ফলাফল প্রাপ্তির উদ্দেশ্যে নানা পরিকল্পনা এঁটে তা বিভিন্ন প্রক্রিয়ায় বাস্তবায়ন করা হয়। এছাড়া এতে নানামুখি তদারকি ও নিয়ন্ত্রনের ব্যবস্থা থাকে যাতে প্রত্যাশিত ফলাফল সময় মত পাওয়া যায়।

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

প্রোজেক্টের বিভিন্ন ধাপ:
১. সুচনাঃ এই ধাপে প্রোজেক্টের কাজ আরম্ভ করা হয়।
২. পরিকল্পনাঃ এই ধাপে লক্ষ্য কিভাবে অর্জন করা হবে তার পরিকল্পনা করা হয়। আর এই পরিকল্পনা অবশ্যই বাস্তবায়ন ও তদারকির সাথে সামঞ্জস্য রেখে করতে হবে।
৩. বাস্তবায়নঃ এই ধাপে লক্ষ্য অর্জনে পরিকল্পনার বাস্তবায়ন করা হয়।
৪. তদারকিঃ প্রোজেক্টের অগ্রগতি তদারকি করাই এ ধাপের প্রধান কাজ। এছাড়া অগ্রগতি অনুযায়ী পরিকল্পনার পরিবর্তন এমনকি বাস্তবায়নেও পরিবর্তন আনতে হয়।
৫. সমাপ্তিঃ লক্ষ্য অর্জিত হওয়ার পর এই ধাপে প্রোজেক্ট সমাপ্ত হয়।
প্রোজেক্ট পরিচালনায় প্রয়োজনীয় জ্ঞানের ক্ষেত্রসমুহঃ
প্রতিটি প্রোজেক্টের লক্ষ্য অর্জনে কিছু বিশেষ জ্ঞান ও দক্ষতার প্রয়োজন হয়। একটি প্রোজেক্টে বিভিন্ন প্রক্রিয়া অনুসরণ করা হয়। প্রতিটি প্রক্রিয়াতেই পুরো প্রজেক্টের একটি অংশকে লক্ষ্য হিসেবে নেয়া হয়। এতে সাধারণত কাঁচামাল প্রয়োগ করে তারপর যন্ত্রপাতি ও কিছু কৌশল প্রয়োগ করে কোন কিছু উৎপাদন করা হয়। এজন্য প্রতিটি প্রক্রিয়া বাস্তবায়ন করতে সেই ক্ষেত্রের জ্ঞান থাকা আবশ্যক। এরকম সাধার ক্ষেত্রগুলি হচ্ছেঃ
১. সুযোগ সুবিধার উপযুক্ত প্রয়োগ
২. সময় ব্যবস্থাপনা
৩. ব্যায় ব্যবস্থাপনা
৪. মানব সম্পদ উন্নয়ন
৫. উৎপাদন পর্যালোচনা
৬. ঝুকি ব্যবস্থাপনা
৭. মান নিয়ন্ত্রন
৮. সমন্বয় তৈরিকরন
৯. যোগাযোগ ব্যবস্থাপনা
প্রতিষ্ঠান ধরন অনুযায়ী যেভাবে প্রোজেক্ট প্রভাবিত হয়ঃ
১. কাজ ভিত্তিক প্রতিষ্ঠানঃ
এধরনের প্রতিষ্ঠানে প্রতিটি আলাদা কাজের জন্য আলাদা ডিপার্টমেন্টে বিভক্ত থাকে। প্রজেক্টের কাজসমুহ সাধারণত এই ধরনের আলাদা স্বাধীন ইউনিটগুলোর দ্বারাই সম্পাদিত হয়। যদি অন্য কোন ইউনিটের সাহায্য প্রয়োজন হয় তবে ম্যানেজারের মাধ্যমে তার ব্যবস্থা করা হয়। সাধারণত প্রতি ইউনিটে একজন করে ম্যানেজার থাকেন। তবে ইউনিটের আকার বেশি বড় হলে তাতে একাধিক ম্যানেজারও থাকতে পারেন। এধরনের প্রতিষ্ঠান খুব বেশি সংখ্যক প্রোজেক্ট পরিচালনা করতে পারে না। এতে প্রোজেক্ট ম্যানেজার খুব বেশি গুরুত্বপূর্ণ নন। তারা খুব অল্প ক্ষমতা কিংবা একেবারেই কোন ক্ষমতা ছাড়া শুধুমাত্র পার্ট টাইম জব করে থাকেন।

২. প্রোজেক্ট ভিত্তিক প্রতিষ্ঠানঃ
এধরনের প্রতিষ্ঠান প্রজেক্টের ভিত্তিতেই পরিচালিত হয়। এতে বেশিরভাগই প্রোজেক্টের কাজ করা হয়। বেশিরভাগ মূলধন প্রোজেক্টের পেছনে বিনিয়োগ করা হয়। প্রোজেক্ট মানেজারই এখানে সর্বোচ্চ ক্ষমতার অধিকারী হয়ে থাকেন এবং তারা সাধারণত ফুল টাইম কাজ করে থাকেন।

৩. ম্যাট্রিক্স প্রতিষ্ঠানঃ
কাজ ভিত্তিক ও প্রোজেক্ট ভিত্তিক প্রতিষ্ঠানের মিলিত রূপ ম্যাট্রিক্স। এধরনের প্রতিষ্ঠান প্রোজেক্টের কাজে ভালো হলেও নন প্রজেক্ট কাজে ভালো হয় না।
কিছু পরিভাষা যা জানা থাকতে হবেঃ
প্রোজেক্ট, প্রতিষ্ঠান, বিনিয়োগকারী, প্রক্রিয়া, জ্ঞানের ক্ষেত্র, প্রতিষ্ঠান পরিচালনা, প্রোজেক্ট ব্যবস্থাপনা, প্রোগ্রাম, প্রোগ্রাম পরিচালনা, প্রোগ্রাম পরিচালনার অফিস।

প্রয়োজনীয় জ্ঞানের ক্ষেত্রসমুহের বিস্তারিত বিবরণঃ
১. সুযোগ সুবিধার উপযুক্ত প্রয়োগঃ
সুযোগ তৈরি
সুযোগ সুবিধার বিস্তারিত ব্যাখ্যা
সুযোগ তৈরিতে কৌশল অবলম্বন
সুযোগ নিয়ন্ত্রন
নিশ্চিতকরন

২. সময় ব্যবস্থাপনাঃ
কার্যক্রমের বিস্তারিত বিবরণ
ধারাবাহিকতা
প্রয়োজনীয় মূলধন সম্পর্কে আনুমানিক হিসাব
শিডিউল প্রণয়ন
শিডিউল নিয়ন্ত্রণ

৩. মানব সম্পদ উন্নয়নঃ
মানব সম্পদ পরিকল্পনা
টিম গঠন
টিমের উন্নয়ন সাধন
টিম ব্যবস্থাপনা

৪. উৎপাদন পর্যালোচনাঃ
উৎপাদিত পণ্যের রক্ষণাবেক্ষণ

৫. ঝুঁকি ব্যবস্থাপনাঃ
পরিকল্পনা
ঝুঁকি শনাক্তকরণ
ঝুঁকি বিশ্লেষণ
ঝুঁকি নিয়ন্ত্রন

৬. মান নিয়ন্ত্রণঃ
মান পরিকল্পনা
মানের নিশ্চয়তা
মান নিয়ন্ত্রণ

৭. সমন্বয় তৈরিঃ
প্রোজেক্ট ম্যানেজমেন্ট পরিকল্পনা প্রণয়ন
প্রোজেক্ট বাস্তবায়নে প্রয়োজনীয় নির্দেশনা প্রদান
প্রোজেক্টের যাবতীয় কাজ তদারকি ও নিয়ন্ত্রণ
প্রোজেক্ট সমাপ্তি করন

৮. যোগাযোগ ব্যবস্থাপনাঃ
যোগাযোগ পরিকল্পনা
বিনিয়োগকারীদের কাছে প্রয়োজনীয় তথ্য সরবারহ
প্রোজেক্ট পারফরম্যান্স ও বর্তমান হাল অবহিতকরন
যেকোনো সমস্য্য বিনিয়োগকারীদের সাথে যোগাযোগ

সি এবং অ্যারে : Array in C

int marks[4][10] = {{80, 70, 92, 78, 58, 83, 85, 66, 99, 81}, {75, 67, 55, 100, 91, 84, 79, 61, 90, 97}, {98, 67, 75, 89, 81, 83, 80, 90, 88, 77}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};

 

 #include <stdio.h>  
 int main()  
 {  
     int marks[4][10] = {{80, 70, 92, 78, 58, 83, 85, 66, 99, 81}, {75, 67, 55, 100, 91, 84, 79, 61, 90, 97}, {98, 67, 75, 89, 81, 83, 80, 90, 88, 77}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};  
     int col;  
     for(col = 0; col < 10; col++) {  
         marks[3][col] = marks[0][col] / 4.0 + marks[1][col] / 4.0 + marks[2][col] / 2.0;  
         printf("Roll NO: %d  Total Marks: %d\n", col + 1, marks[3][col]);  
     }  
     return 0;  
 }

 

 int marks[4][10];  
 int i, j;  
 for (i = 0; i < 4; i++) {  
     for (j = 0; j < 10; j++) {  
         scanf("%d", &ara[i][j]);  
     }  
 } 

 

#include <stdio.h>  
 int main()  
 {  
     int namta[10][10];  
     int row, col;  
     for (row = 0; row < 10; row++) {  
         for(col = 0; col < 10; col++) {  
             namta[row][col] = (row + 1) * (col + 1);  
         }  
     }  
     for (row = 0; row < 10; row++) {  
         for(col = 0; col < 10; col++) {  
             printf("%d x %d = %d\n", (row + 1), (col + 1), namta[row][col]);  
         }  
         printf("\n");  
     }  
     return 0;  
 }  
#include <stdio.h>  
 int main()  
 {  
     char saarc[7][100] = {"Bangladesh", "India", "Pakistan", "Sri Lanka", "Nepal", "Bhutan", "Maldives"};  
     int row;  
     for (row = 0; row < 7; row++) {  
         printf("%s\n", saarc[row]);  
     }  
     return 0;  
 }  

 

 

#include <stdio.h>  
 #include <string.h>  
 int main()  
 {  
     char saarc[7][100] = {"Bangladesh", "India", "Pakistan", "Sri Lanka", "Nepal", "Bhutan", "Maldives"};  
     int row, col, name_length;  
     for (row = 0; row < 7; row++) {  
         name_length = strlen(saarc[row]);  
         for(col = 0; col < name_length; col++) {  
             printf("%c ", saarc[row][col]);  
         }  
         printf("\n");  
     }  
     return 0;  
 }  


#include <stdio.h>  
 #include <string.h>  
 int main()  
 {  
     char saarc[7][100] = {"Bangladesh", "India", "Pakistan", "Sri Lanka", "Nepal", "Bhutan", "Maldives"};  
     int row, col, name_length;  
     for (row = 0; row < 7; row++) {  
         name_length = strlen(saarc[row]);  
         for(col = 0; col < name_length; col++) {  
             printf("(%d, %d) = %c, ", row, col, saarc[row][col]);  
         }  
         printf("\n");  
     }  
     return 0;  
 }  
 
 #include <stdio.h>  
 #include <string.h>  
 int main()  
 {  
     int ara1[5][5] = {{1, 2, 3, 4, 5}, {10, 20, 30, 40, 50}, {100, 200, 300, 400, 500}, {1000, 2000, 3000, 4000, 5000}, {10000, 20000, 30000, 40000, 50000}};  
     int ara2[5][5];  
     int r, c;  
     printf("Content of first array (ara1): \n");  
     for (r = 0; r < 5; r++) {  
         for(c = 0; c < 5; c++) {  
             printf("%d ", ara1[r][c]);  
         }  
         printf("\n");  
     }  
     printf("\n");  
     // now start copy  
     for (r = 0; r < 5; r++) {  
         for(c = 0; c < 5; c++) {  
             ara2[c][r] = ara1[r][c];  
         }  
     }  
     printf("Content of second array (ara2): \n");  
     for (r = 0; r < 5; r++) {  
         for(c = 0; c < 5; c++) {  
             printf("%d ", ara2[r][c]);  
         }  
         printf("\n");  
     }  
     return 0;  
 }  


	

একজন দক্ষ প্রোগ্রামার হতে গেলে যে জিনিসগুলো লাগবে তা হচ্ছে: How to be a great programmer

বর্তমান সময়ের জনপ্রিয় এবং বহুল ব্যবহৃত প্রোগ্রামিং ল্যাঙ্গুয়েজ। আধুনিক প্রোগ্রামিং ল্যাঙ্গুয়েজের যাত্রা শুরু হয় সি দিয়ে। বর্তমানে যেসব প্রোগ্রামিং ল্যাঙ্গুয়েজ জনপ্রিয়তার শীর্ষে আছে সেসব গুলোর একটা না একটা অংশ সি থেকে নেওয়া হয়েছে।
একজন দক্ষ প্রোগ্রামার হতে গেলে যে জিনিসগুলো লাগবে তা হচ্ছে–
১) এক বা একাধিক প্রোগ্রামিং ল্যাঙ্গুয়েজে ভালো দখল,
২) ভালো একটি IDE ব্যবহারের দক্ষতা,
৩) প্রোগ্রামিংয়ের মৌলিক বিষয়গুলো সম্পর্কে স্বচ্ছ ধারনা,
৪) গণিত ও যুক্তিতে দক্ষতা,
৫) অবজেক্ট ওরিয়েনটেড প্রোগ্রামিংয়ে (OOP– Object Oriented Programming) দক্ষতা,
৬) ডাটা স্ট্রাকচার ও অ্যালগরিদমের মৌলিক জ্ঞান ও তা প্রয়োগের ক্ষমতা,
৭) যোগাযোগে দক্ষতা (Communication Skills),
৮) ইন্টারনেট ঘেঁটে অল্প সময়ে কোনো সমস্যার সমাধান বের করা বা দ্রুত কোন নতুন বিষয় শিখে নেওয়ার দক্ষতা,
৯) একটি সমস্যার পিছনে লেগে থাকার মানসিকতা,
১০) প্রোগ্রামিংয়ের প্রতি ভালোবাসা।

ভিসুয়াল প্রোগ্রামিং কি? What is Visual Programming

সবাইকে আমার সালাম ও আন্তরিক অভিনন্ধন জানায়।আজ আমি ভিসুয়াল বেসিক কি এই নিয়ে আলোচনা করব।
ভিসুয়াল শব্দটির বাংলা হচ্ছে সরাসরি দেখা যায়।প্রগ্রাম্মিং আর ভাসায় ভিসুয়াল মানে code না লিখে প্রগ্রাম এর বিভিন্ন ইউজার ইন্টারফেস শমুহ প্রগ্রাম এ সংযুক্ত করা।
ভিসুয়াল প্রোগ্রামিং হচ্ছে এমন এক ধরনের windows ভিত্তিক object oriented programming যাতে মেনু, চিত্র, বিভিন্ন ধরনের টুলস ব্যবহার করে বাস্তব ভিত্তিক যে কোনো সমস্যা অতি সহজে সমাধান করে।
ডেভেলপার ২০০০
বহুল প্রচলিত ভিসুয়াল প্রোগ্রামিং গুলু হল।
ভিসুয়াল বেসিক
ভিসুয়াল ফাক্সপ্র
ভিসুয়াল সি
ভিসুয়াল সি++
ভিসুয়াল জাভা
পাও্য়ার বিল্ডার

কি এই প্রোগ্রামিং ???? What is Programming?

................কি এই প্রোগ্রামিং ????

My name Shamsuddin Ahmed
My Email : kbshams13@gmail.com

আমাদের মাঝেই সবকিছুই সমস্যাপূর্ণ । এই দরলাম আমি বাজার থেকে ডিম কিনে এনে নিজে খাতায় কষে কষে হিসেব করছি, উফফ ! কি ঝামেলা তাই না ? যদি এই ঝামেলাটা মিটিয়ে খুব কম সময়ে করে ফেলা যেতো তবে কতই না ভালো হতো ?
বাস্তবিক অর্থে বর্তমানে আমাদের এই বড় বড় কাজগুলো অল্প অল্প সময়ে করা জাচ্ছে এই কম্পিউটার ব্যাবহার করে, ওমা! এ কি করে সম্ভপ ?
আসলে এখানে অসম্ভপের কোন কথা নয়। কম্পিউটার এমন ই এক আহাম্মক ! আপনি তাকে যে নির্দেশ দিবেন তাই সে করে ফেলবে। কি দারুন তাই না ? আপনার কাজ কম্পিউটার আহাম্মক এর মত করে দিচ্ছে ! তবে এর জন্নে আপনাকে কম্পিউটার এর ভাষায় নির্দেশ দিতে হবে। কম্পিউটার এর ভাষা আবার কোনটা ? না আমি মানবো না ! আমি বাংলাতে দেব নির্দেশ । তবে আপনাকে সুন্দর একটা উদারন দেই শুনেন, “ আপনি যদি এক চাইনিজ কে বাংলাতে(যে বাংলা জানে না) জিজ্ঞাসা করেন আপনার বাড়ি কথায় তবে সে কি কিছু বুজবে ? নিচ্চই না। তেমনি করে কম্পিউটার তার ভাষা ছাড়া অন্ন কার ভাষায় নির্দেশ দিলে বুজবে নাহ । আর কম্পিউটার কে নির্দেশ দেবার জন্নে অনেক ভাষা রয়েছে যেগুলুকে প্রোগ্রামিং ল্যাঙ্গুয়েজ বলা হয়। অনেক প্রোগ্রামিং ল্যাঙ্গুয়েজ রয়েছে যেমন ঃ C,C++,JAVA,Paython..........

 

আপনি যদি নবিন হন তবে আমি আপনা কে Paython শেখার জন্য পরামশ দেব এতা সব দিক দিয়েই অনেক শক্তিশালী । আপনি কি জানেন ? আজ যদি আপনি একবার ভাল করে নির্দেশ দিতে শিখে জান তবেই হয়েছে, কম্পিউটার কে বলবেন কম্পিউটার আমার সামনে তুমি নষ্ট হয়ে জাও! ব্যাস আপনার সামনেই নস্ট হয়ে যাবে !! কি মজা না ?

 

যাই হোক এতক্ষণ যা যা বললাম তাছিল প্রোগ্রামিং জিনিস টা কি ? এখন বলছি আপনি এর দারা কি কি করতে পারবেন
১. আপনি আপনার কম্পিউটার কে নিজের মত গরে তুলতে পারবেন ।
২. যদি পরিশ্রম করেন তবে অবশ্যই একদিন খুব ভালো মানের প্রোগ্রামার হতে পারবেন ।
আরো যে কতো কাজ করা জায় তা ব্লে শেস করা যাবে নাহ ।
তবে আপনি শুরু টা জেইভাবে করতে পারেন।
১.আপনি অবশ্যই কম্পিউটার নিয়ে খুব ঘাটাঘাটি করতে হবে ।
২.এলগরিদম অর্থাৎ সাজানো ভাবে কাজ করতে শেখেন। এটাই সবথেকে গুরুত্তপূর্ণ ।
৩. এরপর বিভিন্ন বই পরেন প্রোগ্রামিং এর উপরে ।
ইনশা আল্লাহ আপনাকে কেও রুখতে পারবেনা যদি আপনার ইচ্ছা শক্তি অটুট থাকে । আজ আল্লাহ হাফেয ।

VBScript দিয়ে কম্পিউটার এর সাথে চ্যাট ।

chatbot by anwar jahid

VBScript দিয়ে কম্পিউটার এর সাথে চ্যাট । এই চ্যাট মেশিন তৈরি করে বন্ধুদের বলতে পারবেন যে আপনি কম্পিউটার এর সাথে আড্ডা দিচ্ছেন বা চ্যাট করছেন। কিন্তু কিভাবে? লজিকটা একদম সিম্পল সেটা হচ্ছে যে, আমরা কিছু প্রশ্ন এবং উত্তর আগে থেকে কম্পিউটার প্রোগ্রাম টিতে ইনপুট করে রাখব তাহলে আপনি যখনি কিছু জিজ্ঞাশ করবেন মানে প্রশ্ন করবেন কম্পিউটার তখন সেই উত্তর গুলো একে একে করে দিয়ে যানে। আসলে এটা শুধু মজার করার একটি প্রোগ্রাম ছাড়া কিছুই নয়।
1

শুরুতেই আপনার notepad ওপেন করুন
2

এবার নিচের কোডিং গুলো নোটপ্যাড এ পেস্ট করে দিন।

dim fname
fname=inputbox(Bhaijan What is ur name”)
fname=inputbox(“How are you feeling ” & fname)
fname=inputbox(“Moja paisen ” & fname)
fname=inputbox(“NIrshartho Valobasha”)
fname=inputbox(“Akhon Bye”)
এই লিখা গুলোর সাথে আরো কিছু সেম ফরম্যাট ব্যাবহার করে যুক্ত করে দিতে পারেন।
3

এবার এটি Save As দিয়ে সেভ করুন।

“Save as type” অবশ্যই “All Files” দিবেন
“chatbot.vbs” নামে সেভ করুন
4

এবার প্রোগ্রামটি ওপেন করে কম্পিউটার এর সাথে আড্ডা দিন :p

সফটওয়্যার নির্মাণে সময় নির্ধারণ: আপনার কি কি বিবেচনা করা উচিত? (Software Time Estimation)

Translation of : http://www.salearningschool.com/displayArticle.php?table=Articles&amp;articleID=1360

সফটওয়্যার নির্মাণে সময় নির্ধারণ: আপনার কি কি বিবেচনা করা উচিত? (Software Time Estimation)
2013-03-21, সাইদ আহমেদ

একটি টাস্ক/কাজ এর জন্য সময় নির্ধারণ করতে  নীচের সব কিছু বিবেচনার প্রয়োজন হতে পারে

একটি টাস্ক রূপায়ণ করতে গেলে, ওই টাস্ক এর সাথে সম্পর্কিত অনেক অতিরিক্ত টাস্ক ও রূপায়ণ করতে হতে পারে. অতিরিক্ত স্টাফ, প্রকৃত টাস্ক রূপায়ণ এর  তুলনায় অধিক সময় লাগতে পারে. প্রকৃত টাস্ক যদি ছোট হয়, কখনও কখনও অতিরিক্ত কর্ম, প্রকৃত টাস্ক এর তুলনায় অনেক বড় হয় কারন সফটওয়্যার এর অন্য অংশগুলোর সাথে সামঞ্জস্য রাখতে হয়

একটি টাস্ক/কাজ এর জন্য সময় নির্ধারণ করতে  নীচের সব কিছু বিবেচনার প্রয়োজন হতে পারে:

1. সামগ্রিক সিস্টেমের আর্কিটেকচারের সাথে সমন্বয় করা
2. নিরাপত্তা ও একটি বিবেচ্য বিষয়? ইনপুট বক্স সৃষ্টি করে, তাতে কত নিরাপত্তা প্রদান করতে চান? নিরাপত্তা কি শুরুতে প্রদান করবেন না শেশে করবেন?
3. ইউজার ইন্টারফেস নির্মাণ [CSS লিখা, পৃষ্ঠাতে অন্যান্য উপাদান এর সাথে সামঞ্জস্য বা একটি নতুন পৃষ্ঠা তৈরি] - সময় লাগবে . ইন্টারফেস কে ব্যবহার উপযোগী করতেই সময় লাগবে। [ব্যবহারকারী বন্ধুত্বপূর্ণ]
4. ডাটাবেসের মধ্যে প্রয়োজনীয় পরিবর্তন করতে হতে পারে. ক্যোয়ারী এর দক্ষতা বিবেচ্য বিষয় হতে পারে
5. সমাধান এর লজিক বের করতে হবে [বিভিন্ন উপায় এর  মধ্যে একটি উপায় বেছে নিতে হবে।
6. কোড লিখতে সময় লাগবে।
7. কোড ডিবাগ এর জন্য সময় লাগবে।
8. টেস্টিং, একাধিক ব্রাউজারে পরীক্ষা, একাধিক ব্রাউজার সংস্করণ-এ পরীক্ষা, একাধিক স্ক্রীন রেজোলিউশান এ পরীক্ষা, ইন্টারনেট এক্সপ্লোরার এর Quirk মোড এর জন্য টেস্টিং - সময় লাগবে।
9. লোড টেস্টিং এবং পারফরমেন্স টেস্টিং এর জন্য সময় লাগবে।
10.  সামঞ্জস্যতা - এটা অন্য সব কিছুর সাথে সামঞ্জস্য রেখে কাজ করে কিনা দেখতে হবে
11. অন্যান্য সম্পর্কিত পৃষ্ঠাগুলি এবং ফাংশন গুলি কাজ করে কিনা দেখতে হবে? আপনার টাস্ক বাস্তবায়িত হওয়ার পরেও সময় প্রয়োজন.
12. কোড অপ্টিমাইজেশান করতে সময় লাগবে? এই বাপার এ প্লান করতে সময় লাগবে।
13. কোড ভাল করে সংগঠন করতে সময় লাগবে।
14. whitebox পরীক্ষার অংশ হিসেবে ডিবাগ করতে সময় লাগবে।
15. চেক করতে হবে: এটি পরীক্ষা/টেস্টিং  সার্ভারে কাজ করে কিনা ? এটি ইন্টিগ্রেশন সার্ভার কাজ করে কিনা?
16. কি কি পরীক্ষা করতে হবে তার লিস্ট বানাতে হবে এবং ওইগুলো নির্বাহ করতে সময় লাগবে। [কোনো আবশ্যক ডকুমেন্টেশন দরকার হলে সময় লাগবে।
17. প্রকল্প বড় হলে, বড় প্রকল্প এর সাথে কাজ করার জন্য ভাল মেমরি বা ভাল দক্ষতা প্রয়োজন  [সবকিছু  ট্র্যাক রাখতে হবে]
18. ইউনিট টেস্ট করতে হলে সময় লাগবে...

কখনও কখনও ছোট কাজগুলো, এই অতিরিক্ত বিবেচ্য বিষয় এর কারনে বড় হয়ে উঠতে পারে.