কম্পিউটার প্রোগ্রামিং (দ্বিতীয় খণ্ড) -বইয়ের ভূমিকাঃ
আমার কম্পিউটার প্রোগ্রামিং (যেটি পরবর্তী সময়ে কম্পিউটার প্রোগ্রামিং ১ম খণ্ড নামে প্রকাশ করা হয়) বইটি প্রকাশ হওয়ার পরে দেখতে দেখতে পাঁচ বছরেরও বেশি সময় অতিবাহিত হয়ে গেল। এই সময়ে আরও বেশ কয়েকটি বই লিখলেও কম্পিউটার প্রোগ্রামিং ২য় খণ্ড লেখার কাজ অনেক ধীরগতিতে হয়েছে। শেষ পর্যন্ত বইটি আলোর মুখ দেখতে যাচ্ছে। আশা করি, ১ম খণ্ড পড়ার পরে এই বইটিকে ঘিরে শিক্ষার্থীদের যেই প্রত্যাশা, সেটি পূরণে বইটি সক্ষম হবে।
আমি সবসময় মৌলিক জ্ঞান ও দক্ষতা অর্জনের দিকে জোর দেই। কারণ কারও বেসিক খুব ভালো থাকলে সে বহুদূর যেতে পারবে। তাই এই বইতেও প্রোগ্রামিংয়ের মৌলিক কিছু বিষয় নিয়ে আলাপ করেছি। ১ম খণ্ডের মতো, এই বইতেও প্রোগ্রামিং ভাষা হিসেবে সি ব্যবহার করেছি। এই বইটি পড়ার পরে শিক্ষার্থীদের প্রোগ্রামিংয়ের মৌলিক জ্ঞান যেমন বাড়বে, তেমনি সি প্রোগ্রামিং ভাষায় দক্ষতাও বৃদ্ধি পাবে। বাংলাদেশের শিক্ষার্থীদের প্রোগ্রামিংয়ের গড়পড়তা মান বৃদ্ধিতেও বইটি অবদান রাখতে পারবে বলে আমার বিশ্বাস।
বইটির জন্য অনেক ছেলেমেয়ে আমাকে তাড়া দিয়েছে, ইমেইল করে, ফেসবুকে পোস্ট করে। তাঁদের প্রতি কৃতজ্ঞতা। বইটি রিভিউ করেছেন শাহরিয়ার মঞ্জুর, শহীদুল ইসলাম (সুমন), মীর ওয়াসি আহমেদ ও তাহমিদ রাফি। তাদেরকে অশেষ ধন্যবাদ ও কৃতজ্ঞতা। তাহমিদ রাফি বইটির সম্পাদনা ও পেজ মেকাপের কাজটি করেছে। সেই সঙ্গে কিছু কিছু অংশে বিস্তারিত তথ্য যুক্ত করেছে, আর ডিবাগিং অধ্যায়টিও তার লেখা। এজন্য সে বিশেষ ধন্যবাদ প্রাপ্য। আর বই লেখার সময়কালে আমার পুত্র আরাভের দেখাশোনার কাজটি পুরোপুরি নিজের কাঁধে নিয়ে আমার লেখার সময় বের করে দেওয়ার জন্য আমার স্ত্রী পারমিতাকেও অসংখ্য ধন্যবাদ।
পাঠকের চোখে কোনো ভুলত্রুটি কিংবা অসঙ্গতি ধরা পড়লে আমাকে ইমেইল করার অনুরোধ রইল, পরবর্তী সংস্করণে সংশোধন করার চেষ্টা করব।
কম্পিউটার প্রোগ্রামিং (দ্বিতীয় খণ্ড) -বইয়ের সূচীপত্র
অধ্যায় ১ – কম্পিউটার মেমোরি (Computer Memory)
১.১ – বিট ও বাইট
১.২ – ভ্যারেয়িবলের অ্যাড্রেস বা ঠিকানা
১.৩ – বিভিন্ন প্রকারের মেমোরি
অধ্যায় ২ – পয়েন্টার
২.১ – নাল পয়েন্টার
২.২ – স্ট্রিং ও পয়েন্টার
২.৩ – পয়েন্টারের পয়েন্টার
অধ্যায় ৩ – ফাইল (File)
অধ্যায় ৪ – রিকার্শন (Recursion)
৪.১ – লোকাল ও গ্লোবাল ভ্যারিয়েবল
৪.২ – স্ট্যাটিক ভ্যারিয়েবল
৪.৩ – বিভিন্ন প্রকারের মেমোরি
৪.৪ – রিকার্শন
অধ্যায় ৫ – বিটওয়াইজ অপারেশন (Bitwise Operation)
অধ্যায় ৬ – স্ট্রাকচার (Structure) ও ইউনিয়ন (Union)
৬.১ – স্ট্রাকচার (Structure)
৬.২ – ইউনিয়ন (Union)
৬.৩ – স্ট্রাকচারের মেমোরি অ্যালাইনমেন্ট
অধ্যায় ৭ – আরও পয়েন্টার
৭.১ – পয়েন্টারের হিসাব-নিকাশ
৭.২ – ভয়েড পয়েন্টার (void pointer)
৭.৩ – ফাংশন পয়েন্টার
৭.৪ – qsort ও bsearch ফাংশন
অধ্যায় ৮ – মজার কিছু প্রোগ্রাম
৮.১ – সময় পরিমাপ
৮.২ – র্যানডম নম্বর (random number) তৈরি
৮.৩ – নিজে হেডার ফাইল তৈরি করা
অধ্যায় ৯ – বিবিধ
৯.১ – কনস্ট্যান্ট (constant) ও ম্যাক্রো (Macro)
কনস্ট্যান্ট (constant)
ম্যাক্রো
৯.২ – এনিউমারেশন (enumeration)
৯.৩ – কমান্ড লাইন আর্গুমেন্ট (Command Line Argument)
৯.৪ – প্রোগ্রাম কম্পাইল হওয়ার ধাপসমূহ
৯.৫ – #typedef ও #define নিয়ে কিছু কথা
৯.৬ – main() ফাংশন ও return 0
৯.৭ – lvalue এবং rvalue
অধ্যায় ১০ – প্রোগ্রাম ডিবাগিং
১০.১ – ডিবাগিং কী?
১০.২ – সাধারণ ডিবাগিং
১০.৩ – কোডব্লকসে ডিবাগিং
বইটি কাদের জন্য উপযোগি?
যেসব শিক্ষার্থী ইতিমধ্যে আমার কম্পিউটার প্রোগ্রামিং ১ম খণ্ড বইটি শেষ করেছে, এই বইটি মূলত তাদের জন্য। এছাড়া কেউ যদি ৫২টি প্রোগ্রামিং সমস্যা ও সমাধান বইটি পড়ে থাকে এবং সমস্যাগুলো সমাধানের চেষ্টা করে থাকে, তাহলে তার জন্য বইটি পড়া সহজ হবে।
তামিম শাহরিয়ার সুবিন,
গ্র্যাব আর এন্ড ডি সেন্টার, সিঙ্গাপুর।
https://fb.com/tamim.shahriar.subee…
https://twitter.com/subeen