«

»

কম্পিউটার প্রোগ্রামিং আর এলগরিদম

কম্পিউটার প্রোগ্রামিং আর এলগরিদম, একটা আরেকটার পরিপূরক। একটি ছাড়া আরেকটি কল্পনাকরা যায় না। প্রোগ্রামিং এ ভালো দক্ষতার জন্য দরকার এলগরিদম আয়ত্তে আনা। একটি প্রোগ্রাম কত ফাস্ট হবে কত নির্ভুল হবে তার পূরোটাই নির্বর করে একগরিদমের উপর। এ এলগরিদম কে অনেকে আদর করে বলে এলগো.।

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

ছোট বেলায় আমরা সবাই গসাগু (গরিষ্ঠ সাধারণ গুণনীয়ক) করা শিখছি। মনে পড়ে? তার জন্য যে আমরা ইউক্লিডীয় পদ্ধতি ব্যবহার করে মান গসাগু নির্নয় করেছি। তার জন্য রয়েছে ইউক্লিডীয় এলগরিদম। গরিষ্ঠ সাধারণ উৎপাদক নির্ণয় করার জন্যে একটি কার্যকর পদ্ধতি হচ্ছে ইউক্লিডীয় এলগরিদম। একে গ্রিক গণিতবিদ ইউক্লিডের নামানুসারে নামকরণ করা হয়েছে। এ এলগরিদম তো সবাই পারেন, তাই না?

কম্পিউটার বিজ্ঞানে বিভিন্ন সমস্যা সমাধানের জন্য সঠিক অ্যালগোরিদম অত্যন্ত গুরুত্বপূর্ণ। একটি এলগরিদমকে সঠিক বলা হয় যদি প্রতিটি ইনপুটের জন্য অ্যালগোরিদমটি সঠিক আউটপুট প্রদর্শন করে। তবে পুরোপুরি নির্ভূল নয় এমন অ্যালগোরিদমও গুরুত্বপূর্ণ হতে পারে যদি ভূলের মাত্রা নিয়ন্ত্রণের মধ্যে রাখা যায়। একটি অ্যালগোরিদমকে যেকোনো ভাষায় বর্ণনা করা যেতে পারে,সে ভাষাটি হতে পারে বাংলা,ইংরেজির মত মানুষের মৌখিক ভাষা,অথবা সি++,জাভার মত প্রোগ্রামিং ভাষা এমনকি হার্ডওয়্যার ডিজাইনের মাধ্যমেও। তবে যে ভাষাতেও লেখা হোক সমস্যা সমাধানের প্রতিটি ধাপের বর্ণনা অ্যালগোরিদমে থাকতে হবে। তবে সাধারনত এলগরিদম গুলো Pseudocode (সুডো-কোড) বা Pidgin code বলে।

প্রত্যেকটি এলগরিদমের একটা শুরু থাকবে এবং একটা শেষ থাকবে। আর এ শুরু থেকে যাওয়ার জন্য এক বা একাদিক পথ থাকতে পারে। আবার একই পথ একাদিক বার ব্যবহার করা যেতে পারে। আর একে বলে লুপিং।

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

বইটি হচ্ছে Thomas Cormen এর Introduction to Algorithms, উনার কাছ থেকে শুনার পর নীলক্ষেত থেকে বইটি কিনে আনলাম। নাহ! আপনাদের কিনতে হবে না। আমাদের আরেক স্যারের কল্যানে এর সর্বশেষ এডিশন শেয়ার করতে পারব। স্যার আমাদেরকে বইটির একটি পিডিএফ কপি দিয়েছে।

 

 

Download link: Introduction to Algorithms 3rd Edition. Size: 5.36MB

যারা প্রোগামিং করেন বা করতে চান তাদের কাজে আসবে আশা করি। আর এর পাশা পাশি পড়ার জন্য আরেকটি শেরা বই হচ্ছে সেরা কম্পিউটার বিজ্ঞানী Donald Knuth এর

The Art of Computer Programming। লিঙ্কে ক্লিক করে ডাউনলোড করে নিতে পারবেন। আর আমি এখন ও ভালোভাবে কিছুই জানি না এলগরিদম সম্পর্কে। বইটি কিনছি একবছর আগে 🙁 জানার চেষ্টা করছি। দোয়া করবেন যেন কিছু শিকতে পারি।

YouTube এ এলগরিদমের উপর অনেক ভিডিও আছে আপনারা প্রয়জনীয় এলগরিদমের টা সার্চ করে দেখতে পারেন। আর আগে আমি কিছু ভিডিও শেয়ার করছিলাম, তা পাবেন নিচের টুইটেঃ

