ভূমিকা গ্রাফ অ্যালগরিদমে আমার দুর্বলতা গোপন কিছু নয়। তাই লেখকের কাছ থেকে যখন তার বইয়ের মুখবন্ধ লেখার প্রস্তাব পেলাম তখন খুশি আর আমার ধরে না। কারণ এরকম প্রস্তাব এই প্রথম, বিনামূল্যে গ্রাফ অ্যালগরিদম শিখে ফেলা যাবে। সর্বোপরি এই বই দেখিয়ে নিজেকে গ্রাফ বিশেষজ্ঞ প্রমাণ করা যাবে। আরেকটি কারণ হলো আমি এবং শাফায়েত প্রোগ্রামিং কনটেস্টের দুই ঘরানার লোক (DU-BUET অথবা Codemarshal-Hackerrank যেভাবেই দেখি না কেন)। কিন্তু সবকিছুর আগে আমরা বাংলাদেশের ভালো চাই এবং আমাদের কাজে সেটাই ফুটে ওঠা উচিত। সেই ফুটিয়ে উঠানোর কাজটা সবচেয়ে ভালোভাবে করা সম্ভব এই বই এর মুখবন্ধ লেখার মাধ্যমে। পুরো বইটি পড়ার সময় হয়নি এখনো, কিন্তু যতদুর দেখেছি তাতেই মনে করি বইটি বোঝা বেশ সহজ, অযথা গাণিতিক প্রতীক / চিহ্ন ইত্যাদি ব্যবহার করে লেখক পান্ডিত্ব দেখানোর চেষ্টা করেননি এবং অনেক বেশি টপিক নিয়ে আলোচনারও চেষ্টা করেননি। আমাদের দেশের ছেলে মেয়েদের ইংরেজিতে দুর্বলতা অনেক বেশি, কিন্তু এই দুর্বলতা ভালো প্রোগ্রামার হওয়ার পথে কোনো অন্তরায় হওয়া উচিত নয়। যদি তাই হতো তাহলে রাশিয়া, চীন থেকে বিশ্বের সব ভালো ভালো প্রোগ্রামাররা বের হয়ে আসত না আর আইসিপিসিতে ইংরেজিভাষী দেশগুলোকে মেডেলের জন্য হা-হুতাশ করতে হতো না। কাজেই কম্পিউটার বিজ্ঞানের বিভিন্ন বিষয়ের ওপর আরও বাংলা বই বের হওয়া উচিত এবং সেদিক দিয়ে এই বইটি একটি ভালো সংযোজন। এ ধরনের বই পড়ে আমাদের দেশের ছেলেমেয়েরা অনেক কম বয়সেই খুব ভালো প্রোগ্রামার হয়ে উঠতে পারবে।
বিশ্ব মানের প্রোগ্রামার তৈরির জন্য প্রোগ্রামিং প্রতিযোগিতা একমাত্র উপায় না হলেও খুবই গুরুত্বপূর্ণ একটি প্রক্রিয়া। তবে আমাদের দেশে ভালো প্রোগ্রামার তৈরিতে এর গুরুত্ব বিশ্বের উন্নত দেশের চেয়ে অনেক বেশি। কারণ, আমাদের দেশের প্রচলিত শিক্ষা ব্যবস্থা এখনো যুক্তিনির্ভর চিন্তা ভাবনার জন্য অনুকুল নয়। সেদিক থেকেও এই বইটি এর গুরুত্ব অপরিসীম। এই বই এ আলোচিত গ্রাফ অ্যালগরিদম গুলো ভালোভাবে বুঝলে প্রোগ্রামিং প্রতিযোগিতার অন্তত ৮০ ভাগ গ্রাফ সমস্যা সমাধান করা সম্ভব।
প্রোগ্রামিং শেখার জন্য বাংলায় বেশ কিছু বই রয়েছে। কিন্তু মূলত প্রোগ্রামিংয়ের একদম প্রারম্ভিক বিষয়গুলো নিয়ে সেখানে আলোচনা করা হয়েছে। অ্যালগরিদম শেখার জন্য ভালো বাংলা বই এখনো সেভাবে ছাপা হয়ে বের হয়নি। পিডিএফ হিসাবে হয়ত বেশ কিছু বই পাওয়া যাচ্ছে। সেদিক থেকেও এই বইটিকে একটি মাইলফলক হিসাবে দেখা যায়। সব মিলিয়ে আমি লেখককে ধন্যবাদ দিতে চাই এরকম একটি বই লেখার জন্য। আমি আশা করি সময়ের সঙ্গে সঙ্গে বইটি আরও উন্নত হবে এবং সঙ্গে সঙ্গে কম্পিউটার ইঞ্জিনিয়ারিংয়ে আরও অনেক ভালো ভালো বাংলা বই প্রকাশিত হবে। তখন আমরা জাপানিদের মতো বিশ্ববিদ্যালয় পর্যায়েও মাতৃভাষায় শিক্ষা দিতে পারব। ৫২ এর ভাষা আন্দোলন সেদিনই পরিপূর্ণভাবে সার্থক হবে।
অধ্যায় ২ – গ্রাফ উপস্থাপন ২.১ – অ্যা ডজেসেন্সি ম্যা7ট্রিক্স (Adjacency Matrix) * অ্যাডজেসেন্সি ম্যাট্রিক্স ব্যবহার করার সমস্যা * অ্যাডজেসেন্সি ম্যাট্রিক্স ব্যবহার করার সুবিধা
২.২ – অ্যা ডজেসেন্সি লিস্ট (Adjacency List) * অ্যাডজেসেন্সি লিস্ট ব্যবহার করার সুবিধা * অ্যাডজেসেন্সি লিস্ট ব্যবহার করার অসুবিধা
শাফায়েত আশরাফের জন্ম ১৯৯০ সালে। তিনি আদমজী ক্যান্টনমেন্ট পাবলিক স্কুল থেকে মাধ্যমিক ও রাজউক উত্তরা মডেল কলেজ থেকে উচ্চ মাধ্যমিক পরীক্ষা সম্পন্ন করেন। এরপর তিনি ঢাকা বিশ্ববিদ্যালয়ের কম্পিউটার বিজ্ঞান বিভাগে ভর্তি হন। বিশ্ববিদ্যালয়ে পড়াকালীন সময়ে তিনি নিয়মিত প্রোগ্রামিং প্রতিযোগিতায় অংশগ্রহণ করতেন। ২০১২ সালে তার দল জাতীয় পর্যায়ের প্রোগ্রামিং প্রতিযোগিতায় বিজয়ী হয়। শাফায়েতের বাংলা ব্লগে অ্যালগরিদম নিয়ে ৫০টিরও অধিক প্রবন্ধ আছে (www.shafaetsplanet.com/blog)। তিনি বাংলাদেশ ইনফরমেটিক্স অলিম্পিয়াড এবং ন্যাশনাল হাই স্কুল প্রোগ্রামিং প্রতিযোগিতার বিচারক এবং প্রবলেমসেটার হিসাবে কাজ করেছেন। এছাড়াও তিনি এনসিপিসি (National Collegiate Programming Contest) সহ বিভিন্ন জাতীয় পর্যায়ের প্রোগ্রামিং প্রতিযোগিতায় বিচারকের দায়িত্ব পালন করেছেন। ঢাকা বিশ্ববিদ্যালয় থেকে অনার্স ডিগ্রী লাভের পর তিনি ন্যাশনাল ইউনিভার্সিটি অফ সিঙ্গাপুর (National University of Singapore) এর সেন্টার ফর কোয়ান্টাম টেকনোলজিতে ইন্টার্ন রিসার্চার হিসাবে কাজ করছেন। বর্তমানে তিনি হ্যাকারর্যা ঙ্ক ডট কম (hackerrank.com) এ সফটওয়্যার ইঞ্জিনিয়ার এবং প্রবলেম কিউরেটর হিসাবে কাজ করছেন।