ধন্যবাদ সবাইকে।

 


এ সম্পর্কিত আরো কিছু টুইট:

খুব সহজে HTML Color Code খুঁজে বের করার পদ্ধতি
শখের বশে সি প্রোগ্রামিং: জোড় বেজোড় সংখ্যা নির্ণয়ের প্রোগ্রাম তৈরি(২)
ওয়েব সাইটে এড করুন favicon আইকন
Enable করুন আপনার Diesable হয়ে যাওয়া Task manager,Run,Folder option,search সহ অনেক কিছু
VB এর সাহায্যে অল্প কোডে ঘরি বানান (১)
ওয়েব ডিজাইন ও ডেভোলপমেন্ট শিখতে চান? ঘরে বসে প্রফেশনাল ওয়েব ডিজাইনার/ডেভোলপার হতে চান? (মেগা টিউন)
ডাউনলোড অলরাউন্ডার ভিডিও কনভার্টার (উইন্ডোজ + ম্যাক) দিয়ে। সর্বশেষ ভার্সন এবং দেখে নিন পূর্ণাঙ্গ ফটো...

মন্তব্য দিনঃ

comments

About the author

জাকির হোসাইন

প্রোগ্রামিং বা ফ্রীল্যান্সিং নিয়ে কোন প্রশ্ন থাকলে টেকটুইটস সাহায্য বিভাগে পোস্ট দিতে পারেন অথবা আমাকে ফেসবুকে মেসেজ দিতে পারেন।

Permanent link to this article: http://techtweets.com.bd/programming/jakirbdl/8033

9 comments

Skip to comment form

  1. Rubel Orion

    জাকির ভাই, পারলে আমাদের একটু C++ শিখান। মানে বেসিক টুইট দেন। আমরা হালকা ধারনা নিতে চাই! 🙂

  2. MNUWORLD

    আসলে সবকিছুর একটা স্টাকচার থাকে…প্রোগ্রামিং এরও আছে এবং সেটাকে এলগরিদম বলে বলে জানি.. ধন্যবাদ বইটা দেওয়ার জন্য। আশাকরি কাজে লাগাতে পারব।

    অফ: জাকির ভাই আপনার হেল্প দরকার কয়েকটা বই কিনব….একটু লিস্ট দিয়েন তো।

    1. ঐ ছেলেটি
      jakir

      কিসের বই লাগবে?

  3. saiam

    ভাইরে, দুঃখের কথা আর কি বলব? আমি কিউবির প্রিপেইড ব্যাবহার করি। ৭০০ টাকায় মাত্র ২ জিবি! মজা কইরা কোন কিছু ডাউনলডাইতে পারি না। আর পোস্টপেইডে অনেক খরচ। আমরা গরিব-সরিব মানুষ, এত পয়সা পাবো কই?

    কোন উপায়ে কি সাহায্য করতে পারেন? (Hackers allowed)

    1. ঐ ছেলেটি
      jakir

      আপনি স্প্যামিং করছেন। এর পর এরকম স্প্যামিং করলে আপনার কমেন্ট ডিলেট করে দেওয়া হবে।
      আপনি ব্রডব্যান্ড ব্যবহার করুন তাহলেই তো সমস্যা সমাধান হয়। কিউবি যেসব এলাকায় সাপোর্ট দেয় সে সকল এলাকায় ব্রডব্যন্ড অবশ্যই পাওয়া যায়।
      ৭০০ টাকা দিয়ে স্পিড একটু কম পেলেও আনলিমিটেড পাবেন।

  4. Barun P Mondal
    Barun P Mondal

    আপনার দেয়া বইটা নামাচ্ছি। আশা করি কাজে লাগাতে পারব। জুমলা বা পি এইচ পি দিয়ে কি করে দ্রুতা freelancing করতে পারব জানাবেন কি?

    1. ঐ ছেলেটি
      jakir

      জুমলা বা পি এইচ পি দিয়ে সহজেই freelancing করতে পারবেন।
      ফ্রীল্যান্সিং সাইট গুলোতে চেষ্টা করুন যেমন odesk.com/freelancer.com ইত্যাদি।

  5. saiam

    জাকির ভাই, আপনি আমদের c++ শিখান। এই বিষয়ের উপর টিউটরিয়াল চালু করলে ত আর ভাল হয়।

  6. bright space

    সহমত উইথ রুবেল অরিয়ন ভাই…।

মন্তব্য করুন